Перейти к содержимому

Глава 303: Dreamer Trading

Введение: DreamerV2/V3 - RL на основе модели мира в латентном пространстве

Традиционное обучение с подкреплением (RL) для трейдинга сталкивается с фундаментальной проблемой: неэффективностью использования данных. Обучение непосредственно на рыночных взаимодействиях дорого, медленно и рискованно. Каждая исследовательская сделка стоит реальных денег, а обратная связь между действием и результатом может занимать часы, дни или недели. Именно здесь Dreamer - семейство RL-агентов на основе модели мира - предлагает смену парадигмы.

Dreamer, представленный через последовательные версии DreamerV1 (Hafner et al., 2020), DreamerV2 (Hafner et al., 2021) и DreamerV3 (Hafner et al., 2023), обучает компактную модель мира окружающей среды, а затем тренирует свою стратегию полностью в воображении - на смоделированных траекториях, сгенерированных обученной моделью. Вместо взаимодействия с реальными рынками для обучения агент сначала понимает, как ведут себя рынки, а затем практикует торговые стратегии в своей ментальной симуляции.

Архитектура построена на трёх ключевых компонентах:

  1. Модель мира: Обучается предсказывать будущие наблюдения и вознаграждения на основе прошлых данных с использованием рекуррентной модели пространства состояний (RSSM). Модель мира сжимает сырые рыночные наблюдения в компактное латентное представление.

  2. Актор (Стратегия): Нейронная сеть, которая выбирает действия (покупка, продажа, удержание, размер позиции) на основе текущего латентного состояния. Ключевой момент: актор обучается исключительно на воображаемых траекториях - последовательностях, сгенерированных моделью мира без какого-либо реального рыночного взаимодействия.

  3. Критик (Функция ценности): Оценивает ожидаемую будущую доходность из любого латентного состояния, обеспечивая сигналы обучения для актора во время воображения.

Этот подход особенно привлекателен для финансовых рынков по следующим причинам:

  • Эффективность данных: Рынки предоставляют ограниченные нестационарные данные. Обучение модели мира и тренировка в воображении умножают эффективный размер выборки.
  • Безрисковое исследование: Агент может исследовать агрессивные стратегии в воображении без риска для капитала.
  • Моделирование режимов: Модель мира может захватывать различные рыночные режимы (трендовый, возвратный к среднему, волатильный) в своём латентном пространстве.
  • Многошаговое планирование: Воображаемые развёртки позволяют агенту учитывать долгосрочные последствия торговых решений.

DreamerV3 специально ввёл несколько ключевых улучшений: symlog-предсказания для обработки различных масштабов (критично для финансовых данных), свободные биты для балансировки KL и универсальную конфигурацию гиперпараметров, работающую в различных доменах - что делает его особенно подходящим для гетерогенной природы финансовых рынков.

Математические основы

Рекуррентная модель пространства состояний (RSSM)

Сердце Dreamer - это RSSM, которая поддерживает латентное состояние с детерминированной и стохастической компонентами. Эта двойная структура позволяет модели захватывать как предсказуемую динамику рынка, так и присущую ему неопределённость.

RSSM состоит из четырёх компонентов:

Модель последовательности (Детерминированный путь): $$h_t = f_\phi(h_{t-1}, z_{t-1}, a_{t-1})$$

где $h_t$ - детерминированное рекуррентное состояние (захватывающее долгосрочные зависимости, такие как тренды), $z_{t-1}$ - предыдущее стохастическое состояние, а $a_{t-1}$ - предыдущее действие. На практике $f_\phi$ реализуется как ячейка GRU.

Кодировщик (Апостериорное распределение): $$z_t \sim q_\phi(z_t | h_t, x_t)$$

Учитывая текущее детерминированное состояние и фактическое наблюдение $x_t$ (рыночные данные), кодировщик создаёт апостериорное распределение над стохастическим состоянием. Это используется во время обучения, когда доступны реальные данные.

Предсказатель динамики (Априорное распределение): $$\hat{z}t \sim p\phi(\hat{z}_t | h_t)$$

Априорное распределение предсказывает стохастическое состояние только на основе детерминированного состояния, без доступа к фактическому наблюдению. Используется во время воображения при генерации траекторий без реальных данных.

Декодер (Модель наблюдений): $$\hat{x}t \sim p\phi(\hat{x}_t | h_t, z_t)$$

Реконструирует рыночные наблюдения из полного латентного состояния $(h_t, z_t)$.

Предсказатель вознаграждения: $$\hat{r}t \sim p\phi(\hat{r}_t | h_t, z_t)$$

Предсказывает вознаграждение (торговый PnL) из латентного состояния.

В DreamerV2/V3 стохастическое состояние $z_t$ использует категориальные распределения вместо гауссовых, что оказалось более выразительным и стабильным. Конкретно, $z_t$ представлено как вектор независимых категориальных переменных, каждая с конечным числом классов.

Обучение модели мира: нижняя граница правдоподобия (ELBO)

Модель мира обучается путём максимизации нижней границы правдоподобия на логарифм правдоподобия наблюдаемых последовательностей:

$$\mathcal{L}(\phi) = \sum_{t=1}^{T} \Big[ \underbrace{\ln p_\phi(x_t | h_t, z_t)}{\text{реконструкция}} + \underbrace{\ln p\phi(r_t | h_t, z_t)}{\text{предсказание вознаграждения}} - \underbrace{\beta \cdot D{KL}[q_\phi(z_t | h_t, x_t) | p_\phi(z_t | h_t)]}_{\text{KL-регуляризация}} \Big]$$

Член KL-дивергенции служит двум целям:

  1. Регуляризует апостериорное распределение: Предотвращает переобучение, удерживая выученные представления близко к априорному распределению.
  2. Обучает априорное распределение: Обеспечивает точное прогнозирование будущих состояний предсказателем динамики.

Балансировка KL

Ключевая инновация DreamerV2/V3 - балансировка KL, которая разделяет потерю KL на две части с различными скоростями обучения:

$$\mathcal{L}{KL} = \alpha \cdot D{KL}[\text{sg}(q_\phi) | p_\phi] + (1 - \alpha) \cdot D_{KL}[q_\phi | \text{sg}(p_\phi)]$$

где $\text{sg}(\cdot)$ обозначает остановку градиента. При $\alpha > 0.5$ (обычно $\alpha = 0.8$) априорное распределение обновляется более агрессивно для соответствия апостериорному, в то время как апостериорному дается больше свободы для представления истинного распределения данных.

DreamerV3 также вводит свободные биты: потеря KL применяется только когда она превышает порог $\tau$ (обычно $\tau = 1$ нат), предотвращая чрезмерную регуляризацию полезной информации:

$$\mathcal{L}{KL}^{\text{free}} = \max(\mathcal{L}{KL}, \tau)$$

Symlog-предсказания (DreamerV3)

Финансовые данные охватывают несколько порядков величин (уровни цен, объёмы, доходности). DreamerV3 решает это с помощью преобразования symlog:

$$\text{symlog}(x) = \text{sign}(x) \cdot \ln(|x| + 1)$$

$$\text{symexp}(x) = \text{sign}(x) \cdot (\exp(|x|) - 1)$$

Все предсказания (наблюдения, вознаграждения, ценности) делаются в пространстве symlog, которое сжимает диапазон, сохраняя информацию о знаке. Это особенно ценно для трейдинга, где доходности могут значительно варьироваться между активами и временными периодами.

Актор-критик в воображении

После обучения модели мира актор и критик обучаются полностью на воображаемых траекториях:

  1. Воображение: Начиная с реальных латентных состояний, модель мира генерирует траектории длины $H$ (горизонт воображения): $$\hat{z}t \sim p\phi(\hat{z}t | h_t), \quad h{t+1} = f_\phi(h_t, \hat{z}t, a_t), \quad a_t \sim \pi\psi(a_t | h_t, \hat{z}_t)$$

  2. Оценка ценности: Критик оценивает доходности с использованием $\lambda$-возвратов: $$V_t^\lambda = \hat{r}t + \gamma \Big[(1-\lambda) v\xi(h_{t+1}, \hat{z}{t+1}) + \lambda V{t+1}^\lambda \Big]$$

  3. Обновление актора: Актор максимизирует ожидаемую воображаемую доходность: $$\max_\psi \mathbb{E}\Big[\sum_{t=0}^{H} V_t^\lambda\Big]$$

  4. Обновление критика: Критик минимизирует ошибку предсказания на $\lambda$-возвратах: $$\min_\xi \mathbb{E}\Big[\sum_{t=0}^{H} (v_\xi(h_t, \hat{z}_t) - \text{sg}(V_t^\lambda))^2\Big]$$

Применения: торговля в воображаемых рыночных сценариях

Эффективное обучение стратегий с точки зрения данных

Фреймворк Dreamer трансформирует разработку торговых стратегий несколькими ключевыми способами:

1. Мультипликация данных: Из ограниченного набора данных, скажем, за 1 год минутных данных (~525 600 наблюдений), модель мира может сгенерировать миллионы воображаемых траекторий. Каждая траектория исследует различные последовательности действий, эффективно умножая обучающие данные.

2. Стратегии, учитывающие режимы: Стохастическая компонента RSSM естественно захватывает неопределённость рыночных режимов. Когда модель не уверена (высокая энтропия в $p_\phi(z_t|h_t)$), она генерирует разнообразные воображаемые будущие, приводя к робастным стратегиям, работающим в различных режимах.

3. Управление портфелем из нескольких активов: Латентное пространство может совместно моделировать корреляции между активами. Воображение позволяет исследовать стратегии ребалансировки портфеля по тысячам коррелированных сценариев.

4. Управление рисками через воображение: Генерируя множество воображаемых траекторий из текущего состояния, агент может оценивать хвостовые риски и соответственно корректировать позиции - по сути выполняя моделирование Монте-Карло внутри своей обученной модели мира.

Адаптации для трейдинга

Для финансовых рынков полезны следующие модификации стандартного фреймворка Dreamer:

  • Пространство действий: Непрерывный размер позиции в $[-1, 1]$, представляющий экспозицию от шорта до лонга, дискретизированный в категории для актора.
  • Формирование вознаграждения: Логарифмические доходности со штрафами за транзакционные издержки и регуляризацией просадки.
  • Пространство наблюдений: OHLCV данные, технические индикаторы, характеристики стакана ордеров, нормализованные symlog.
  • Расширение состояния: Включение состояния портфеля (текущая позиция, нереализованный PnL) в наблюдение.

Сравнение с подходами без модели

АспектБез модели (PPO/SAC)Dreamer
Эффективность данныхНизкая - нужны миллионы шаговВысокая - обучается в воображении
Риск при обученииВысокий - обучается на реальных сделкахНизкий - тренируется в воображении
Скорость адаптацииМедленная - нужны новые данныеБыстрая - обновляет модель мира
ИнтерпретируемостьЧёрный ящик действийМожно проверить предсказания модели
Вычислительная стоимостьНизкая на шагВыше - модель мира + воображение

Реализация на Rust

Реализация предоставляет упрощённую, но функциональную архитектуру Dreamer для трейдинга:

use dreamer_trading::{
DreamerConfig, DreamerAgent, WorldModel,
BybitClient, MarketData
};
// Настройка агента Dreamer
let config = DreamerConfig {
deterministic_size: 200,
stochastic_size: 30,
num_categories: 32,
hidden_size: 200,
imagination_horizon: 15,
kl_balance_alpha: 0.8,
free_bits: 1.0,
discount: 0.99,
lambda_gae: 0.95,
learning_rate: 3e-4,
};
// Получение реальных рыночных данных
let client = BybitClient::new();
let data = client.fetch_klines("BTCUSDT", "5", 1000).await?;
// Обучение модели мира на реальных данных
let mut agent = DreamerAgent::new(config);
agent.train_world_model(&data, epochs: 100);
// Обучение стратегии в воображении (без реального рыночного взаимодействия!)
agent.train_policy_in_imagination(num_trajectories: 10000);
// Оценка на отложенных реальных данных
let metrics = agent.evaluate(&test_data);

Реализация на Rust фокусируется на:

  • RSSM с детерминированными (GRU-подобными) и стохастическими (категориальными) состояниями
  • Обучение модели мира с реконструкцией + KL-потерей
  • Воображаемые развёртки для обучения актор-критика
  • Интеграция с API Bybit для реальных данных BTCUSDT

Смотрите rust/src/lib.rs для полной реализации и rust/examples/trading_example.rs для полного рабочего процесса.

Интеграция с Bybit

Реализация подключается к публичному API Bybit для получения реальных рыночных данных:

let client = BybitClient::new();
// Получение 1000 5-минутных свечей для BTCUSDT
let klines = client.fetch_klines("BTCUSDT", "5", 1000).await?;
// Каждая свеча содержит: временная метка, открытие, максимум, минимум, закрытие, объём
for k in &klines {
println!("Время: {}, OHLCV: {}/{}/{}/{} Объём: {}",
k.timestamp, k.open, k.high, k.low, k.close, k.volume);
}

Конвейер данных:

  1. Получение сырых OHLCV данных из REST API Bybit
  2. Нормализация признаков с использованием преобразования symlog
  3. Создание последовательностей для обучения RSSM
  4. Разделение на обучающую/валидационную/тестовую выборки

Ключевые выводы

  1. Dreamer обучает модель мира рынков и тренирует торговые стратегии полностью в воображении, устраняя необходимость дорогостоящего исследования реального рынка во время обучения.

  2. Архитектура RSSM с детерминированными + стохастическими состояниями захватывает как предсказуемые тренды (детерминированный путь), так и рыночную неопределённость (стохастическое состояние), обеспечивая богатое латентное представление.

  3. Балансировка KL и свободные биты предотвращают типичные сбои обучения, когда модель либо игнорирует наблюдения, либо не может выучить полезную динамику - критично для шумной, нестационарной природы финансовых данных.

  4. Symlog-предсказания обрабатывают мультимасштабную природу финансовых данных (цены, объёмы, доходности) без ручной настройки нормализации.

  5. Обучение на основе воображения по своей природе безрисковое: агент может исследовать агрессивные стратегии, испытывать просадки и учиться на крахах без какого-либо риска для реального капитала.

  6. Эффективность данных - ключевое преимущество для трейдинга: рынки предоставляют ограниченные невоспроизводимые данные, и способность Dreamer генерировать неограниченный воображаемый опыт из обученной модели уникально подходит для этого ограничения.

  7. Модель мира обеспечивает интерпретируемость: изучая предсказания модели и латентные состояния, трейдеры могут понять, что агент “думает” о рынке, укрепляя доверие к системе.

  8. Универсальные гиперпараметры DreamerV3 снижают необходимость настройки для каждого актива или рынка, обеспечивая более быстрое развёртывание на различных торговых инструментах.

Ссылки

  • Hafner, D., et al. (2020). “Dream to Control: Learning Behaviors by Latent Imagination.” ICLR 2020.
  • Hafner, D., et al. (2021). “Mastering Atari with Discrete World Models.” ICLR 2021.
  • Hafner, D., et al. (2023). “Mastering Diverse Domains through World Models.” arXiv:2301.04104.
  • Ha, D. & Schmidhuber, J. (2018). “World Models.” NeurIPS 2018.
  • Schrittwieser, J., et al. (2020). “Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model.” Nature.