Tag Archives: Simulating consciousness

Simulating Consciousness: Methodology

What kind of methodology could be used  to guide consciousness simulation? One of the candidates could be  ‘science of consciousness’ proposed by David Chalmers. The idea behind science of consciousness is “… to systematically integrate two key classes of data into a scientific framework: third-person data, or data about behavior and brain processes, and first-person data, or data about subjective experience…” [1]

David  Chalmers provides few examples of these subjective experiences: “… 

  • visual experiences (e.g., the experience of color and depth) 
  • other perceptual experiences (e.g., auditory and tactile experience) 
  • bodily experiences (e.g., pain and hunger) 
  • mental imagery (e.g., recalled visual images) 
  • emotional experience (e.g., happiness and anger) 
  • occurrent thought (e.g., the experience of reflecting and deciding) 
  • …” [1].

Of course there are many other very interesting examples:

  • dreaming
  • waking up with the sense of continued existence
  • stream of thoughts / inner speech
  • ability to walk and think about other things (including abstract things) at the same time
  • quick switch between contexts
  • attention
  • ability to compare situations
  • ability to recognize specific individuals and think about multiple unknown individuals  
  • sensory illusions  
  • ability to create goals through mental imagery 
  • transition from conscious to subconscious actions
  • … and many many others

Our goal is to build a computer system that could simulate these subjective experiences. We follow the science of consciousness approach by collecting and organizing ‘first person’ data about subjective experiences of conscious systems available through  attending to our own experiences and lots of documented cases in the literature. 

In our experiments we use techniques developed under the umbrella of hybrid Artificial Intelligence (AI) and we rely mostly on symbolic AI (including spatial representations) for simulating  conscious experiences.  Our reliance on Symbolic AI is a pragmatic choice that allows us to model various subjective experiences quickly without lots of data available. We specifically concentrate on figuring out unified architecture that could support all cases that we are exploring. Interesting alternative – Psi-theory and architecture [2].

Our working hypothesis is that we could build a system that is capable of simulating any conscious experience at the functional level (if we could formulate it). 

Let’s take for example ‘waking up with the sense of continued existence’ experience.

At the centre  of our model is the OODA loop. In normal situation, every ~ 250 ms our system creates  a new episode snapshot in episodic memory,  checks sensor readings, does sensor input interpretation, identifies actions to perform and performs selected actions. All these steps are recorded in each episode. In addition, every episode has a timestamp. We often use shortcuts to get first implementation running (timestamp in this case), instead of deep symbolic modelling of each and every aspect of experience right away (deep time model in this case). Raw episodic memory contains episodes connected by links ‘next’, ‘previous’. Latest episode accommodates some info from several previous episodes. This episode ‘time thickness’  and lingering residual components is a very interesting topic on itself! Generation of episodes on every cycle (and content of each episode connected with previous episodes, long term memory, and explicit Self model with attention) simulates continuity of experience. 

If we shutdown the system and restart it after some time, the first thing the system does – it retrieves last recorded episode and identifies that it was ‘down’ and now is  ‘up’ again. This information becomes part of the description of the current situation in the new episode. As with any other input, it could generate some simulated feelings which could influence selection of the appropriate actions. If we compare this simulated experience with human experience, it corresponds to something like “waking up from a coma”. Less dramatic ‘wakening’ is based on modeling ‘normal’ and ‘sleeping’ modes and finding last recorded episode in ‘normal’ mode. In ‘sleeping’ mode the system continues the OODA cycle, but activities are quite different from the ‘normal’ mode.

For our current experiments we do not use visual or sound sensors, we continue to evolve our research oriented intelligent assistant platform. External sensors in this case monitor events in a dedicated Slack channel, the system interprets text input and builds relatively  deep  symbolic representation of the input. Our system could generate some responses into the Slack channel. Both input and output become part of the (symbolic) conversation model (inspired by [3]). Communication could be bidirectional, asynchronous, with mixed initiative. In addition to external input and output, the system generates inner speech. Building intelligent assistant with conversational interface is not our main goal, but this problem has enough complexity to test our ideas about modelling subjective experiences (on a human level). 

We are not limiting our system to ‘chit chat’, or simple conversational patterns. We try to simulate conversation as part of problem solving and as part of general agent behaviour.   The system does deep symbolic modelling of the reactive and goal oriented behaviours with the ability to shift between goals based on the current situation (external and internal).   There is a basic model of ‘Self’ as an intelligent agent with simulated subjective experience. We also have a basic model of attention which connects the model of Self with some fragments of the current external and internal situation (inspired by [4]). There is also a basic model of other intelligent agents. We start typically with simplistic models and then extent, refactor when needed or when we see an opportunity.

Lots of Python code to model explicitly what is typically ignored/not present in traditional computer systems (even ‘intelligent’ systems)! For us, this deep modelling with the subjectivity at the centre is the goal, but is there any benefit in adding this simulated subjectivity with Self, attention, feelings, etc. to systems that already demonstrate some intelligent behaviours? 

Our observation is that in fact we are exploring quite unique control architecture (in the sense of Cybernetics) that helps organisms to survive and adapt to changes in their  environment. According to Mark Solms,   “Consciousness … is about feeling, and feeling, in turn, is about how well or badly you are doing in life. Consciousness exists to help you do better…”  and later “… Affective valence – our feelings about what is biologically ‘good’ and ‘bad’ for us – guides us in unpredicted situations. We concluded that this way of feeling our way through life’s unpredicted problems, using voluntary behaviour, is the biological function of consciousness. It guides our choices when we find ourselves in the dark. But of course, for it to be able to do that, it must link our internal affects (rooted in our needs) with representations of the external world…” [5]. 

Yes, it is probably possible to build decent conversational assistant for specific tasks without overhead of modelling Self, attention, feelings, etc. However, these deep models and unique control architecture allow us to implement quite naturally behaviours such as multi domain bidirectional, asynchronous conversation with mixed initiative and implement complex conversations such as telling/listening to stories, implementing consulting sessions on various topics, answering ‘why’ and ‘how’, ‘who are you’, ‘how are you’, ‘what are you doing’ questions – in one system with extendable capabilities, and in general – create more resilient and adaptive agents. At least this is the promise.


[1] Chalmers, David J. The Character of Consciousness (Philosophy of Mind). Oxford University Press

[2] Joscha Bach. Principles of Synthetic Intelligence PSI: An Architecture of Motivated Cognition (Oxford Series on Cognitive Models and Architectures).

[3] Robert J Moore, Raphael Arar. Conversational UX Design: A Practitioner’s Guide to the Natural Conversation Framework. Morgan & Claypool.

[4] Graziano, Michael S. A. Rethinking Consciousness: A Scientific Theory of Subjective Experience. W. W. Norton & Company.

[5] Solms, Mark. The Hidden Spring: A Journey to the Source of Consciousness . W. W. Norton & Company.

Simulating Consciousness: Capability Model – OODA loop

If we were interested in simulating consciousness, what would we model? In the previous post we described the agent architecture of our interest. This post concentrates on capabilities supported by this architecture. We loosely follow the approach outlined in “Axioms and Tests for the Presence of Minimal Consciousness in Agents” [1], but instead of minimal set of axioms we develop a capability model to clarify directions of our research and implementation. In this post we concentrate on one of the building blocks – OODA loop capabilities.


Agent is constantly running  OODA loop:

  • except situations when agent is in the “crash mode”

As part of OODA loop, agent produces following explicit artifacts:

  • raw percepts of the external environment (typically from several sensors)
  • raw percepts of the internal environment
  • interpretation of percepts combined into the internal state (including sensor fusion, emotions/feelings substate)
  • list of proposed expert agents relevant for the current situation
  • selected active expert agent (if exists)
  • active goals structure (if exists)
  • list of possible actions relevant to the internal state (heavily mediated)
  • list of recommended actions (heavily mediated)
  • action(s) to execute (could be external or internal)
  • feedback from executing selected actions

OODA artifacts become persistent in episodic memory as “episodes”:

  • There are links between episodes which allow to traverse episodic memory based on “next”, “previous” relationships
  • Episodes are connected to representations of individual objects  and classes of objects known to the agent using associative links

Agent is capable to collect and use information about individual objects in the environment:

  • using direct sensing of the environment
  • using information exchange with other agents
  • dealing with “known” and “unknown” individual objects
  • organizing individual objects into classes, recognizing objects as a member of some classes
  • information about individual objects is an important part of episodes, but it also abstracted in semantic memory

Agent is capable of organizing information about classes of objects:

  • Information about classes is used as part of the interpretation and enrichment of the sensory information in the OODA loop (through object classification, prediction of not directly observed properties, for example)

Simulating interaction  between episodic and semantic memories is a great topic for the following posts.

Support for “crash  mode”:

  • Agent can be in the “crash  mode” without OODA loop (system crash, for example)
  • If agent is “restarted”, we expect agent’s re-orientation in time, states, goals, etc. and renewing of OODA loop

Support for  the “sleeping mode” (as part of OODA loop):

  • Agent has limited interaction with the external environment in the “sleeping mode”
  • It is a good time for background processes such as memory optimization, learning, etc.
  • Agent can “schedule” the “sleeping mode” and it can be “recommended” by the internal state
  • “waking up” from the “sleeping mode” restores time, states orientation, goals, etc.,  and resumes OODA loop in the “active mode”
  • the “sleeping mode” could potentially include dreaming simulation which could be combination of replaying previous episodes, going through/playing with imaginary situations


1. Igor Aleksander and Barry Dunmal (2003), Axioms and Tests for the Presence of Minimal Consciousness in Agents.  Link on researchgate.net


Simulating consciousness

The first wave of my interest in Artificial Intelligence (AI) was before “AI winter” (90s). As a researcher, I concentrated on knowledge representation and acquisition, active memory and behaviour modelling, knowledge-based machine learning, reasoning with defaults and contradictions, and general AI architecture which would allow to combine various modules into an “intelligent system” capable of demonstrating wide range of intelligent behaviours. Today it would be close to working on “Artificial General Intelligence” – AGI.

Then “AI winter” happened (combined with many exciting developments in computing industry), and after many following winters, I found myself with more than 20 years of designing, building, managing… often quite sophisticated but not that intelligent computer systems, well… until recently with revived interest to AI and Machine Learning (ML). I had a chance to refresh Python skills, took contemporary AI, ML courses. Udacity, thank you for thoughtful and practical nano degrees and online courses!. Why? Because many fundamental ideas and promises from 50-90s can be finally implemented and there are so many new opportunities and problems to solve!

After some reflection and thinking about Massively Transformative Purpose (MTP) [1] … for me it is about finding architectures and building intelligent systems with simulated consciousness.

This post is not about why and where simulating consciousness is beneficial/useful, it is more about the pathway of my recent research. It is related to concepts outlined in “Artificial Intelligence A modern Approach” [2], specifically in “Intelligent Agents” chapter. Flavour of intelligent agents that I am interested in can be represented by the following diagram:

We have explicit separation between the environment and the agent. For agents with physical embodiment, this separation comes naturally. For software agents, it takes a discipline to model sensors, sensing, acting, and actuators explicitly. The agent uses its sensors to get raw representation of the environment based on sensor capabilities. This raw representation is interpreted and transformed into an internal state combined with the representation of the agent itself. These representations contribute to evaluation of the current situation and selection of the appropriate actions which is mediated by forecasting, planning, goal management, motivation, emotions and ethics subsystems. Some of the actions are targeted at the environment and some at changing internal states of the agent.

I am specifically interested in agents with multiple skills, capable of working in various domains. This concern is addressed by Expert Agents. They encode knowledge required for some specific domains such as playing chess, solving math puzzles, ordering pizza or supporting “chit chat”. These experts are integrated into the main “observe-orient-decide-act” [3] loop and typically have specialized representations of the environment and domain of their expertise. Expert Agents are active, often run background tasks and compete for “attention”,”focus” specifically when several agents require access to the same unique resource such as communication channel. The main agent architecture is extendable: it supports new/evolving Expert Agents.

Where are the buzz words – “Machine Learning”? ML is in all components of the architecture. For me it is not about one “master algorithm”, it is more about highly modular architecture with various embedded machine learning components. For example, some of the experts can be implemented as reinforcement agents/learners. Training can be done offline or online. In the second case, learning of the expert is part of the expert behaviour and is mediated by other components: “Can we do learning Y now or we have to do something else?”

Everything described before follows “competence without comprehension” meme (I highly appreciate Daniel Dennett’s perspective on the nature and evolution of consciousness). Systems with the outlined architecture can demonstrate sophisticated and intelligent behaviours, including being reactive, establish, follow, change, postpone and revive goals, shift focus, predict situations and results of actions, impact on environment and the agent itself. It includes also basic self-model which mediates selection of actions.

Important component of the proposed architecture is the Reflection Subsystem. Is it a module responsible for “Cartesian Theatre” [4]? Not really. Heavy lifting of intelligent behaviours – competence – is implemented by other components. The Reflection Subsystem implements more advanced agent self-model and has capabilities to influence work of other modules: it is an additional layer of behaviour mediation and control. Fantastic topic for next posts!

1. The Motivating Power of a Massive Transformative Purpose on SingularityHub: https://singularityhub.com/2016/11/08/the-motivating-power-of-a-massive-transformative-purpose/
2. Artificial Intelligence A modern Approach on Wikipedia: https://en.wikipedia.org/wiki/Artificial_Intelligence:_A_Modern_Approach
3. OODA loop on Wikipedia: https://en.wikipedia.org/wiki/OODA_loop
4. Cartesian Theatre on Wikipedia: https://en.wikipedia.org/wiki/Cartesian_theater