Глава 308: GAIL Trading - Генеративное состязательное имитационное обучение для трейдинга
1. Введение
Генеративное состязательное имитационное обучение (Generative Adversarial Imitation Learning, GAIL) представляет собой один из наиболее мощных подходов к обучению торговых стратегий на основе экспертных демонстраций. В отличие от традиционных методов обучения с учителем, таких как клонирование поведения (behavior cloning), GAIL сочетает идеи генеративно-состязательных сетей (GAN) и обратного обучения с подкреплением (IRL), чтобы восстановить политики, которые соответствуют мере заполнения (occupancy measure) экспертных трейдеров, а не просто имитируют их отдельные действия.
В трейдинге GAIL особенно ценен, поскольку прибыльные торговые стратегии часто трудно сформулировать в виде явных правил. Опытные трейдеры развивают интуицию за годы практики, и их процессы принятия решений включают тонкое распознавание паттернов, которое сопротивляется формализации. GAIL обходит эту проблему артикуляции: имея набор данных экспертных торговых логов (траектории состояний и действий), он обучает политику, которая ведёт себя статистически неотличимо от эксперта, по оценке обученной сети-дискриминатора.
Фреймворк GAIL был предложен Ho и Ermon (2016) и может быть описан следующим образом: сеть-дискриминатор учится различать пары состояние-действие, сгенерированные экспертом, и сгенерированные текущей политикой. Одновременно сеть политики обучается с помощью обучения с подкреплением, используя выход дискриминатора в качестве сигнала вознаграждения. Политика улучшается, «обманывая» дискриминатор, заставляя его поверить, что её траектории сгенерированы экспертом. Это состязательное взаимодействие направляет политику к совпадению с мерой заполнения эксперта.
Почему GAIL для трейдинга?
- Извлечение стратегий из торговых логов: Имея исторические логи успешного трейдера (временные метки, позиции, объёмы ордеров), GAIL может обучить базовую стратегию без необходимости объяснения трейдером своих рассуждений.
- Устойчивость к накоплению ошибок: Клонирование поведения страдает от сдвига распределения, поскольку ошибки накапливаются со временем. GAIL, обучаясь в замкнутом цикле через RL, изначально более устойчив.
- Неявное восстановление вознаграждения: GAIL неявно обучает функцию вознаграждения (дискриминатор), которая отражает, что делает поведение эксперта «хорошим», позволяя обобщать на невиданные рыночные условия.
- Работа с мультимодальными стратегиями: Экспертные трейдеры могут использовать разные стратегии в разных рыночных режимах. Состязательный фреймворк 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: лучшее из двух миров
| Свойство | Клонирование поведения | IRL | GAIL |
|---|---|---|---|
| Накопление ошибок | Высокое | Низкое | Низкое |
| Вычислительная стоимость | Низкая | Очень высокая | Средняя |
| Обученная функция вознаграждения | Нет | Явная | Неявная (дискриминатор) |
| Многошаговое рассуждение | Нет | Да | Да |
| Сопоставление распределений | По действиям | По траекториям | По мере заполнения |
| Мультимодальное поведение | Плохо | Хорошо | Хорошо |
4. Приложения: имитация стратегий успешных трейдеров из логов
4.1 Построение экспертных траекторий
В контексте трейдинга экспертные траектории строятся из исторических торговых логов успешных трейдеров или из прибыльных периодов в исторических данных.
Представление состояния $s_t$: Вектор, кодирующий текущие рыночные условия:
- Ценовые признаки: доходность, волатильность, скользящие средние, RSI
- Объёмные признаки: коэффициент объёма, отклонение от VWAP
- Признаки позиции: текущая позиция, нереализованная PnL, время в позиции
- Признаки стакана: спред, дисбаланс глубины
Пространство действий $a_t$: Дискретизированные торговые действия:
- Активная покупка, покупка, удержание, продажа, активная продажа
Идентификация эксперта: Траектории из периодов, где стратегия достигала:
- Коэффициент Шарпа > 2.0
- Максимальная просадка < 5%
- Положительная доходность как на растущих, так и на падающих рынках
4.2 Практический конвейер
- Сбор данных: Получение исторических OHLCV данных из Bybit API для ликвидных пар (например, BTCUSDT).
- Инженерия признаков: Вычисление технических индикаторов и нормализация признаков.
- Экспертная разметка: Идентификация периодов с высокой доходностью с использованием скользящего окна.
- Обучение GAIL: Попеременное обучение дискриминатора и политики.
- Оценка: Сравнение с базовой линией клонирования поведения на удержанных рыночных периодах.
4.3 Специфические для трейдинга задачи
- Транзакционные издержки: Включение спреда и комиссии в переходы среды.
- Нестационарность: Периодическое переобучение или использование рандомизации домена.
- Ограничения риска: Добавление штрафного члена за чрезмерную просадку.
- Дефицит данных: Использование аугментации данных для расширения экспертного набора.
5. Реализация на Rust
Реализация на Rust предоставляет полную систему GAIL для трейдинга со следующими компонентами:
ExpertDataset: Хранение экспертных траекторий как пар состояние-действие. Поддержка построения из исторических ценовых данных.Discriminator: Двухслойная нейронная сеть для классификации пар состояние-действие.PolicyNetwork: Стохастическая сеть политики с выходом в виде вероятностей действий.GAILTrainer: Оркестрация попеременного обучения дискриминатора и политики.TradingEnvironment: Симулятор рынка для воспроизведения исторических ценовых данных.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 свечей за запросКонвейер данных:
- Получение сырых OHLCV данных из Bybit
- Вычисление доходностей, волатильности и технических индикаторов
- Нормализация признаков с помощью z-оценки
- Идентификация экспертных периодов (верхний квартиль по коэффициенту Шарпа)
- Извлечение траекторий состояние-действие из экспертных периодов
- Подача в цикл обучения GAIL
7. Ключевые выводы
-
GAIL сопоставляет меры заполнения, а не просто действия: Это обеспечивает более сильные гарантии, чем клонирование поведения, и более вычислительно эффективно, чем полный IRL.
-
Дискриминатор — это обученная функция вознаграждения: Дискриминатор GAIL неявно отражает, что делает экспертное торговое поведение «хорошим».
-
Обучение в замкнутом цикле предотвращает накопление ошибок: В отличие от клонирования поведения, GAIL обучает политику на собственном распределении состояний.
-
Качество экспертных данных первостепенно: GAIL может быть хорош лишь настолько, насколько хороши его экспертные траектории.
-
Специфические для трейдинга адаптации важны: Транзакционные издержки, ограничения риска и нестационарность должны быть явно учтены.
-
Клонирование поведения полезно как базовая линия и инициализация: На практике гибридный подход (предобучение BC + тонкая настройка GAIL) часто работает лучше всего.
-
Состязательное обучение требует тщательной настройки: Как и 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.