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

Глава 308: GAIL Trading - Генеративное состязательное имитационное обучение для трейдинга

1. Введение

Генеративное состязательное имитационное обучение (Generative Adversarial Imitation Learning, GAIL) представляет собой один из наиболее мощных подходов к обучению торговых стратегий на основе экспертных демонстраций. В отличие от традиционных методов обучения с учителем, таких как клонирование поведения (behavior cloning), GAIL сочетает идеи генеративно-состязательных сетей (GAN) и обратного обучения с подкреплением (IRL), чтобы восстановить политики, которые соответствуют мере заполнения (occupancy measure) экспертных трейдеров, а не просто имитируют их отдельные действия.

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

Фреймворк GAIL был предложен Ho и Ermon (2016) и может быть описан следующим образом: сеть-дискриминатор учится различать пары состояние-действие, сгенерированные экспертом, и сгенерированные текущей политикой. Одновременно сеть политики обучается с помощью обучения с подкреплением, используя выход дискриминатора в качестве сигнала вознаграждения. Политика улучшается, «обманывая» дискриминатор, заставляя его поверить, что её траектории сгенерированы экспертом. Это состязательное взаимодействие направляет политику к совпадению с мерой заполнения эксперта.

Почему GAIL для трейдинга?

  1. Извлечение стратегий из торговых логов: Имея исторические логи успешного трейдера (временные метки, позиции, объёмы ордеров), GAIL может обучить базовую стратегию без необходимости объяснения трейдером своих рассуждений.
  2. Устойчивость к накоплению ошибок: Клонирование поведения страдает от сдвига распределения, поскольку ошибки накапливаются со временем. GAIL, обучаясь в замкнутом цикле через RL, изначально более устойчив.
  3. Неявное восстановление вознаграждения: GAIL неявно обучает функцию вознаграждения (дискриминатор), которая отражает, что делает поведение эксперта «хорошим», позволяя обобщать на невиданные рыночные условия.
  4. Работа с мультимодальными стратегиями: Экспертные трейдеры могут использовать разные стратегии в разных рыночных режимах. Состязательный фреймворк GAIL может захватить эту мультимодальность лучше, чем одномодальное клонирование поведения.

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

2.1 Мера заполнения (Occupancy Measure)

Центральным теоретическим понятием в GAIL является мера заполнения. Для политики $\pi$, действующей в MDP с динамикой переходов $P$ и коэффициентом дисконтирования $\gamma$, мера заполнения $\rho_\pi(s, a)$ определяется как:

$$\rho_\pi(s, a) = \pi(a|s) \sum_{t=0}^{\infty} \gamma^t P(s_t = s | \pi)$$

Это представляет (дисконтированное) распределение по парам состояние-действие, посещаемым политикой $\pi$. Фундаментальный результат Syed et al. (2008) устанавливает биекцию между политиками и допустимыми мерами заполнения.

Цель GAIL — найти политику $\pi_\theta$, мера заполнения которой совпадает с мерой заполнения эксперта $\rho_E$:

$$\min_\theta D_{JS}(\rho_{\pi_\theta} | \rho_E)$$

где $D_{JS}$ — дивергенция Йенсена-Шеннона.

2.2 Функция потерь дискриминатора

Дискриминатор $D_\omega(s, a)$ обучается различать экспертные и политико-сгенерированные пары состояние-действие. Его функция потерь повторяет дискриминатор GAN:

$$\mathcal{L}D(\omega) = -\mathbb{E}{(s,a) \sim \rho_E}[\log D_\omega(s, a)] - \mathbb{E}{(s,a) \sim \rho{\pi_\theta}}[\log(1 - D_\omega(s, a))]$$

Оптимальный дискриминатор для заданной пары распределений:

$$D^*(s, a) = \frac{\rho_E(s, a)}{\rho_E(s, a) + \rho_{\pi_\theta}(s, a)}$$

2.3 Обновление градиента политики (REINFORCE с GAIL-вознаграждением)

Политика обновляется с помощью REINFORCE, где вознаграждение на каждом шаге определяется дискриминатором:

$$r_t = -\log(1 - D_\omega(s_t, a_t))$$

Градиент политики:

$$\nabla_\theta J(\theta) = \mathbb{E}{\tau \sim \pi\theta} \left[ \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t | s_t) \left( \sum_{t’=t}^{T} \gamma^{t’-t} r_{t’} - b(s_t) \right) \right]$$

где $b(s_t)$ — опциональный базовый уровень для уменьшения дисперсии.

2.4 Полный алгоритм GAIL

Алгоритм: GAIL для трейдинга
Вход: Экспертные траектории τ_E, начальная политика π_θ, дискриминатор D_ω
Для каждой итерации i = 1, 2, ..., N:
1. Собрать траектории τ_i из текущей политики π_θ в рыночной среде
2. Обновить дискриминатор ω путём подъёма:
∇_ω [ E_{τ_E}[log D_ω(s,a)] + E_{τ_i}[log(1 - D_ω(s,a))] ]
3. Вычислить вознаграждения: r_t = -log(1 - D_ω(s_t, a_t))
4. Обновить политику θ с помощью REINFORCE:
θ ← θ + α ∇_θ E_{τ_i}[Σ_t log π_θ(a_t|s_t) · R_t]
5. (Опционально) Добавить энтропийный бонус H(π_θ) для поощрения исследования
Выход: Обученная политика π_θ

3. Сравнение с клонированием поведения и IRL

3.1 Клонирование поведения (Behavior Cloning, BC)

Клонирование поведения рассматривает имитационное обучение как задачу обучения с учителем. Хотя метод прост и быстр, у BC есть критические недостатки для трейдинга:

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

3.2 Обратное обучение с подкреплением (IRL)

Методы IRL (например, MaxEntIRL) явно восстанавливают функцию вознаграждения $R(s, a)$, объясняющую поведение эксперта, затем используют стандартное RL для её оптимизации:

  • Вычислительная стоимость: IRL требует решения задачи RL во внутреннем цикле, что делает его на порядки медленнее GAIL.
  • Неоднозначность вознаграждения: Множество функций вознаграждения могут объяснить одно и то же поведение.
  • Двухфазный подход: Разделение обучения вознаграждению и оптимизации политики может привести к накоплению ошибок аппроксимации.

3.3 GAIL: лучшее из двух миров

СвойствоКлонирование поведенияIRLGAIL
Накопление ошибокВысокоеНизкоеНизкое
Вычислительная стоимостьНизкаяОчень высокаяСредняя
Обученная функция вознагражденияНетЯвнаяНеявная (дискриминатор)
Многошаговое рассуждениеНетДаДа
Сопоставление распределенийПо действиямПо траекториямПо мере заполнения
Мультимодальное поведениеПлохоХорошоХорошо

4. Приложения: имитация стратегий успешных трейдеров из логов

4.1 Построение экспертных траекторий

В контексте трейдинга экспертные траектории строятся из исторических торговых логов успешных трейдеров или из прибыльных периодов в исторических данных.

Представление состояния $s_t$: Вектор, кодирующий текущие рыночные условия:

  • Ценовые признаки: доходность, волатильность, скользящие средние, RSI
  • Объёмные признаки: коэффициент объёма, отклонение от VWAP
  • Признаки позиции: текущая позиция, нереализованная PnL, время в позиции
  • Признаки стакана: спред, дисбаланс глубины

Пространство действий $a_t$: Дискретизированные торговые действия:

  • Активная покупка, покупка, удержание, продажа, активная продажа

Идентификация эксперта: Траектории из периодов, где стратегия достигала:

  • Коэффициент Шарпа > 2.0
  • Максимальная просадка < 5%
  • Положительная доходность как на растущих, так и на падающих рынках

4.2 Практический конвейер

  1. Сбор данных: Получение исторических OHLCV данных из Bybit API для ликвидных пар (например, BTCUSDT).
  2. Инженерия признаков: Вычисление технических индикаторов и нормализация признаков.
  3. Экспертная разметка: Идентификация периодов с высокой доходностью с использованием скользящего окна.
  4. Обучение GAIL: Попеременное обучение дискриминатора и политики.
  5. Оценка: Сравнение с базовой линией клонирования поведения на удержанных рыночных периодах.

4.3 Специфические для трейдинга задачи

  • Транзакционные издержки: Включение спреда и комиссии в переходы среды.
  • Нестационарность: Периодическое переобучение или использование рандомизации домена.
  • Ограничения риска: Добавление штрафного члена за чрезмерную просадку.
  • Дефицит данных: Использование аугментации данных для расширения экспертного набора.

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

Реализация на Rust предоставляет полную систему GAIL для трейдинга со следующими компонентами:

  1. ExpertDataset: Хранение экспертных траекторий как пар состояние-действие. Поддержка построения из исторических ценовых данных.
  2. Discriminator: Двухслойная нейронная сеть для классификации пар состояние-действие.
  3. PolicyNetwork: Стохастическая сеть политики с выходом в виде вероятностей действий.
  4. GAILTrainer: Оркестрация попеременного обучения дискриминатора и политики.
  5. TradingEnvironment: Симулятор рынка для воспроизведения исторических ценовых данных.
  6. BybitClient: Получение исторических данных kline из публичного API Bybit.

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

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

Эндпоинт: GET https://api.bybit.com/v5/market/kline
Параметры:
- category: "spot" или "linear"
- symbol: например, "BTCUSDT"
- interval: "1", "5", "15", "60", "240", "D"
- limit: до 200 свечей за запрос

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

  1. Получение сырых OHLCV данных из Bybit
  2. Вычисление доходностей, волатильности и технических индикаторов
  3. Нормализация признаков с помощью z-оценки
  4. Идентификация экспертных периодов (верхний квартиль по коэффициенту Шарпа)
  5. Извлечение траекторий состояние-действие из экспертных периодов
  6. Подача в цикл обучения GAIL

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

  1. GAIL сопоставляет меры заполнения, а не просто действия: Это обеспечивает более сильные гарантии, чем клонирование поведения, и более вычислительно эффективно, чем полный IRL.

  2. Дискриминатор — это обученная функция вознаграждения: Дискриминатор GAIL неявно отражает, что делает экспертное торговое поведение «хорошим».

  3. Обучение в замкнутом цикле предотвращает накопление ошибок: В отличие от клонирования поведения, GAIL обучает политику на собственном распределении состояний.

  4. Качество экспертных данных первостепенно: GAIL может быть хорош лишь настолько, насколько хороши его экспертные траектории.

  5. Специфические для трейдинга адаптации важны: Транзакционные издержки, ограничения риска и нестационарность должны быть явно учтены.

  6. Клонирование поведения полезно как базовая линия и инициализация: На практике гибридный подход (предобучение BC + тонкая настройка GAIL) часто работает лучше всего.

  7. Состязательное обучение требует тщательной настройки: Как и GAN, GAIL может страдать от коллапса мод, нестабильности обучения и чувствительности к гиперпараметрам.

Литература

  • Ho, J. & Ermon, S. (2016). “Generative Adversarial Imitation Learning.” NeurIPS.
  • Syed, U., Bowling, M., & Schapire, R.E. (2008). “Apprenticeship learning using linear programming.” ICML.
  • Goodfellow, I. et al. (2014). “Generative Adversarial Nets.” NeurIPS.
  • Fu, J., Luo, K., & Levine, S. (2018). “Learning Robust Rewards with Adversarial Inverse Reinforcement Learning.” ICLR.
  • Ziebart, B. et al. (2008). “Maximum Entropy Inverse Reinforcement Learning.” AAAI.