Intelligent Agents

On Agents

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.

Definitions

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

Vacuum World

  • [A, Clean]

    • Right
  • [A, Dirty]

    • Suck
  • [B, Clean]

    • Left
  • [B, Dirty]

    • Suck
  • [A, Clean], [A, Clean]

    • Right
  • [A, Clean], [A, Dirty]

    • Suck
  • ………..

  • [A, Clean], [A,Clean], [A, Clean]

    • Right
  • [A, Clean], [A, Clean], [A, Dirty]

    • Suck
  • …………….

Let’s not try to divide the world into “Agents” and “Non-agents”, this is just a useful mental construct

Good Behavior: Rationality

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)

More on “Rationality”

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.

So are we rational yet?

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?

Omniscience, learning, autonomy

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.

Quiz Time!

https://forms.office.com/r/dyhA41dBV7