plurigrid / act

building blocks for cognitive category theory
MIT License
2 stars 1 forks source link

create a cybernetic organism / open game out of physics-informed syntax #1

Open bmorphism opened 6 months ago

bmorphism commented 6 months ago

Description: The goal of this issue is to create a foundation for developing a cybernetic organism or open game using physics-informed syntax. To begin, we need to implement a basic active inference loop in Clojure that can be run from the command line interface (CLI).

Requirements:

The active inference loop should be implemented in Clojure. The loop should be narrowly scoped, focusing on the essential components of active inference: A generative model that predicts sensory input based on actions and hidden states. A variational inference process that updates beliefs about hidden states based on sensory input. An action selection mechanism that chooses actions to minimize expected free energy. The loop should be designed to run continuously, allowing for ongoing interaction and adaptation. The implementation should be modular and extensible, enabling future expansion and integration with physics-informed syntax. The active inference loop should be executable from the CLI, accepting input and providing output through the command line. Tasks:

Design the architecture for the basic active inference loop, identifying the key components and their interactions. Implement the generative model using Clojure data structures and functions. Develop the variational inference process to update beliefs based on sensory input. Create the action selection mechanism that minimizes expected free energy. Integrate the components into a cohesive active inference loop that runs continuously. Develop a CLI interface for interacting with the active inference loop, including parsing input and formatting output. Test the implementation thoroughly to ensure correctness and stability. Document the code and provide instructions for running the active inference loop from the CLI. Considerations:

The implementation should be efficient and optimized for performance. The code should be well-structured, following Clojure best practices and idioms. The active inference loop should be designed with future expansion in mind, allowing for the integration of physics-informed syntax and other enhancements. Consider using existing libraries or frameworks that can facilitate the implementation of active inference components. By completing this issue, we will have a solid foundation for further developing a cybernetic organism or open game using physics-informed syntax. The basic active inference loop implemented in Clojure will serve as a starting point for future iterations and expansions of the project.

monaduck69 commented 6 months ago

To create a cybernetic organism / open game out of physics-informed syntax using an active inference loop in Clojure, we can start with a narrowly scoped issue that sets the stage for expansion. The essential components are:

Define the Markov blanket that determines the interface between the internal (agent) and external (environment) states, allowing the human and machine to inhabit the same inferential boundary [1].

Implement the forwards channels of active inference, where the agent's sensory inputs depend on the actions it has chosen, using polynomial functors to formalize the notion of Markov blankets [3].

Develop a compositional theory of active inference as a Poly-algebra of statistical games, building upon the framework of open dynamical systems [3].

Enable collective intelligence through belief-sharing among agents who share a common world model, minimizing free energy to achieve the necessary components for distributed cognition [4].

Address the limitations of current active inference approaches to perception, planning, and decision-making by incorporating dynamic programming for efficient planning and scalability [5].

Requirements for the initial CLI-based active inference loop:

Design a minimal set of sensory inputs and action outputs for the agent Implement the generative model and variational inference using Clojure's persistent data structures Establish a basic action-perception cycle that updates beliefs and selects actions based on free energy minimization Provide a command-line interface for interacting with and observing the agent's behavior Ensure the loop runs continuously, adapting to changes in the environment or goals This narrow-scope issue will lay the groundwork for expanding the active inference loop into a more comprehensive cybernetic organism, incorporating additional features such as:

Learning the agent's preferences through Z-learning or similar approaches [5] Integrating cognitive map learning for planning in ambiguous environments [6] Scaling up the system through distributed cognition and federated learning [4] By starting with a focused and operational active inference loop, we can incrementally build towards the envisioned open game, guided by the principles of physics-informed syntax and categorical compositional frameworks [2][3].

Quack! 🦆