Глава 302: Мировые модели для трейдинга
Введение
Мировые модели (World Models), представленные Ха и Шмидхубером (2018), знаменуют парадигмальный сдвиг в обучении с подкреплением. Вместо того чтобы обучать стратегию напрямую через взаимодействие с реальной средой, агент сначала обучает сжатую генеративную модель мира. Эта внутренняя модель захватывает существенную динамику среды, позволяя агенту «мечтать» --- моделировать будущие траектории полностью в собственном воображении. Затем стратегия (контроллер) оптимизируется внутри этой среды-мечты, что резко сокращает потребность в дорогостоящем взаимодействии с реальным миром.
В контексте финансовых рынков мировые модели предлагают убедительную архитектуру. Рынки шумные, нестационарные, а взаимодействие с ними дорого (каждая сделка влечёт комиссии, проскальзывание и рыночное воздействие). Мировая модель, обученная на исторических рыночных данных, может служить высокоточным симулятором для исследования стратегий, аугментации данных и безрисковых экспериментов.
Оригинальная архитектура World Models состоит из трёх компонентов:
- Зрение (V) --- VAE: Вариационный автокодировщик, который сжимает многомерные наблюдения в компактный латентный вектор z.
- Память (M) --- MDN-RNN: Сеть плотности смесей в сочетании с LSTM, моделирующая временную динамику z и предсказывающая распределение следующего латентного состояния.
- Контроллер (C): Простое линейное отображение из текущего латентного состояния (и скрытого состояния RNN) в действия, оптимизируемое эволюционными стратегиями (CMA-ES).
В этой главе представлены математические основы, адаптации для трейдинга и полная реализация на Rust с интеграцией Bybit.
Математические основы
Вариационный автокодировщик (VAE)
VAE сжимает вектор наблюдения рынка x (например, OHLCV-признаки, технические индикаторы) в латентное представление z значительно меньшей размерности. Кодировщик выдаёт параметры гауссова распределения:
$$ q_\phi(z|x) = \mathcal{N}(\mu_\phi(x), \sigma^2_\phi(x)) $$
Латентный вектор сэмплируется через трюк репараметризации:
$$ z = \mu + \sigma \odot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I) $$
Декодер восстанавливает наблюдение из z:
$$ p_\theta(x|z) $$
Функция потерь VAE объединяет ошибку реконструкции и KL-дивергенцию:
$$ \mathcal{L}{VAE} = \mathbb{E}{q_\phi(z|x)}[\log p_\theta(x|z)] - D_{KL}(q_\phi(z|x) | p(z)) $$
где p(z) = N(0, I) --- стандартное нормальное априорное распределение. KL-член регуляризирует латентное пространство, обеспечивая гладкую интерполяцию и осмысленную генерацию.
Для трейдинга наблюдение x может включать нормализованные данные OHLCV, доходности, оценки волатильности, дисбаланс книги заявок и профили объёмов. Латентный вектор z захватывает «рыночный режим» в сжатой форме.
MDN-RNN (модель памяти)
MDN-RNN моделирует временную динамику в латентном пространстве. LSTM обрабатывает последовательности пар (z_t, a_t) (латентное состояние и действие) и выдаёт параметры гауссовой смеси для следующего латентного состояния:
$$ P(z_{t+1} | a_t, z_t, h_t) = \sum_{i=1}^{K} \pi_i \mathcal{N}(z_{t+1}; \mu_i, \sigma_i^2) $$
где K --- количество компонент смеси, pi_i --- коэффициенты смешивания (в сумме дающие 1), а mu_i, sigma_i --- среднее и стандартное отклонение каждой гауссовой компоненты. Скрытое состояние LSTM h_t кодирует историю наблюдений.
Уравнения обновления LSTM:
$$ f_t = \sigma(W_f \cdot [h_{t-1}, z_t, a_t] + b_f) $$ $$ i_t = \sigma(W_i \cdot [h_{t-1}, z_t, a_t] + b_i) $$ $$ \tilde{c}t = \tanh(W_c \cdot [h{t-1}, z_t, a_t] + b_c) $$ $$ c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c}t $$ $$ o_t = \sigma(W_o \cdot [h{t-1}, z_t, a_t] + b_o) $$ $$ h_t = o_t \odot \tanh(c_t) $$
Выходной слой MDN преобразует h_t в параметры смеси:
$$ [\pi, \mu, \sigma] = W_{mdn} \cdot h_t + b_{mdn} $$
Функция потерь --- отрицательное логарифмическое правдоподобие наблюдаемого следующего латентного состояния при предсказанной смеси:
$$ \mathcal{L}{MDN} = -\log \sum{i=1}^{K} \pi_i \mathcal{N}(z_{t+1}; \mu_i, \sigma_i^2) $$
Для трейдинга MDN-RNN учится предсказывать эволюцию рыночных режимов, захватывая переходы между трендовыми, возвратными к среднему и волатильными состояниями.
Контроллер (оптимизация CMA-ES)
Контроллер намеренно прост --- линейное отображение:
$$ a_t = W_c \cdot [z_t, h_t] + b_c $$
где a_t --- торговое действие (например, размер позиции в [-1, 1]), z_t --- текущее латентное состояние, а h_t --- скрытое состояние RNN.
Параметры контроллера theta_c = {W_c, b_c} оптимизируются с помощью CMA-ES (Covariance Matrix Adaptation Evolution Strategy), который поддерживает многомерное гауссово поисковое распределение:
$$ \theta \sim \mathcal{N}(m, \sigma^2 C) $$
На каждом поколении CMA-ES:
- Сэмплирует lambda кандидатных решений из распределения
- Оценивает приспособленность каждого кандидата (кумулятивная доходность в среде-мечте)
- Обновляет среднее m в сторону лучших кандидатов
- Адаптирует ковариационную матрицу C и размер шага sigma
Функция приспособленности для трейдинга обычно --- коэффициент Шарпа или кумулятивный PnL контроллера за мечта-эпизод:
$$ F(\theta_c) = \frac{1}{N} \sum_{n=1}^{N} R_n(\theta_c) $$
где R_n --- доходность от n-го эпизода мечты.
Обучение в мечте (Dream Training)
Ключевая идея мировых моделей --- обучение в мечте: после обучения VAE и MDN-RNN на реальных данных контроллер может обучаться целиком внутри выученной мировой модели без какого-либо дальнейшего взаимодействия с реальными рынками.
Процедура мечта-прогона:
- Сэмплируем начальное латентное состояние z_0 из обучающего распределения
- На каждом шаге t:
- Контроллер выбирает действие a_t = C(z_t, h_t)
- MDN-RNN предсказывает распределение z_{t+1}
- Сэмплируем z_{t+1} из предсказанного распределения смеси
- Вычисляем вознаграждение r_t (например, симулированный PnL на основе отображения латентного в цену)
- Накапливаем суммарную доходность за эпизод
Этот подход предлагает несколько преимуществ для трейдинга:
- Скорость: Мечта-прогоны на порядки быстрее бэктестинга на реальных данных, так как работают в латентном пространстве без полной реконструкции рынка.
- Разнообразие: Стохастическая природа сэмплирования MDN генерирует разнообразные рыночные сценарии, включая редкие события, с которыми контроллер должен справляться.
- Безопасность: Реальный капитал не подвергается риску во время обучения. Агент может исследовать агрессивные стратегии в мечтах перед осторожным развёртыванием.
- Обобщение: Выученная мировая модель захватывает рыночную динамику, помогающую контроллеру обобщать на невиданные условия.
Применения в трейдинге
Быстрое исследование стратегий
Традиционная оптимизация стратегий требует запуска бэктестов на длинных исторических периодах для каждой конфигурации параметров. С мировыми моделями каждый бэктест запускается в среде-мечте за малую долю стоимости. CMA-ES может оценить тысячи вариантов контроллера за поколение, обеспечивая быстрое исследование пространства стратегий.
Галлюцинация рынка для аугментации данных
Обученная MDN-RNN может генерировать синтетические рыночные траектории, сэмплируя из выученного распределения. Эти «галлюцинированные» рынки могут:
- Аугментировать ограниченные обучающие данные для последующих моделей
- Генерировать стресс-тестовые сценарии (сэмплирование из хвостов распределения)
- Создавать разнообразные обучающие среды для робастной оптимизации контроллера
- Моделировать смены режимов, редкие в исторических данных
Обнаружение режимов
Латентное пространство z, выученное VAE, естественным образом кластеризует рыночные режимы. Анализируя структуру латентного пространства (например, через кластеризацию или визуализацию), трейдеры могут идентифицировать различные рыночные состояния: низковолатильный тренд, высоковолатильное возвращение к среднему или режим обвала.
Трансферное обучение
Мировая модель, обученная на одном рынке (например, BTCUSDT), может быть дообучена для связанных рынков, используя общую динамику и адаптируясь к специфическим характеристикам рынка.
Реализация на Rust
Реализация в rust/src/lib.rs предоставляет:
- VAE: Сети кодировщика и декодера, сжимающие рыночные признаки в латентное пространство. Кодировщик выдаёт среднее и лог-дисперсию, а трюк репараметризации обеспечивает оптимизацию, подобную градиентной.
- MDN-RNN: Ячейка LSTM в сочетании с выходным слоем плотности смесей. LSTM отслеживает временные зависимости, а MDN захватывает мультимодальные распределения будущих латентных состояний.
- Контроллер: Линейная стратегия, отображающая (z_t, h_t) в действия, оптимизируемая упрощённой реализацией CMA-ES.
- WorldModel: Оркестрирует три компонента, предоставляя методы для кодирования наблюдений, предсказания следующих состояний, мечта-прогонов и оптимизации контроллера.
Ключевые проектные решения:
ndarrayиспользуется для эффективных матричных операций- VAE использует один скрытый слой для кодировщика и декодера
- MDN использует K=5 гауссовых компонент смеси по умолчанию
- CMA-ES работает на сплющенных параметрах контроллера с диагональной аппроксимацией ковариации
Интеграция с Bybit
Реализация получает реальные данные OHLCV из API Bybit:
GET https://api.bybit.com/v5/market/kline?category=linear&symbol=BTCUSDT&interval=60&limit=200Ответ парсится в данные свечей, нормализуется и преобразуется в векторы признаков для обучения VAE. Признаки включают:
- Нормализованные доходности (от закрытия к закрытию)
- Диапазон high-low (прокси волатильности)
- Объём (в логарифмической шкале)
- Соотношение тела свечи open-close
Ключевые выводы
-
Мировые модели разделяют обучение представлений и оптимизацию стратегии, позволяя обучать каждый компонент независимо и эффективно.
-
Обучение в мечте устраняет необходимость дорогостоящего взаимодействия с рынком при поиске стратегии, обеспечивая быстрое исследование при минимальных затратах.
-
Латентное пространство VAE обеспечивает естественное представление рыночного режима, захватывающее существенную динамику и отбрасывающее шум.
-
MDN-RNN захватывает мультимодальную рыночную динамику, моделируя неопределённость и поведение переключения режимов, присущее финансовым временным рядам.
-
CMA-ES хорошо подходит для оптимизации торговых контроллеров, поскольку обрабатывает недифференцируемые целевые функции (коэффициент Шарпа), устойчив к шуму и хорошо работает в низкоразмерных пространствах параметров.
-
Галлюцинация рынка генерирует синтетические данные для аугментации, стресс-тестирования и разработки робастных стратегий.
-
Подход естественно масштабируется: VAE и MDN-RNN обучаются на исторических данных однократно, после чего тысячи вариантов контроллера могут быть оценены дёшево в пространстве мечты.
-
Rust обеспечивает преимущества производительности для мечта-прогонов, где необходимы миллионы симуляций в латентном пространстве, и для инференса в реальном времени в производственных торговых системах.
Ссылки
- Ha, D., & Schmidhuber, J. (2018). “World Models.” arXiv:1803.10122.
- Kingma, D. P., & Welling, M. (2013). “Auto-Encoding Variational Bayes.” arXiv:1312.6114.
- Bishop, C. M. (1994). “Mixture Density Networks.” Technical Report.
- Hansen, N. (2006). “The CMA Evolution Strategy: A Tutorial.” arXiv:1604.00772.
- Hochreiter, S., & Schmidhuber, J. (1997). “Long Short-Term Memory.” Neural Computation.