Knowledge-Based Agents
One would think that having knowlege increases your chances
of success. And survival.
Motivation
Pure reflex agents aren't efficient enough in most situations,
nor are they very smart, nor are they frequently successful.
Good agents need knowledge about their environment.
Knowledge is crucial in
- partially observable environments
- dynamic environments
- when agents need to be given new tasks
Basics
- A knowledge-based agent has a knowledge base (KB)
- The KB contains a set of sentences
- The two operations on the KB are tell and
ask
- The tell operation adds a new sentence to the KB
- The ask operation returns whether a sentence follows
from what is currently in the KB
- Performing the ask operation may require
a lot of computation
- When a knowledge-based agent receives a percept, it tells
the KB that it received the percept
- When a knowledge-based agent performs an action, it tells
the KB that it performed the action
- An agent's designer can prime the KB with initial knowledge
- Agents can learn new knowledge
Areas of study
Roughly three main areas
- Representing knowledge (knowledge representation)
- Using knowledge (reasoning, inferencing, planning, logic)
- Acquiring new knowledge (learning)
Each of these areas are huge, and they overlap a lot.
Knowledge Representation
KR is a huge field. You study ontology, categories, objects,
composition, aggregation, inheritance, actions, situations, events,
states, time (tenses, intervals), belief, processes, relationships,
fluents, possible worlds, modalities, etc.
Natural language is a poor representation
language — highly ambiguous, full of elided context,
problematic pronouns, etc. It relies on a massive preexisting
knowledge base of commonsense information anyway.
Many formal languages have been invented for KR, and you
can invent your own.
Reasoning
Generally agents make inferences using their knowledge
bases according to either or both of
- An inference engine based on rules codified in a
logistic system (the declarative approach)
- Hardcoded, ad-hoc, subroutines that do the reasoning (the
procedural approach)
Learning
Learning is adding to a knowledge base facts gleaned from
new percepts (and their interaction with existing knowledge).