We’ve talked about rational agents (as opposed to programs that think like a human)
Now, let’s look at some design principals to build something we might call intelligent.
Agent: anything that can be viewed as perceiving an environment through sensors and acting upon that environment using actuators.
What are some examples of agents (sensors? actuators?)?
Percept: whatever the agent is “perceiving”
Percept Sequence: the complete history of everything that the agent has ever perceived.
In general we can determine an agent’s choice of action at any given instant, based on it’s internal knowledge and the entire percept sequence observed to date, but not on anything it hasn’t perceived
Mathematically speaking, an agent’s behavior is described by an agent function which maps a percept sequence to an action.
We could make a table of states that map to actions, however this table can grow to be infinite even with very simple systems.
However, the table isn’t real, it’s just an external characterization of an agent
Agents are actually implemented as an agent program
An agent function is just an abstract mathematical description, an agent program is something actually implemented on a physical system
[A, Clean]
[A, Dirty]
[B, Clean]
[B, Dirty]
[A, Clean], [A, Clean]
[A, Clean], [A, Dirty]
………..
[A, Clean], [A,Clean], [A, Clean]
[A, Clean], [A, Clean], [A, Dirty]
…………….
Let’s not try to divide the world into “Agents” and “Non-agents”, this is just a useful mental construct
A rational agent is just one that “does the right thing”
Generally AI has followed consequentialism, “did it do its job?”
Typically, we attach a performance measure to the AI, that evaluates a sequence of environmental states
Humans have desires, preferences, a vision… machines do not.
We design from our point of view (or at least from a user’s point of view), a machine might not be aware of its own performance measure
It might do the right thing, but might not know why, though this can be programmed
Please design for me a performance measure for the “vacuum world” agent.
Remember Norbert Wiener’s warning: make sure “the purpose put into the machine is the purpose which we really desire”…
Generally, design your performance measurements to measure the change you wish to see in your environment, rather than how you believe the agent should go about the task
Note that two very different approaches may have the same performance score (deeper philosophical implications)
How rational can we be at any given time?
Performance measure that defines our success
The prior knowledge of the environment
The actions that can be performed
The percept sequence to date
Rational Agent:
For each percept sequence, a rational agent should select an action that is expected to maximize its performance measure, given the evidence provided by the percept sequence and whatever built-in knowledge the agent has.
If the vacuum-cleaner agent cleans a square that’s dirty and moves on to the next square if not… is it being rational? [env, sensors, actuators]
Assuming:
Performance measure awards one point for each clean square at each time over a “lifetime” of 1000 time steps
The “geography” of the environment is known a priori But the location of the dirt and agent are not. Clean squares stay clean, and sucking cleans a dirty square, moving left or right moves the agent one square except when that would put the agent out of bounds, in which case it stays.
The only options are Left, Right, Suck
The agent can correctly identify its own location and if the location contains dirt.
Answer?
What if our performance metric is different?
Rationality vs Omniscience
Expected vs Actual Performance
Consider traffic…
Information gathering to modify future precepts, is an important part of rationality!
We might require an agent to gather information, but also learn… we may start with some knowledge, but the environment may need to be updated.
Of course, there are cases where the environment is both known a priori and predictable, thus no learning needed. However… this is fragile…
An agent that relies only on its prior knowledge lacks autonomy
A rational agent should be autonomous, to compensate for partial or incorrect prior knowledge.
A vacuum agent that can predict where new dirt will appear will outperform one that does not.