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

Глава 207: Торговля на основе модели учитель-ученик

1. Введение

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

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

В этой главе представлено всестороннее рассмотрение обучения учитель-ученик для торговли. Мы рассматриваем математические основы максимизации взаимной информации, функции потерь сопоставления признаков и передачи внимания. Затем исследуем кросс-архитектурную передачу, где знания переносятся от сложного трансформер-учителя к компактному RNN или MLP ученику. Наконец, мы реализуем полную систему мульти-учительской дистилляции на Rust с интеграцией рыночных данных Bybit.

Почему учитель-ученик для торговли?

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

  • Обучай сложное: используй массивные модели с неограниченными вычислениями при обучении
  • Развёртывай простое: дистиллируй знания в лёгкого ученика для инференса на уровне микросекунд
  • Специализируй и комбинируй: обучай учителей для конкретных режимов и объединяй их экспертизу

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

2.1 Максимизация взаимной информации

Основной принцип, лежащий в основе обучения учитель-ученик — максимизация взаимной информации между представлениями учителя и ученика. Для представления учителя $z^T$ и представления ученика $z^S$ при входе $x$ мы стремимся максимизировать:

$$I(z^T; z^S) = H(z^T) - H(z^T | z^S)$$

На практике прямая максимизация взаимной информации неразрешима. Вместо этого используются прокси-функции, способствующие согласованию представлений.

2.2 Функция потерь сопоставления признаков

Простейшая форма передачи промежуточных знаний — сопоставление признаков, при котором минимизируется среднеквадратичная ошибка между картами признаков учителя и ученика на соответствующих слоях:

$$\mathcal{L}{\text{feat}} = \sum{l \in \mathcal{H}} | r_l(F_l^S(x)) - F_l^T(x) |_2^2$$

Здесь $F_l^T(x)$ и $F_l^S(x)$ — представления признаков на слое $l$ учителя и ученика соответственно, $\mathcal{H}$ — множество «подсказывающих» слоёв, а $r_l$ — обучаемый регрессор, отображающий размерность признаков ученика в размерность учителя при их различии.

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

  • Ранние слои: необработанные ценовые паттерны и признаки микроструктуры
  • Средние слои: представления краткосрочного тренда и импульса
  • Поздние слои: абстракции уровня режима и оценки рисков

2.3 Передача внимания

Передача внимания, представленная Загоруйко и Комодакисом (2017), передаёт знания через карты внимания, а не через необработанные значения признаков. Карта внимания на слое $l$ определяется как:

$$A_l = \sum_{c=1}^{C} |F_{l,c}|^2$$

где $F_{l,c}$ — $c$-й канал карты признаков. Потеря передачи внимания:

$$\mathcal{L}{\text{att}} = \sum{l \in \mathcal{H}} \left| \frac{A_l^S}{|A_l^S|_2} - \frac{A_l^T}{|A_l^T|_2} \right|_2^2$$

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

2.4 FitNets: промежуточные подсказывающие слои

FitNets (Ромеро и др., 2015) расширяют дистилляцию, обучая ученика сопоставлять не только конечные выходы, но и промежуточные представления учителя. Обучение проходит в два этапа:

  1. Обучение на основе подсказок: обучение нижних слоёв ученика предсказывать выход подсказывающего слоя учителя с помощью сети-регрессора
  2. Дистилляция знаний: тонкая настройка полного ученика с использованием стандартной потери KD с мягкими целями

Потеря на основе подсказок для одной пары подсказывающих слоёв (слой учителя $t$, слой ученика $s$):

$$\mathcal{L}_{\text{hint}} = | r(F_s^S(x)) - F_t^T(x) |_2^2$$

где $r$ — свёрточный или линейный регрессор, сопоставляющий размерности.

2.5 Комбинированная целевая функция обучения

Полная целевая функция обучения учитель-ученик объединяет несколько компонентов потерь:

$$\mathcal{L} = \alpha \mathcal{L}{\text{task}} + \beta \mathcal{L}{\text{KD}} + \gamma \mathcal{L}{\text{feat}} + \delta \mathcal{L}{\text{att}}$$

где:

  • $\mathcal{L}_{\text{task}}$ — стандартная потеря задачи (например, MSE для предсказания цены, кросс-энтропия для классификации направления)
  • $\mathcal{L}_{\text{KD}}$ — дивергенция Кульбака-Лейблера между мягкими выходами учителя и ученика
  • $\mathcal{L}_{\text{feat}}$ — потеря сопоставления признаков по подсказывающим слоям
  • $\mathcal{L}_{\text{att}}$ — потеря передачи внимания

Гиперпараметры $\alpha, \beta, \gamma, \delta$ управляют относительной важностью каждого компонента. В торговле мы обычно устанавливаем $\alpha$ наибольшим, чтобы ученик обучился основному торговому сигналу, а $\beta$ и $\gamma$ обеспечивают дополнительное руководство.

3. Проектирование архитектуры

3.1 Кросс-архитектурная передача

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

Учитель CNN к ученику MLP: свёрточный учитель, обученный на изображениях свечей OHLCV, может передать свои способности распознавания паттернов простому ученику MLP, работающему с необработанными числовыми признаками. Ученик обучается обнаруживать те же паттерны (голова-плечи, двойные вершины) без вычислительных затрат на свёртку.

Учитель трансформер к ученику RNN: учитель-трансформер с мульти-головным самовниманием захватывает дальнодействующие зависимости в ценовых рядах. Через передачу внимания и сопоставление признаков ученик LSTM или GRU может научиться аппроксимировать эти дальнодействующие зависимости с долей параметров и времени инференса.

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

3.2 Сопоставление размерностей

Когда учитель и ученик имеют разные размерности признаков на соответствующих слоях, мы используем сети-регрессоры для преодоления разрыва:

Подсказывающий слой учителя: 512 измерений
|
Подсказывающий слой ученика: 64 измерения
|
Регрессор (Линейный 64 -> 512): проецирует признаки ученика в пространство учителя
|
Потеря сопоставления признаков: MSE(regressor(student_features), teacher_features)

3.3 Соответствие слоёв

Установление того, какой слой ученика должен соответствовать какому слою учителя, требует тщательного проектирования:

  • Пропорциональное отображение: сопоставление слоёв на пропорциональных глубинах
  • Функциональное отображение: сопоставление слоёв по их функциональной роли
  • Обучаемое отображение: использование небольшой мета-сети для определения оптимального соответствия слоёв

4. Торговые приложения

4.1 Развёртывание в реальном времени

Основная мотивация обучения учитель-ученик в торговле — эффективность развёртывания:

МодельПараметрыВремя инференсаТочность
Трансформер-учитель50M15мс62.1%
CNN-учитель20M8мс60.8%
MLP-ученик (дистиллированный)500K0.1мс61.2%
MLP-ученик (с нуля)500K0.1мс57.3%

Дистиллированный ученик достигает точности, близкой к учителю, при 150-кратно меньшей задержке, что делает его пригодным для высокочастотной торговли.

4.2 Ансамбли множества учителей

Различные рыночные условия требуют различной экспертизы. Мы обучаем специализированных учителей для различных режимов:

  • Учитель бычьего рынка: обучен преимущественно на данных восходящего тренда, специализируется на сигналах импульса и обнаружении пробоев
  • Учитель медвежьего рынка: обучен на данных нисходящего тренда, превосходен в выявлении сигналов капитуляции и возможностей возврата к среднему
  • Учитель бокового рынка: обучен на данных флэта, специализируется на поддержке/сопротивлении и осцилляторных сигналах

Агрегация множества учителей объединяет их выходы с помощью механизма шлюзования:

$$y_{\text{ensemble}} = \sum_{k=1}^{K} w_k(x) \cdot y_k^T(x)$$

где $w_k(x)$ — зависящие от входа веса из классификатора режимов, а $y_k^T(x)$ — предсказание $k$-го учителя.

4.3 Учителя для конкретных режимов

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

  • Силы тренда: с использованием ADX (индекс среднего направленного движения) или наклона линейной регрессии
  • Режима волатильности: с использованием перцентилей реализованной волатильности
  • Микроструктуры рынка: с использованием спреда bid-ask и дисбаланса потока ордеров

4.4 Непрерывное обучение с онлайн-дистилляцией

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

  1. Учителя периодически переобучаются на свежих данных
  2. Ученик обновляется с использованием свежих предсказаний учителей на скользящем окне
  3. Экспоненциальное скользящее среднее (EMA) весов ученика обеспечивает стабильность

5. Продвинутые техники

5.1 Мульти-учительская дистилляция

При наличии нескольких учителей существует несколько стратегий объединения их знаний:

Усреднение логитов: простое усреднение мягких предсказаний всех учителей. Это робастно, но игнорирует специализацию учителей.

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

Слияние на уровне признаков: сопоставление признаков ученика с конкатенацией или взвешенной комбинацией признаков учителей на каждом подсказывающем слое.

Последовательная дистилляция: обучение ученика от одного учителя за раз, постепенно накапливая знания.

5.2 Учителя для конкретных задач

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

  • Учитель направления: предсказывает, пойдёт ли цена вверх или вниз
  • Учитель волатильности: предсказывает будущую реализованную волатильность
  • Учитель тайминга: предсказывает оптимальные точки входа/выхода
  • Учитель рисков: предсказывает вероятность просадки и хвостовой риск

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

5.3 Самодистилляция

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

$$\mathcal{L}{\text{self}} = \text{KL}(\sigma(z_t / T) | \sigma(z{t-1} / T))$$

где $z_t$ и $z_{t-1}$ — логиты на текущей и предыдущей эпохе.

5.4 Дистилляция без данных

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

  1. Инициализировать случайный вход $x$
  2. Оптимизировать $x$ для максимизации энтропии выхода учителя
  3. Обучить ученика на парах $(x^, f^T(x^))$

6. Пошаговое описание реализации

Наша реализация на Rust предоставляет полную торговую систему учитель-ученик. Ключевые компоненты:

6.1 Модель учителя

Структура TeacherModel реализует многослойную нейронную сеть с промежуточным извлечением признаков на назначенных подсказывающих слоях.

6.2 Модель ученика с сопоставлением подсказок

StudentModel оборачивает меньшую сеть и включает слои-регрессоры, проецирующие признаки ученика в размерность признаков учителя.

6.3 Агрегация множества учителей

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

6.4 Цикл обучения

Комбинированная потеря обучения вычисляется как взвешенная сумма потери задачи, потери сопоставления признаков и потери передачи внимания.

7. Интеграция данных Bybit

Реализация включает клиент API Bybit для получения реальных данных свечей OHLCV.

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

  1. Получение: загрузка данных OHLCV из рыночного API Bybit v5
  2. Нормализация: применение z-score нормализации к каждому признаку
  3. Окна: создание скользящих окон исторических признаков в качестве входов
  4. Разметка: генерация целевых меток (например, направление возврата следующей свечи)

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

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

  2. Кросс-архитектурная гибкость: знания могут передаваться между принципиально разными архитектурами (CNN к MLP, трансформер к RNN), обеспечивая оптимальный выбор архитектуры для обучения и развёртывания.

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

  4. Эффективность развёртывания: дистиллированные ученики достигают точности, близкой к учителю, при 100-150-кратно меньшей задержке инференса.

  5. Непрерывная адаптация: онлайн-дистилляция позволяет ученику адаптироваться к эволюционирующим рыночным условиям.

  6. Комбинированные функции потерь: оптимальная целевая функция обучения балансирует потерю задачи, потерю KD, потерю сопоставления признаков и потерю передачи внимания.

  7. Практические соображения: выбор подсказывающих слоёв, сопоставление размерностей через регрессоры и стратегии соответствия слоёв значительно влияют на качество дистилляции.

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


Литература

  • Hinton, G., Vinyals, O., & Dean, J. (2015). Distilling the Knowledge in a Neural Network. arXiv:1503.02531
  • Romero, A., Ballas, N., Kahou, S. E., Chassang, A., Gatta, C., & Bengio, Y. (2015). FitNets: Hints for Thin Deep Nets. ICLR 2015
  • Zagoruyko, S., & Komodakis, N. (2017). Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer. ICLR 2017
  • Fukuda, T., Suzuki, M., Kurata, G., Thomas, S., Cui, J., & Ramabhadran, B. (2017). Efficient Knowledge Distillation from an Ensemble of Teachers. Interspeech 2017