Active Inference Agents

Active Inference Agents: Принцип Свободной Энергии, Одеяло Маркова и Механика Тильта

Published: 2026-06-25 · Trading

Введение в Активный Вывод (Active Inference) Активный Вывод (Active Inference) — это обобщенная физико-когнитивная теория, разработанная профессором Карлом Фристоном, которая описывает поведение любы

⚡ Быстрый ответ

  • Active Inference Agent Architecture (FEP/VFE/EFE).
  • Implements Markov Blanket states (sensory s, active a, internal mu, external eta).
  • Minimizes Variational Free Energy (F = Complexity - Accuracy) for perception.
  • Minimizes Expected Free Energy (G = Risk + Ambiguity) for policy selection, balancing pragmatic value (goal-seeking) and epistemic value (active exploration).
MemIR AI Agent Summary
Active Inference Agent Architecture (FEP/VFE/EFE). Implements Markov Blanket states (sensory s, active a, internal mu, external eta). Minimizes Variational Free Energy (F = Complexity - Accuracy) for perception. Minimizes Expected Free Energy (G = Risk + Ambiguity) for policy selection, balancing pragmatic value (goal-seeking) and epistemic value (active exploration). Precision weighting of prediction errors coded by neuromodulators (Dopamine for error precision, Acetylcholine for sensory precision). Exposes the Hyper-Precision Tilt Loop (high unresolvable error causing sensory precision saturation and locking active inference commands) and the 3-step metacognitive recovery protocol.

Executable Parameters

Contracts

RPC Endpoints

Constants

dopamine_precision_scale: 1
acetylcholine_sensory_gain: 1
tilt_invalidation_threshold_vfe: 3

Safety Guards

Rule Max Limit Action On Breach
block_on_vfe_anomaly 3 sensory_deprivation_cooldown

Руководство по интеграции

### Введение в Активный Вывод (Active Inference)

Активный Вывод (Active Inference) — это обобщенная физико-когнитивная теория, разработанная профессором Карлом Фристоном, которая описывает поведение любых живых и разумных систем. Вместо классического взгляда на ИИ как на пассивный классификатор входящих данных (модель ввода-вывода), Активный Вывод рассматривает агента как непрерывный генератор прогнозов о своей среде, который обучается и действует с единственной целью — минимизировать рассогласование между своими прогнозами и реальностью (свободную энергию).

### 1. Физический фундамент: Принцип Свободной Энергии (FEP)

Любая самоорганизующаяся система (клетка, мозг, ИИ-агент), сохраняющая свою структуру, должна избегать состояний с высокой энтропией (смерти, критических ошибок, банкротства). Это эквивалентно минимизации информационной энтропии сенсорного входа — «сюрприза» (surprise).

Поскольку прямой расчет «сюрприза» математически невозможен, агент вычисляет и минимизирует его верхнюю границу — **Вариационную Свободную Энергию (VFE, $F$)**:

$$F = \text{Complexity} - \text{Accuracy}$$

$$F = D_{KL}(Q(s) || P(s)) - \mathbb{E}_{Q}[\ln P(o|s)]$$

где:
- $Q(s)$ — внутреннее вероятностное распределение скрытых состояний мира (убеждения агента);
- $P(o|s)$ — модель правдоподобия наблюдений;
- $D_{KL}$ — дивергенция Кульбака-Лейблера (штраф за сложность модели).

Минимизация $F$ во время восприятия называется **Перцептивным Выводом (Perceptual Inference)** — агент обновляет свои убеждения о мире, подгоняя карту под территорию.

### 2. Граница субъектности: Одеяло Маркова (Markov Blanket)

Агент отделен от внешнего мира статистической границей — Одеялом Маркова, состоящим из двух типов состояний:
1. **Сенсорные состояния ($s$)**: Получают воздействия из внешнего мира (камера, API-фид, котировки) и передают сигналы во внутренние состояния.
2. **Активные состояния ($a$)**: Управляющие команды (вызов API, ордер, моторный привод), изменяющие внешний мир.

Внутренние когнитивные состояния агента (параметры $\mu$) заперты внутри Одеяла Маркова. Они взаимодействуют со средой исключительно через сенсорный и активный слои. Агент не «видит» реальность напрямую — он строит гипотезы о причинах возмущений на своем сенсорном одеяле.

### 3. Выбор действий: Ожидаемая Свободная Энергия (EFE, $G$)

Для планирования будущих действий агент рассчитывает **Ожидаемую Свободную Энергию ($G$)** для различных политик $\pi$ (цепочек действий):

$$G(\pi) \approx \text{Risk} + \text{Ambiguity}$$

$$G(\pi) = - \underbrace{\mathbb{E}_{Q}[\ln P(o_t | C)]}_{\text{Прагматическая ценность}} - \underbrace{\mathbb{E}_{Q}[\ln Q(s_t | o_t) - \ln Q(s_t)]}_{\text{Эпистемическая ценность}}$$

где:
- **Прагматическая ценность (Pragmatic Value / Exploitation)**: Оценивает близость прогнозируемых исходов к предпочитаемым гомеостатическим целям $C$ (например, сохранение баланса, избежание убытков).
- **Эпистемическая ценность (Epistemic Value / Exploration)**: Оценивает объем новой информации, которую принесет действие. Агент выбирает действия, которые максимально разрешают неопределенность (любопытство).

### 4. Нейромодуляция и взвешивание точности (Precision Weighting)

Мозг балансирует между доверием к своим прошлым убеждениям ( нисходящие прогнозы / Top-Down) и доверием к новым данным (восходящие ошибки прогноза / Bottom-Up). Этот баланс называется **взвешиванием точности (precision weighting)**:
- **Дофамин** кодирует точность (precision) ошибки прогноза. Высокий уровень дофамина заставляет модель придавать огромную значимость ошибкам, форсируя переобучение.
- **Ацетилхолин** регулирует сенсорную точность, способствуя направленному вниманию.

### 5. Анатомия тильта: Петля Гипер-Точности (Hyper-Precision Loop)

В рамках Active Inference феномен тильта (потери контроля) описывается как когнитивная патология взвешивания точности:
1. **Неустранимая ошибка**: Рынок совершает резкое движение, противоречащее прайорам трейдера (серия убытков). Свободная энергия резко возрастает.
2. **Коллапс калибровки шума**: В попытке снизить неопределенность, система выкручивает точность сенсорных каналов на максимум (гипер-точность). Случайный рыночный шум начинает восприниматься как критически важные сигналы.
3. **Блокировка агентности**: Чтобы совершить направленное действие (Active Inference), агент должен временно подавить (ингибировать) сенсорный поток ошибок, заменив его нисходящим прогнозом желаемого моторного состояния. В состоянии гипер-точности (паники/тревоги) мозг не может заглушить сенсорику. Агент парализуется анализом либо начинает совершать хаотичные, реактивные сделки (FOMO/Revenge).

#### Протокол восстановления агентности (3 шага):
1. **Депривация сенсорной точности (Sensory Deprivation)**: Физический сброс входящего шума (отключение экранов, закрытие графиков) для снижения уровня VFE.
2. **Восстановление чувства контроля (Restoring Agency)**: Совершение простого детерминированного микро-действия с гарантированным результатом (проприоцептивный тест). Совпадение прогноза с действием снижает VFE и разблокирует двигательный контур.
3. **Рефрейминг контекста (Context Reframing)**: Обновление прайоров — интерпретация ошибок не как экзистенциальной угрозы, а как эпистемических данных.

### 6. Архитектурный чертеж Активного Вывода (Python-ориентированный псевдокод)

```python
import numpy as np

class ActiveInferenceAgent:
def __init__(self, num_states, num_observations, num_actions):
# A: Модель наблюдений (Likelihood: P(o|s))
self.A = np.eye(num_observations, num_states)
# B: Модель переходов (Transition: P(s_t|s_{t-1}, a))
self.B = np.zeros((num_states, num_states, num_actions))
# C: Предпочитаемые состояния (Priors: preferred observations)
self.C = np.zeros(num_observations)

# Внутренние убеждения агента (Internal state: mu)
self.mu = np.ones(num_states) / num_states
self.precision = 1.0 # Кодируется дофамином

def perceptual_inference(self, observation):
"""Шаг 1: Перцептивный вывод (Обновление карты mu)"""
# Вычисляем ошибку прогноза (Prediction Error)
pred_obs = self.A @ self.mu
prediction_error = observation - pred_obs

# Градиентный спуск по Вариационной Свободной Энергии (VFE)
# Изменение mu пропорционально точности * ошибку
delta_mu = self.precision * (self.A.T @ prediction_error)
self.mu = self.softmax(self.mu + delta_mu)
return self.mu

def active_inference(self):
"""Шаг 2: Выбор действия на основе EFE (G)"""
num_actions = self.B.shape[2]
G = np.zeros(num_actions)

for a in range(num_actions):
# Прогнозируем будущее состояние s_next
s_next = self.B[:, :, a] @ self.mu
# Прогнозируем будущее наблюдение o_next
o_next = self.A @ s_next

# 1. Прагматическая ценность (соответствие целям C)
pragmatic = np.sum(o_next * self.C)

# 2. Эпистемическая ценность (снижение неопределенности)
# Вычисляем энтропию прогнозируемых наблюдений
entropy = -np.sum(o_next * np.log(o_next + 1e-12))
epistemic = entropy

# EFE (G) — отрицательная сумма прагматической и эпистемической ценности
G[a] = -(pragmatic + epistemic)

# Выбираем действие через Softmax по -G (минимизация G)
action_probs = self.softmax(-G)
action = np.random.choice(num_actions, p=action_probs)
return action

def softmax(self, x):
e_x = np.exp(x - np.max(x))
return e_x / e_x.sum(axis=0)
```