Глава 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) расширяют дистилляцию, обучая ученика сопоставлять не только конечные выходы, но и промежуточные представления учителя. Обучение проходит в два этапа:
- Обучение на основе подсказок: обучение нижних слоёв ученика предсказывать выход подсказывающего слоя учителя с помощью сети-регрессора
- Дистилляция знаний: тонкая настройка полного ученика с использованием стандартной потери 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 Развёртывание в реальном времени
Основная мотивация обучения учитель-ученик в торговле — эффективность развёртывания:
| Модель | Параметры | Время инференса | Точность |
|---|---|---|---|
| Трансформер-учитель | 50M | 15мс | 62.1% |
| CNN-учитель | 20M | 8мс | 60.8% |
| MLP-ученик (дистиллированный) | 500K | 0.1мс | 61.2% |
| MLP-ученик (с нуля) | 500K | 0.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 Непрерывное обучение с онлайн-дистилляцией
Рынки эволюционируют, и модели должны адаптироваться. Онлайн-дистилляция позволяет ученику непрерывно обучаться от обновлённых учителей:
- Учителя периодически переобучаются на свежих данных
- Ученик обновляется с использованием свежих предсказаний учителей на скользящем окне
- Экспоненциальное скользящее среднее (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 Дистилляция без данных
В некоторых торговых сценариях оригинальные обучающие данные могут быть недоступны (например, проприетарные наборы данных). Дистилляция без данных генерирует синтетические входы, максимизирующие уверенность учителя:
- Инициализировать случайный вход $x$
- Оптимизировать $x$ для максимизации энтропии выхода учителя
- Обучить ученика на парах $(x^, f^T(x^))$
6. Пошаговое описание реализации
Наша реализация на Rust предоставляет полную торговую систему учитель-ученик. Ключевые компоненты:
6.1 Модель учителя
Структура TeacherModel реализует многослойную нейронную сеть с промежуточным извлечением признаков на назначенных подсказывающих слоях.
6.2 Модель ученика с сопоставлением подсказок
StudentModel оборачивает меньшую сеть и включает слои-регрессоры, проецирующие признаки ученика в размерность признаков учителя.
6.3 Агрегация множества учителей
MultiTeacherAggregator объединяет предсказания нескольких специализированных учителей с настраиваемыми весами.
6.4 Цикл обучения
Комбинированная потеря обучения вычисляется как взвешенная сумма потери задачи, потери сопоставления признаков и потери передачи внимания.
7. Интеграция данных Bybit
Реализация включает клиент API Bybit для получения реальных данных свечей OHLCV.
Конвейер данных:
- Получение: загрузка данных OHLCV из рыночного API Bybit v5
- Нормализация: применение z-score нормализации к каждому признаку
- Окна: создание скользящих окон исторических признаков в качестве входов
- Разметка: генерация целевых меток (например, направление возврата следующей свечи)
8. Ключевые выводы
-
За пределами стандартной дистилляции: обучение учитель-ученик охватывает сопоставление признаков, передачу внимания и обучение на основе подсказок, которые передают не только предсказания, но и внутренние паттерны рассуждения.
-
Кросс-архитектурная гибкость: знания могут передаваться между принципиально разными архитектурами (CNN к MLP, трансформер к RNN), обеспечивая оптимальный выбор архитектуры для обучения и развёртывания.
-
Мульти-учительская специализация: обучение учителей для конкретных режимов (бычий, медвежий, боковой) и их объединение через взвешенную агрегацию производит более робастные торговые сигналы.
-
Эффективность развёртывания: дистиллированные ученики достигают точности, близкой к учителю, при 100-150-кратно меньшей задержке инференса.
-
Непрерывная адаптация: онлайн-дистилляция позволяет ученику адаптироваться к эволюционирующим рыночным условиям.
-
Комбинированные функции потерь: оптимальная целевая функция обучения балансирует потерю задачи, потерю KD, потерю сопоставления признаков и потерю передачи внимания.
-
Практические соображения: выбор подсказывающих слоёв, сопоставление размерностей через регрессоры и стратегии соответствия слоёв значительно влияют на качество дистилляции.
-
Реализация на 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