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

Глава 307: Поведенческое клонирование для трейдинга

Введение: Обучение с учителем через имитацию экспертных трейдеров

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

В контексте алгоритмического трейдинга “эксперт” может быть человеком-трейдером с устойчивой историей прибыли, прибыльной количественной стратегией или даже симуляцией идеализированного агента. “Состояния” — это рыночные наблюдения (цены, объёмы, снимки книги заявок, технические индикаторы), а “действия” — торговые решения (покупка, продажа, удержание или непрерывные размеры позиций).

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

В этой главе рассматриваются математические основы поведенческого клонирования, его ограничения, практические решения вроде DAgger (агрегация датасетов) и полная реализация на Rust для клонирования торговых стратегий с использованием рыночных данных Bybit.

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

Оценка максимального правдоподобия на парах состояние-действие

Пусть экспертная политика обозначена как $\pi^*(a|s)$, отображающая состояния $s \in \mathcal{S}$ в распределение по действиям $a \in \mathcal{A}$. Имея датасет из $N$ экспертных демонстраций:

$$\mathcal{D} = {(s_1, a_1), (s_2, a_2), \ldots, (s_N, a_N)}$$

где каждая пара $(s_i, a_i)$ взята из распределения траекторий эксперта $d^{\pi^*}$, поведенческое клонирование обучает параметризованную политику $\pi_\theta(a|s)$ максимизацией логарифма правдоподобия:

$$\theta^* = \arg\max_\theta \sum_{i=1}^{N} \log \pi_\theta(a_i | s_i)$$

Для дискретных действий (покупка, продажа, удержание) это сводится к минимизации кросс-энтропийных потерь:

$$\mathcal{L}(\theta) = -\frac{1}{N} \sum_{i=1}^{N} \sum_{k=1}^{K} \mathbf{1}[a_i = k] \log \pi_\theta(k | s_i)$$

где $K$ — количество дискретных действий. Для непрерывных действий (размер позиции) обычно используется среднеквадратичная ошибка или моделирование выхода как гауссиана с минимизацией отрицательного логарифма правдоподобия.

Сдвиг ковариат и накопление ошибок

Фундаментальная проблема поведенческого клонирования — несоответствие между распределениями при обучении и развёртывании. Во время обучения политика видит состояния из $d^{\pi^*}$ (распределение состояний эксперта). При исполнении политика посещает состояния из $d^{\pi_\theta}$ (собственное индуцированное распределение).

Пусть $\epsilon$ — ошибка классификации на каждом шаге обученной политики. При распределении эксперта ожидаемая суммарная стоимость за горизонт $T$ составляет $O(\epsilon T)$. Однако из-за сдвига ковариат ошибки накапливаются: небольшая ошибка в момент $t$ сдвигает распределение состояний в момент $t+1$, приводя к всё более незнакомым состояниям. Фактическая ожидаемая стоимость масштабируется как:

$$J(\pi_\theta) - J(\pi^*) = O(\epsilon T^2)$$

Эта квадратичная зависимость от горизонта $T$ — центральное ограничение наивного поведенческого клонирования.

DAgger: Агрегация датасетов

DAgger (Dataset Aggregation) от Ross, Gordon и Bagnell (2011) решает проблему сдвига ковариат через итеративный процесс:

  1. Инициализация: Обучить $\pi_1$ на экспертном датасете $\mathcal{D}_1$
  2. Для итерации $i = 1, 2, \ldots, N$:
    • Исполнить $\pi_i$ для сбора траекторий, посещая состояния $s \sim d^{\pi_i}$
    • Запросить у эксперта действия $a^* = \pi^*(s)$ в этих состояниях
    • Агрегировать: $\mathcal{D}_{i+1} = \mathcal{D}_i \cup {(s, a^*)}$
    • Обучить $\pi_{i+1}$ на $\mathcal{D}_{i+1}$

DAgger снижает границу ошибки до:

$$J(\pi_\theta) - J(\pi^*) = O(\epsilon T)$$

Линейная зависимость — значительное улучшение, достигнутое обучением на собственном распределении состояний обучаемого, а не только на распределении эксперта.

Смешанная политика

На практике при сборе данных используется стратегия смешивания. На итерации $i$ политика сбора данных:

$$\hat{\pi}_i = \beta_i \pi^* + (1 - \beta_i) \pi_i$$

где $\beta_i$ — параметр отжига, начинающийся с 1.0 (чистый эксперт) и убывающий к 0 (чистая обученная политика). Это обеспечивает плавный переход и гарантирует, что ранние итерации не отклоняются слишком далеко от осмысленных траекторий.

Ограничения и способы их преодоления

Ограничение 1: Несоответствие распределений (сдвиг ковариат)

Проблема: Обученная политика встречает состояния за пределами обучающего распределения, что приводит к непредсказуемому поведению.

Решения:

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

Ограничение 2: Мультимодальное поведение эксперта

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

Решения:

  • Смесь плотностей (Mixture Density Networks): Моделирование выхода как смеси гауссиан.
  • Категориальные политики с температурой: Использование softmax с масштабированием температуры.
  • Условный VAE: Обучение скрытой переменной, захватывающей моду поведения.

Ограничение 3: Ограниченные экспертные данные

Проблема: Качественные экспертные демонстрации скудны и дорогостоящи.

Решения:

  • Аугментация данных: Применение трансформаций к существующим траекториям — масштабирование по времени, добавление шума, перестановка признаков.
  • Генерация синтетического эксперта: Использование стратегий на основе правил (следование за трендом, возврат к среднему) как прокси-экспертов.
  • Трансферное обучение: Предобучение на связанных рынках или инструментах, затем дообучение на скудных экспертных данных.

Ограничение 4: Немарковское поведение эксперта

Проблема: Решения эксперта могут зависеть от истории, выходящей за пределы текущего состояния.

Решения:

  • Рекуррентные политики: Использование LSTM или GRU для захвата временных зависимостей.
  • Стекированные наблюдения: Включение окна последних наблюдений как состояния.
  • Механизмы внимания: Позволение политике обращать внимание на релевантные прошлые наблюдения.

Применения в трейдинге

Клонирование прибыльных HFT-стратегий

Высокочастотные торговые стратегии сложно реверс-инжинирить по их коду (который является проприетарным), но их наблюдаемое поведение — поток заявок, паттерны исполнения и тайминг — можно записать. Поведенческое клонирование позволяет:

  1. Записать данные уровня заявок от прибыльной HFT-системы за тысячи торговых сессий.
  2. Извлечь признаки: дисбаланс книги заявок, спред, позиция в очереди, недавний поток сделок, микроструктура волатильности.
  3. Разметить действия: фактические заявки HFT-системы (лимитная покупка, лимитная продажа, отмена, рыночная покупка, рыночная продажа, удержание).
  4. Обучить нейросеть воспроизводить эти решения по тем же признакам микроструктуры.

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

Имитация сигналов покупки/продажи аналитиков

Финансовые аналитики выдают рекомендации покупки, продажи и удержания на основе фундаментального и технического анализа. Поведенческое клонирование может захватить этот процесс принятия решений:

  1. Собрать исторические рекомендации аналитиков в паре с рыночными данными на момент рекомендации.
  2. Инженерия признаков: P/E, рост выручки, ценовой моментум, динамика сектора, показатели настроений рынка.
  3. Обучить BC-политику предсказывать рекомендацию аналитика по этим признакам.
  4. Развернуть: Использовать клонированную политику для автоматической генерации сигналов, фильтрации или как один вход в ансамбле.

Репликация портфеля

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

  1. Наблюдать за весами портфеля менеджера во времени.
  2. Связать с макро-признаками (процентные ставки, инфляция, рост ВВП, кредитные спреды).
  3. Обучить регрессионную BC-модель предсказывать целевые веса портфеля.
  4. Использовать клонированную политику для автоматической ребалансировки, имитирующей стиль менеджера.

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

Наша реализация на Rust предоставляет полный пайплайн поведенческого клонирования:

Основные компоненты

  1. ExpertDataset: Конструирует размеченные пары состояние-действие из ценовых данных с использованием настраиваемых экспертных стратегий (следование за трендом, возврат к среднему).

  2. BCPolicy: Нейросеть прямого распространения с настраиваемыми скрытыми слоями, активациями ReLU и выходом softmax. Обучается минимизацией кросс-энтропии с помощью стохастического градиентного спуска.

  3. DAggerTrainer: Реализует цикл DAgger с настраиваемым убыванием параметра смешивания, поддерживая итеративную агрегацию датасетов для борьбы со сдвигом ковариат.

  4. CovariateShiftAnalyzer: Количественно оценивает несоответствие распределений между экспертными и политическими распределениями состояний, используя оценку KL-дивергенции и статистики среднего/дисперсии.

  5. BybitClient: Получает исторические данные kline (OHLCV) из API Bybit для бэктестинга и развёртывания в реальном времени.

Архитектура

Архитектура политической сети:

Вход (state_dim) -> Линейный -> ReLU -> Линейный -> ReLU -> Линейный -> Softmax (3 действия)

Состояния конструируются из скользящего окна нормализованных ценовых доходностей, коэффициентов объёма и простых технических индикаторов (пересечения скользящих средних, моментум типа RSI).

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

Реализация получает реальные рыночные данные из публичного API Bybit:

let client = BybitClient::new();
let klines = client.fetch_klines("BTCUSDT", "15", 200).await?;

Это возвращает свечи OHLCV, которые обрабатываются в:

  • Нормализованные доходности: $(close_t - close_{t-1}) / close_{t-1}$
  • Коэффициенты объёма: $volume_t / \text{MA}(volume, 20)$
  • Признаки моментума: Различия между краткосрочной и долгосрочной скользящими средними

Экспертная стратегия размечает каждое состояние действием на основе настраиваемых правил (например, следование за трендом: покупка когда короткая MA > длинной MA, продажа когда короткая MA < длинной MA, удержание в остальных случаях).

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

  1. Поведенческое клонирование — простейшая форма имитационного обучения: оно сводит обучение политики к обучению с учителем на парах состояние-действие эксперта, делая его доступным и быстрым для обучения.

  2. Сдвиг ковариат — основная проблема: наивное BC страдает от квадратичного накопления ошибок ($O(\epsilon T^2)$), что делает его ненадёжным для длинных торговых горизонтов без смягчающих мер.

  3. DAgger предоставляет принципиальное решение: итеративно агрегируя данные из собственного распределения состояний обученной политики, DAgger снижает ошибку до $O(\epsilon T)$ и значительно повышает робастность.

  4. Качество эксперта определяет потолок: BC никогда не может превзойти производительность эксперта. Качество, согласованность и покрытие экспертных демонстраций — важнейшие факторы.

  5. Аугментация данных и синтетические эксперты помогают: при нехватке реальных экспертных данных синтетические эксперты (стратегии на основе правил) и техники аугментации данных могут запустить процесс обучения.

  6. BC — отличная инициализация для RL: даже если BC само по себе недостаточно, оно обеспечивает сильную инициализацию для алгоритмов обучения с подкреплением, кардинально сокращая время исследования.

  7. Мультимодальное поведение требует особого подхода: стандартное BC усредняет по модам; модели смесей или подходы со скрытыми переменными необходимы, когда эксперт демонстрирует разнообразные стратегии.

  8. Реализация на Rust обеспечивает развёртывание с низкой задержкой: компилируемая природа Rust с абстракциями нулевой стоимости делает BC-политики пригодными для систем торговли в реальном времени, где важны микросекунды.