In General
An architecture is the set of fixed mechanisms. Architecture designers
usually try to include in the architecture functions that they consider
to be cognitively impenetrable. That is, they desire to include
functions that cannot degrade or improve with the addition of knowledge.
The designer must carefully consider the tradeoffs between architectural
implementations of features and knowledge-level implementations. Any feature
that is put into the architecture becomes a cognitive constraint, limiting
the system by fixing some aspect of its behavior. However, large gains
in efficiency can make certain cognitive constraints desirable.
Some of the features incorporated in working and conceptual cognitive
architectures are discussed below.
Structure/General
Layered Behaviors
This is an organizational principle which dictates that an agent be built up in Layers,
with simple behaviors controlled at a low layer, and complex behaviors at higher layers.
Modularity
Modular architectures have a central, well defined interface
for the addition of modules. Modules can be added or removed
from the architecture to change its functionality. If the functions and
reasoning of modules are open to inspection by all other modules, the system
is built under the glass box hypothesis.
Organization
If an architecture is organized into units, the division might be by behavior,
by cognitive function, or by architectural function. In the first case,
which resembles Minsky's Society
of Mind, there might be a unit for walking and a unit for talking. In
the second case, there might be a unit for planning and a unit for
learning. The final case might have units for communications, management,
and execution within an architecture.
Locus of control
Cognative functions and environmental interactions must be somehow controlled.
Control in an architecture might be centralized or distributed.
Distributed control might involve components performing
non-overlapping tasks that contribute to the control of the entire
system (e.g. AIS).
Another means of distributing control is to localize control
within components (e.g. Subsumption).
Knowledge Representation
Knowledge representation has been the subject of much debate since
the earliest days of AI. Knowledge representation remains
an open area of research. Every architecture
explored in this document represents knowledge in a different way.
Some represent knowledge in more than one way.
Learning
A generally intelligent agent should be able to learn from its
environment, its successes, and its failures.
Many architectures contain modules for different types of leaning,
such as explanation-based learning, or induction. Others, might
try to exploit a more general learning mechanism, such as chunking,
to emulate other forms of learning.
Most architectures support
multiple learning methods. Some do this with multiple learning modules,
like Prodigy. Others use a single general mechanism, like chunking in Soar,
and let knowledge guide them in different learning methods.
Listed below are several types of learning found in cognitive architectures.
Explanation-based learning
A system can learn from "explaining" or tracing its inferences.
Static analysis
A system may learn by examining its knowledge base.
Abstraction generation
By abstracting detailed concepts or plans, they often become applicable in a
variety of situations.
Caching
By caching results, a problem solver will not have to solve the same problem twice.
Operator ordering
When there are several sequences of operators to solve a problem,
the sequences are examined and the best sequence can be discovered.
Derivational analogy
A problem solver may be able to apply methods from a past similar task to
the current task.
Experimentation
If knowledge is suspected to be invalid, experimenting can confirm or deny
the suspicion.
Expert-aided learning
A machine can have a little help from its friends, the users.
Chunking
Chunking is similar to caching problem results, but there is an implicit
generalization in the creation of chunks.
Common modules and components
Common architectural modules and components provide perception, planning,
problem solving, memory, etc.
Perception
These modules retrieve information from the environment and
translate it into knowledge usable by the system.
Planning & Problem Solving
These modules use system knowledge to plan
the actions of the agent, or to make inferences.
Problem solving
differs from
planning in that only the end result is relevant, not the steps
used to reach that result.
Execution
Execution modules carry out plans generated by the agent.
They examine plans and translate them into control signals for the
agent's effectors.
In the ATLANTIS system, the Sequencing and Control layers share in
the execution of plans.
Memory
Memory is where the system stores its knowledge. Also see
knowledge representation
above.
Truth Maintenance System
A truth maintenance system (TMS) preserves the validity of an agent's
knowledge. Knowledge that is invalidated by a change in the
environment or by the cognitive actions of an agent is removed
from the system. Thus TMS systems keep a
consistent knowledge base.
User interface
Some architectures have interfaces for interaction with a user.
A user interface might allow expert-aided learning
or query answering.
Production System
Some architectures have a production system component.
-
Architecture Specific Modules
These modules are unique to their respective architectures.