Руководство по интеграции
### Введение в Активный Вывод (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)
```
Активный Вывод (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)
```