Skip to content
This repository has been archived by the owner on Jun 8, 2022. It is now read-only.

Context

msche edited this page Jun 30, 2021 · 15 revisions
Info

The context section sets the scene for the remainder of the document. The context section should answer questions like:

  • What is this software project all about?

  • Who is using it? (users, roles, actors, personas, etc)

Its meant for technical and non-technical people, inside and outside the immediate software development team.

The goal is to develop a general computational system that has the same cognitive abilities as humans. As shorthand we call these human-level agents. One of the fundamental challenges in developing human-level agents is defining the primitive computational structures that store, retrieve and process knowledge. To address this challenge we have studied the cognitive architecture underlying general intelligence. A cognitive architecture provides the fixed computational structures that form the basis for creating general, autonomous agents that solve (and learn from) a wide variety of problems, using a variety of knowledge. A cognitive architecture is not a single algorithm or method for solving a problem; rather, it is a task independent infrastructure that brings a agent’s knowledge to understand a problem in order to produce behavior. One of the primary challenges for a cognitive architecture is coordinating the many capabilities we associate with intelligent systems, such as perception, reasoning, planning, language processing, and learning in dynamic environments. Thus, a cognitive architecture must support decision making and interaction with an environment.

So, in addition to being a software system for human-level agent development, it is also a theory of what computational structures are necessary to support human-level agents. On the one hand it is a long term research project in which we continually attempt to extend the human level capabilities we can achieve in a computer; on the other hand it is a specific architecture that you can use today for developing human-level agents.

To do this we are combining problem spaces, to organize behavior, with production systems to represent the knowledge used to control behavior. In problem spaces, behavior is decomposed into a selection of operators and their application to states. States are representations of the current situation; operators are the means by which a system can make deliberate changes in the situation. In production systems, long term knowledge is encoded as rules in procedural memory; short term knowledge is encoded as declarative symbolic structures in working memory. Different problem spaces are available for different tasks, and multiple problem spaces can be used for different aspects of a single task. This provides a significant increase in generality and flexibility and by casting all activity within problem spaces, we create a uniform approach for controlling internal reasoning and external action. Production rules are used to represent the different functional aspects, proposal evaluation and application, of operators. Instead of trying to select the best rule, all matching rules fire in parallel, and the point of decision making is selecting the next operator. Knowledge about which operator to select is encoded in the production rules. In making a decision, the rules relevant to the current situation control behavior so that the method emerges from a combination of the knowledge and the structure of the task. Thus, as knowledge is added, the behavior of the system changes.

Cognitive Architecture

Cognitive architecture resides between the physical level and the cognitive level, providing the structures for encoding knowledge. It provides the fixed processes, memories, associated algorithms and data structures to acquire, represent, and process knowledge about the environment and tasks for moment to moment reasoning, problem-solving and goal oriented behavior.

The physical level is the lowest level and provides the physical implementation of computation for the cognitive level. The physical level itself is usually a series of layers of digital circuits, computer software and virtual machines for supporting general computation.

At the top is the knowledge level. At the knowledge level we don’t describe an agent using specific data structures, representations of knowledge, and algorithms but use the content of the knowledge and the principle of rationally.

Levels of architecture

sad Levels of architecture

An agent selects actions to achieve its goals on the basis of the available knowledge. Achieving the knowledge level requires perfect rationality, which is computationally infeasible except when an agent has simple goals or limited knowledge. The challenge for a cognitive architecture is to provide structures to approximate the knowledge level under the constraint of limited computer resources.

As one progress up the hierarchy the behavior is at longer time scales. The timescales at the physical level is between nano and microseconds, the cognitive level between milliseconds and tens of seconds, and the knowledge level between minutes and hours.

There is a great diversity in cognitive architectures, but they can be split into the following three general categories corresponding to different long-term research goals:

  1. Cognitive modeling - The goal is to support the development of models of human behavior that match biological data such as reaction times, error rates and even MRI results.

  2. Agent development - …​