зеркало из
				https://github.com/docxology/cognitive.git
				synced 2025-11-04 07:06:06 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			318 строки
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			318 строки
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# API Reference Documentation
 | 
						|
 | 
						|
---
 | 
						|
title: API Reference Documentation
 | 
						|
type: reference
 | 
						|
status: stable
 | 
						|
created: 2024-02-06
 | 
						|
tags:
 | 
						|
  - api
 | 
						|
  - reference
 | 
						|
  - documentation
 | 
						|
semantic_relations:
 | 
						|
  - type: implements
 | 
						|
    links: [[api_documentation]]
 | 
						|
  - type: documents
 | 
						|
    links: 
 | 
						|
      - [[knowledge_base/cognitive/active_inference|Active Inference Theory]]
 | 
						|
      - [[knowledge_base/cognitive/free_energy_principle|Free Energy Principle]]
 | 
						|
  - type: relates
 | 
						|
    links:
 | 
						|
      - [[package_documentation]]
 | 
						|
      - [[documentation_standards]]
 | 
						|
---
 | 
						|
 | 
						|
## Core API Components
 | 
						|
 | 
						|
### Active Inference Framework
 | 
						|
See [[knowledge_base/cognitive/active_inference|Active Inference Theory]] for theoretical background.
 | 
						|
 | 
						|
#### ActiveInferenceAgent
 | 
						|
```python
 | 
						|
class ActiveInferenceAgent:
 | 
						|
    """
 | 
						|
    Main agent implementation for Active Inference.
 | 
						|
    
 | 
						|
    Theory: [[knowledge_base/cognitive/active_inference|Active Inference]]
 | 
						|
    Examples: [[active_inference_example]]
 | 
						|
    """
 | 
						|
    
 | 
						|
    def __init__(self, 
 | 
						|
                 observation_space: Space,
 | 
						|
                 action_space: Space,
 | 
						|
                 precision: float = 1.0):
 | 
						|
        """
 | 
						|
        Initialize agent with observation and action spaces.
 | 
						|
        
 | 
						|
        Theory: [[knowledge_base/cognitive/free_energy_principle|Free Energy Principle]]
 | 
						|
        
 | 
						|
        Args:
 | 
						|
            observation_space (Space): Observation space definition
 | 
						|
            action_space (Space): Action space definition
 | 
						|
            precision (float): Action precision parameter
 | 
						|
        """
 | 
						|
        
 | 
						|
    def update_beliefs(self, 
 | 
						|
                      observation: np.ndarray) -> np.ndarray:
 | 
						|
        """
 | 
						|
        Update beliefs using [[knowledge_base/cognitive/predictive_processing|Predictive Processing]].
 | 
						|
        
 | 
						|
        Implementation: [[belief_updating]]
 | 
						|
        
 | 
						|
        Args:
 | 
						|
            observation (np.ndarray): Current observation
 | 
						|
            
 | 
						|
        Returns:
 | 
						|
            np.ndarray: Updated belief state
 | 
						|
        """
 | 
						|
        
 | 
						|
    def select_action(self) -> np.ndarray:
 | 
						|
        """
 | 
						|
        Select action using Active Inference principles.
 | 
						|
        
 | 
						|
        Theory: [[knowledge_base/cognitive/active_inference#action-selection|Action Selection]]
 | 
						|
        Implementation: [[action_selection]]
 | 
						|
        
 | 
						|
        Returns:
 | 
						|
            np.ndarray: Selected action
 | 
						|
        """
 | 
						|
```
 | 
						|
 | 
						|
### Belief Updating System
 | 
						|
See [[knowledge_base/cognitive/predictive_processing|Predictive Processing]] for theoretical foundation.
 | 
						|
 | 
						|
#### BeliefUpdater
 | 
						|
```python
 | 
						|
class BeliefUpdater:
 | 
						|
    """
 | 
						|
    Belief updating implementation.
 | 
						|
    
 | 
						|
    Theory: [[knowledge_base/cognitive/predictive_processing|Predictive Processing]]
 | 
						|
    Examples: [[belief_updating_example]]
 | 
						|
    """
 | 
						|
    
 | 
						|
    def __init__(self,
 | 
						|
                 model: GenerativeModel,
 | 
						|
                 inference_method: str = "variational"):
 | 
						|
        """
 | 
						|
        Initialize belief updater.
 | 
						|
        
 | 
						|
        Theory: [[knowledge_base/cognitive/free_energy_principle#variational-inference|Variational Inference]]
 | 
						|
        
 | 
						|
        Args:
 | 
						|
            model (GenerativeModel): Generative model
 | 
						|
            inference_method (str): Inference method
 | 
						|
        """
 | 
						|
        
 | 
						|
    def update(self,
 | 
						|
              prior: np.ndarray,
 | 
						|
              likelihood: np.ndarray) -> np.ndarray:
 | 
						|
        """
 | 
						|
        Update beliefs using predictive processing.
 | 
						|
        
 | 
						|
        Theory: [[knowledge_base/cognitive/predictive_processing#belief-updating|Belief Updating]]
 | 
						|
        Implementation: [[belief_updating]]
 | 
						|
        
 | 
						|
        Args:
 | 
						|
            prior (np.ndarray): Prior beliefs
 | 
						|
            likelihood (np.ndarray): Likelihood distribution
 | 
						|
            
 | 
						|
        Returns:
 | 
						|
            np.ndarray: Posterior beliefs
 | 
						|
        """
 | 
						|
```
 | 
						|
 | 
						|
### Policy Selection
 | 
						|
See [[action_selection]] for algorithm details.
 | 
						|
 | 
						|
#### PolicySelector
 | 
						|
```python
 | 
						|
class PolicySelector:
 | 
						|
    """
 | 
						|
    Policy selection implementation.
 | 
						|
    
 | 
						|
    See [[action_selection_example]] for usage.
 | 
						|
    """
 | 
						|
    
 | 
						|
    def __init__(self,
 | 
						|
                 policy_space: PolicySpace,
 | 
						|
                 precision: float = 1.0):
 | 
						|
        """
 | 
						|
        Initialize policy selector.
 | 
						|
        
 | 
						|
        Args:
 | 
						|
            policy_space (PolicySpace): Available policies
 | 
						|
            precision (float): Selection precision
 | 
						|
        """
 | 
						|
        
 | 
						|
    def select_policy(self,
 | 
						|
                     beliefs: np.ndarray,
 | 
						|
                     preferences: np.ndarray) -> Policy:
 | 
						|
        """
 | 
						|
        Select policy using expected free energy.
 | 
						|
        
 | 
						|
        Args:
 | 
						|
            beliefs (np.ndarray): Current beliefs
 | 
						|
            preferences (np.ndarray): Goal preferences
 | 
						|
            
 | 
						|
        Returns:
 | 
						|
            Policy: Selected policy
 | 
						|
        """
 | 
						|
```
 | 
						|
 | 
						|
## Utility Functions
 | 
						|
 | 
						|
### Matrix Operations
 | 
						|
```python
 | 
						|
def compute_free_energy(beliefs: np.ndarray,
 | 
						|
                       observations: np.ndarray) -> float:
 | 
						|
    """
 | 
						|
    Compute variational free energy.
 | 
						|
    
 | 
						|
    See [[free_energy_principle]] for theory.
 | 
						|
    
 | 
						|
    Args:
 | 
						|
        beliefs (np.ndarray): Current beliefs
 | 
						|
        observations (np.ndarray): Observed data
 | 
						|
        
 | 
						|
    Returns:
 | 
						|
        float: Free energy value
 | 
						|
    """
 | 
						|
 | 
						|
def compute_expected_free_energy(policy: Policy,
 | 
						|
                               beliefs: np.ndarray) -> float:
 | 
						|
    """
 | 
						|
    Compute expected free energy for policy.
 | 
						|
    
 | 
						|
    See [[active_inference]] for details.
 | 
						|
    
 | 
						|
    Args:
 | 
						|
        policy (Policy): Candidate policy
 | 
						|
        beliefs (np.ndarray): Current beliefs
 | 
						|
        
 | 
						|
    Returns:
 | 
						|
        float: Expected free energy
 | 
						|
    """
 | 
						|
```
 | 
						|
 | 
						|
### Visualization Tools
 | 
						|
See [[visualization_tools]] for complete documentation.
 | 
						|
 | 
						|
```python
 | 
						|
def plot_belief_state(beliefs: np.ndarray,
 | 
						|
                     title: str = "Belief State") -> None:
 | 
						|
    """
 | 
						|
    Plot current belief state distribution.
 | 
						|
    
 | 
						|
    Args:
 | 
						|
        beliefs (np.ndarray): Belief distribution
 | 
						|
        title (str): Plot title
 | 
						|
    """
 | 
						|
 | 
						|
def plot_action_selection(policies: List[Policy],
 | 
						|
                         values: np.ndarray) -> None:
 | 
						|
    """
 | 
						|
    Plot policy selection process.
 | 
						|
    
 | 
						|
    Args:
 | 
						|
        policies (List[Policy]): Available policies
 | 
						|
        values (np.ndarray): Policy values
 | 
						|
    """
 | 
						|
```
 | 
						|
 | 
						|
## Data Structures
 | 
						|
 | 
						|
### State Spaces
 | 
						|
```python
 | 
						|
class BeliefState:
 | 
						|
    """
 | 
						|
    Belief state representation.
 | 
						|
    
 | 
						|
    See [[belief_updating]] for usage.
 | 
						|
    """
 | 
						|
    
 | 
						|
    def __init__(self,
 | 
						|
                 dimensions: Tuple[int, ...],
 | 
						|
                 dtype: np.dtype = np.float32):
 | 
						|
        """
 | 
						|
        Initialize belief state.
 | 
						|
        
 | 
						|
        Args:
 | 
						|
            dimensions (Tuple[int, ...]): State dimensions
 | 
						|
            dtype (np.dtype): Data type
 | 
						|
        """
 | 
						|
 | 
						|
class PolicySpace:
 | 
						|
    """
 | 
						|
    Policy space representation.
 | 
						|
    
 | 
						|
    See [[action_selection]] for usage.
 | 
						|
    """
 | 
						|
    
 | 
						|
    def __init__(self,
 | 
						|
                 action_space: Space,
 | 
						|
                 horizon: int):
 | 
						|
        """
 | 
						|
        Initialize policy space.
 | 
						|
        
 | 
						|
        Args:
 | 
						|
            action_space (Space): Action space
 | 
						|
            horizon (int): Planning horizon
 | 
						|
        """
 | 
						|
```
 | 
						|
 | 
						|
## Integration Examples
 | 
						|
 | 
						|
### Basic Usage
 | 
						|
```python
 | 
						|
# Create agent
 | 
						|
agent = ActiveInferenceAgent(
 | 
						|
    observation_space=obs_space,
 | 
						|
    action_space=action_space
 | 
						|
)
 | 
						|
 | 
						|
# Update beliefs
 | 
						|
observation = environment.observe()
 | 
						|
beliefs = agent.update_beliefs(observation)
 | 
						|
 | 
						|
# Select action
 | 
						|
action = agent.select_action()
 | 
						|
```
 | 
						|
 | 
						|
See [[integration_examples]] for more examples.
 | 
						|
 | 
						|
## Error Handling
 | 
						|
 | 
						|
### Common Exceptions
 | 
						|
```python
 | 
						|
class DimensionError(Exception):
 | 
						|
    """Raised when dimensions don't match."""
 | 
						|
    pass
 | 
						|
 | 
						|
class ValidationError(Exception):
 | 
						|
    """Raised when validation fails."""
 | 
						|
    pass
 | 
						|
```
 | 
						|
 | 
						|
See [[error_handling]] for details.
 | 
						|
 | 
						|
## Performance Considerations
 | 
						|
 | 
						|
### Optimization Guidelines
 | 
						|
- Use vectorized operations
 | 
						|
- Implement caching where appropriate
 | 
						|
- Consider parallel processing for large models
 | 
						|
 | 
						|
See [[performance_optimization]] for details.
 | 
						|
 | 
						|
## Related Documentation
 | 
						|
- [[api_documentation]]
 | 
						|
- [[api_versioning]]
 | 
						|
- [[api_examples]]
 | 
						|
- [[package_documentation]]
 | 
						|
 | 
						|
## References
 | 
						|
- [[active_inference]]
 | 
						|
- [[free_energy_principle]]
 | 
						|
- [[predictive_processing]]
 | 
						|
- [[implementation_patterns]]  |