Self Reflection

Systems which are capable of self reflection are able to examine their own internal processing mechanisms. They can use this capability to explain their behavior, and modify their processing methods to improve performance. Such systems must have some form of Meta-Knowledge available, and in addition, they must actively apply the Meta-Knowledge to some task. The list below explains the common uses of self reflection.
Learning
Many systems reflect upon traces of problem solutions and try to extract generalities from them to improve their problem solving strategies. Histories of past problem solutions can be collectively examined to find commonalities that can lead to case based learning.

Performance Fine Tuning
Performance can be fine tuned by gathering statistics on the efficiency of various problem solving methods. These statistics are then examined to determine which problem solving methods are most efficient for certain classes of problems. This is closely related to the learning capability described above.

Explanation
Systems can use self reflection to explain their behavior to an outside observer. This action is often performed by examining traces of the problem solution and reporting key aspects of it.

Episodic Recall
Self Reflection can take the form of reporting past experiences to an outside observer. This is usually accomplished through some form of episodic memory, where experiences are stamped with indications of when they occurred.
There are several different mechanisms that can be included in an architecture to help facilitate self reflection. These are explained below.
"Glass Box" Knowledge Representation
If knowledge if uniformly represented and completely open to examination throughout the system then it is easier to add functionality which can examine this knowledge. Only one form of knowledge needs to be examined, and the knowledge itself is easily obtained.

The other common approach to knowledge representation is called the "black box" approach, where knowledge is localized and hidden within the various modules of the system. This makes it difficult to extract the knowledge to be reflected upon, and may require the use of several different methods of looking at the knowledge once it is obtained.

Episodic Memory
Episodic memory is directly applicable to episodic recall. This type of memory is often costly, however, both in terms of space and time. As the agent's experiences grow the size of the memory space to store these experiences must grow as well. In addition, searching through past experiences for some specific detail is often too time consuming to be practical.

Problem Solving Traces
Problem solving traces are used by many of the learning mechanisms. In addition they can be used to explain the behavior of the system. Problem solving traces are usually only kept around for a short period of time, and are often tied to the specific learning or explanation functions that use them. Once the system learns from them (or proceeds to another task) the trace is discarded. Key aspects of it may be saved in an episodic memory if the system has one.

Architectures having this capability include:


Go to A List of Common Capabilities.

Return to the Table of Contents


Current Location: Capabilities-Self Reflection