A broad category of research initiatives aimed to make non-human agents display intelligent-like behaviour
The problem of whether or not a machine or computer program can become intelligent is the subject of much debate in philosophy, computer science, and cognitive psychology
In humans, at least, intelligence comes from perception and cognition
These are primarily provided by our nervous system
The Turing Test
Alan Turing developed a test for artificial intelligence in 1950:
A machine and a human are both separated from the judge
The judge interacts with both the machine and the human
"If the judge cannot reliably tell the machine from the human, the machine is said to have passed the test"
The Turing test has been ostensibly been passed multiple times recently, mostly by chat bots
These are computer programs that chat with you, as if they are real people
Cognition involves the high-level brain activities:
Memory and knowledge representation
Language
Reasoning
Decision-making and problem solving
Learning
Cognition - Knowledge Representation
Computers already have memory
In fact, a computer's memory is more reliable than a human's (in general)
The challenge comes from figuring out how to represent knowledge
Cognition - Knowledge Representation
Knowledge representation (KR) is how to store knowledge, beyond basic facts
Methods being used to represent knowledge:
Rule systems
Semantic networks
Cognition - Knowledge Representation
Knowledge representation (KR) is how to store knowledge, beyond basic facts
Methods being used to represent knowledge:
Rule systems
Describe some conditions, and the course of action (often with a probability)
e.g. A patient experiences chronic headaches, may have:
High blood pressure (58%)
Meningitis (12%)
Brain tumour (9%)
Semantic networks
Cognition - Knowledge Representation
Knowledge representation (KR) is how to store knowledge, beyond basic facts
Methods being used to represent knowledge:
Rule systems
Semantic networks
An informally-structured graph showing named relationships between concepts, perhaps learned through data mining or natural language processing of large corpora
e.g. Napoleon ––birth year—> 1769
Cognition - Knowledge Representation with Semantic Networks
A simple semantic network:
Cognition - Knowledge Representation with Semantic Networks
A more realistic semantic network:
Cognition - Language
Lexical analysis
finding words
Syntax analysis
understanding sentence structure and word groups
Semantic analysis
understanding sentence meaning, usually from the component word groups
Pragmatics
Dealing with references to other sentences or the domain world (e.g. she, the manager, their car), idioms, etc.
Cognition - Language
Formal semantics: Use a math representation for each word, which can be combined in a well-defined way
Works close to 100%, but only a small subset of natural languages (e.g. English) have been implemented
Probabilistic methods: Use a probability, which is influenced by context, to guess the meaning of a word or phrase
Works close to 80%, yet there are systems which seem to understand all of English in some way or another
Cognition - Reasoning
Rule-based systems
Since rules are implications (similar to if-then), we can simply follow the chain of implications to a conclusion
When rules are probabilistic, we can follow the tree of implications to a set of conclusions, each with a probability
Cognition - Reasoning
A simple rule-based system:
Cognition - Reasoning
Symbolic programming
The values are represented in symbolic form
\begin{equation}\label{01}
\begin{split}
F &=sin(x^2) + cos(x)\\
\end{split}
\end{equation}
The rules are axioms from mathematics:
Rules for solving, simplifying
Rules for differentiation (e.g. power rule)
Rules for integration (e.g. product rule)
Rules for logic (e.g. inference, conjunction)
Rules for linear algebra (e.g. inverting a matrix)
Cognition - Decision-making
State graphs
A graph showing all possible states, and the transitions between them
Cognition - Decision-making
Decision tree
A tree where each node's children represent the decisions that can be made at that state
Cognition - Game Playing
Backgammon
IBM's TD-Gammon was the first program capable of beating the world's best 1992
Checkers
U of Alberta's Chinook beat the world's best in 1995
Chess
IBM's Deep Blue vs. world champ Garry Kasparov
1996: Kasparov won 4-2
1997: Deep Blue won 3.5-2.5
Go
Taiwan's MoGo and Rémi Coulom's Crazy Stone have beat the world's best Go players in 2015
Cognition - General Game Playing
Competitors write programs to solve previously unknown games
Competitors are given a file which describes the rules of the game
How to go from one game state to another, how a game is won, lost
The competitors' program reads the file and comes up with one move at a time to play
Cognition - Pathfinding
Pathfinding is a well-known problem, used by:
Games
GPS navigation devices
The basic algorithms for pathfinding are:
A* (A-star) algorithm
Dijkstra's algorithm
Cognition - Pathfinding
Pathfinding for single units is fairly straightforward:
Cognition - Pathfinding
Multi-unit (swarm) pathfinding is more complicated:
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Break down the world into a rectangular grid
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Choose your start and goal locations
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Examine all spaces adjacent to the start position
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
From each examined space, examine its adjacent spaces
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process, remembering the fastest way to get to each space
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding Example
Pathfinding with Dijkstra's Algorithm:
Repeat the process
Cognition - Pathfinding
A website for experimenting with different pathfinding techniques: