Глава 220: EXAMM Trading — Эволюционное исследование расширяющихся моделей памяти для финансовых рынков
1. Введение
Поиск оптимальных архитектур нейронных сетей давно является центральной задачей машинного обучения. В области прогнозирования финансовых временных рядов эта задача усложняется нестационарной, зашумлённой и состязательной природой рыночных данных. Вручную спроектированные рекуррентные нейронные сети (RNN), такие как Long Short-Term Memory (LSTM) и Gated Recurrent Units (GRU), стали стандартными инструментами, но они представляют лишь крохотную часть обширного пространства возможных рекуррентных ячеек. Что если бы мы могли систематически исследовать это пространство и находить архитектуры, специально приспособленные для финансовых данных?
EXAMM — Evolutionary eXploration of Augmenting Memory Models (Эволюционное исследование расширяющихся моделей памяти) — это алгоритм нейроэволюции, который эволюционирует как топологию, так и веса рекуррентных нейронных сетей. В отличие от традиционных методов поиска нейронной архитектуры (NAS), которые выбирают из предопределённого набора строительных блоков, EXAMM может конструировать совершенно новые рекуррентные структуры памяти, эволюционируя внутреннюю проводку рекуррентных блоков. Это делает его уникально мощным для торговых приложений, где идеальная динамика памяти может существенно отличаться от той, что реализована в стандартных ячейках LSTM или GRU.
EXAMM был первоначально разработан Трэвисом Деселлом и коллегами в Рочестерском технологическом институте для задач прогнозирования временных рядов в авиации и энергетике. В этой главе мы адаптируем и применяем фреймворк EXAMM к финансовым рынкам, эволюционируя пользовательские рекуррентные архитектуры, оптимизированные для прогнозирования цен и генерации торговых сигналов с использованием данных криптовалютной биржи Bybit.
Ключевая идея EXAMM состоит в том, что правильную структуру памяти для данной задачи прогнозирования не следует предполагать заранее. Вместо этого нужно позволить эволюции найти её. Для финансовых данных — где смены режимов, изменяющаяся волатильность и сложные многомасштабные временные зависимости являются нормой — этот подход предлагает принципиальный путь выхода за рамки универсальных архитектур.
2. Математические основы
2.1 Нейроэволюция рекуррентных архитектур
Нейроэволюция — это применение эволюционных алгоритмов к проектированию и оптимизации нейронных сетей. В контексте рекуррентных сетей это включает эволюцию как топологии (какие нейроны связаны с какими, и через какие типы вентилей или операций), так и параметров (весов и смещений) сети.
Рекуррентная нейронная сеть обрабатывает последовательность входов ${x_1, x_2, \ldots, x_T}$ и поддерживает скрытое состояние $h_t$, которое эволюционирует во времени:
$$h_t = f(h_{t-1}, x_t; \theta)$$
где $f$ — функция перехода, параметризованная $\theta$. В стандартных архитектурах $f$ фиксирована (например, уравнения LSTM). В EXAMM сама $f$ является предметом эволюции.
2.2 Расширяющиеся топологии
EXAMM основывается на парадигме NEAT (NeuroEvolution of Augmenting Topologies), расширяя её на рекуррентные сети. Ключевая идея — начинать с минимальных сетевых топологий и постепенно увеличивать сложность через мутации, добавляющие узлы и связи. Этот принцип комплексификации гарантирует, что сети не сложнее, чем необходимо для решения задачи.
Каждый геном в EXAMM кодирует ориентированный граф, где:
- Входные узлы получают внешние признаки (цена, объём, технические индикаторы)
- Скрытые узлы выполняют вычисления с использованием определённого типа рекуррентной ячейки
- Выходные узлы выдают прогнозы (следующая цена, торговый сигнал)
- Рёбра несут взвешенные связи, потенциально с рекуррентными (временными) задержками
Ребро от узла $i$ к узлу $j$ с временной задержкой $d$ означает, что выход узла $i$ в момент $t - d$ поступает на вход узла $j$ в момент $t$. Когда $d = 0$, связь прямая; когда $d \geq 1$, она рекуррентная.
2.3 Эволюция ячеек памяти
Отличительная особенность EXAMM — способность эволюционировать внутреннюю структуру ячеек памяти. Алгоритм работает с несколькими известными типами ячеек и может создавать новые гибриды:
Простая RNN: $$h_t = \tanh(W_h x_t + U_h h_{t-1} + b_h)$$
LSTM (Long Short-Term Memory): $$f_t = \sigma(W_f x_t + U_f h_{t-1} + b_f)$$ $$i_t = \sigma(W_i x_t + U_i h_{t-1} + b_i)$$ $$\tilde{c}t = \tanh(W_c x_t + U_c h{t-1} + b_c)$$ $$c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c}t$$ $$o_t = \sigma(W_o x_t + U_o h{t-1} + b_o)$$ $$h_t = o_t \odot \tanh(c_t)$$
GRU (Gated Recurrent Unit): $$z_t = \sigma(W_z x_t + U_z h_{t-1} + b_z)$$ $$r_t = \sigma(W_r x_t + U_r h_{t-1} + b_r)$$ $$\tilde{h}t = \tanh(W_h x_t + U_h (r_t \odot h{t-1}) + b_h)$$ $$h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t$$
MGU (Minimal Gated Unit): $$f_t = \sigma(W_f x_t + U_f h_{t-1} + b_f)$$ $$\tilde{h}t = \tanh(W_h x_t + U_h (f_t \odot h{t-1}) + b_h)$$ $$h_t = (1 - f_t) \odot h_{t-1} + f_t \odot \tilde{h}_t$$
UGRNN (Update Gate RNN): $$\tilde{h}t = \tanh(W_h x_t + U_h h{t-1} + b_h)$$ $$z_t = \sigma(W_z x_t + U_z h_{t-1} + b_z)$$ $$h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t$$
Delta-RNN: $$d_t = \alpha \odot \tanh(W_d x_t) \odot \tanh(U_d h_{t-1})$$ $$\tilde{h}t = \tanh(W_h x_t + d_t + b_h)$$ $$z_t = \sigma(W_z x_t + U_z h{t-1} + b_z)$$ $$h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t$$
EXAMM может мутировать узел из одного типа ячейки в другой, эффективно исследуя пространство механизмов вентилирования. Он также может конструировать гибридные ячейки, эволюционируя внутреннюю проводку внутри узла, создавая структуры вентилей, не соответствующие ни одной именованной архитектуре.
3. Алгоритм EXAMM
3.1 Островная эволюционная стратегия
EXAMM использует островную модель для управления популяцией. Популяция делится на $K$ островов, каждый из которых поддерживает собственную подпопуляцию геномов. Эта структура способствует разнообразию через географическую изоляцию, допуская при этом периодическую миграцию успешных геномов между островами.
Алгоритм работает следующим образом:
-
Инициализация: Каждый остров засевается минимальными сетями. Разные острова могут инициализироваться разными типами ячеек (например, Остров 1 начинает с ячеек LSTM, Остров 2 — с GRU), поощряя исследование разных областей пространства архитектур.
-
Отбор: Внутри каждого острова родители выбираются турнирным отбором. Турнир размера $s$ случайно выбирает $s$ особей и отбирает лучшую по приспособленности.
-
Размножение: Потомство создаётся через мутацию (чаще) или кроссовер (реже для топологической эволюции). Потомок заменяет худшую особь на острове.
-
Миграция: Каждые $M$ поколений лучший геном с каждого острова копируется на случайный другой остров, заменяя худшую особь там. Это распространяет успешные инновации по всей популяции.
-
Завершение: Эволюция продолжается фиксированное число поколений или до обнаружения плато приспособленности.
3.2 Видообразование
Для предотвращения преждевременной сходимости EXAMM реализует видообразование внутри каждого острова. Геномы группируются в виды на основе топологического сходства. Расстояние совместимости $\delta$ между двумя геномами $a$ и $b$:
$$\delta(a, b) = c_1 \cdot \frac{E}{N} + c_2 \cdot \frac{D}{N} + c_3 \cdot \bar{W}$$
где $E$ — число избыточных генов, $D$ — число несовпадающих генов, $N$ — размер большего генома, $\bar{W}$ — средняя разность весов совпадающих генов, а $c_1, c_2, c_3$ — коэффициенты, контролирующие относительную важность каждого фактора.
Разделение приспособленности внутри видов предотвращает доминирование любого одного вида в популяции, поддерживая разнообразие в исследовании архитектур.
3.3 Операторы мутации
EXAMM использует несколько операторов мутации:
- Добавление узла: Разделяет существующее ребро, вставляя новый скрытый узел со случайно выбранным типом ячейки. Исходное ребро отключается, создаются два новых ребра, связывающих через новый узел.
- Добавление ребра: Создаёт новую связь между двумя ранее несвязанными узлами. Ребро может быть прямым ($d = 0$) или рекуррентным ($d \geq 1$).
- Смена типа ячейки: Заменяет тип ячейки скрытого узла (например, с GRU на LSTM), реинициализируя специфичные для ячейки параметры.
- Модификация весов: Применяет гауссовское возмущение к весам одного или нескольких рёбер: $w’ = w + \mathcal{N}(0, \sigma^2)$.
- Включение/отключение ребра: Переключает активность ребра, позволяя алгоритму исследовать подсети.
3.4 Кроссовер
Кроссовер между двумя геномами выравнивает их по историческим маркерам инноваций (аналогично NEAT). Совпадающие гены наследуются случайно от любого из родителей; несовпадающие и избыточные гены наследуются от более приспособленного родителя. Это гарантирует, что потомство наследует совместимые структурные признаки.
4. Торговые приложения
4.1 Эволюция пользовательских рекуррентных ячеек
Основное преимущество EXAMM для трейдинга — способность эволюционировать структуры рекуррентных ячеек, специально оптимизированные для характеристик финансовых временных рядов:
- Режимно-адаптивная память: Финансовые рынки демонстрируют смены режимов (трендовый vs. возврат к среднему, низкая vs. высокая волатильность). Эволюционировавшие архитектуры могут развить динамику памяти, которая естественно адаптируется к смене режимов — то, для чего стандартные ячейки LSTM не были явно спроектированы.
- Многомасштабные временные зависимости: Ценовые данные содержат паттерны на нескольких временных масштабах (тик, минута, час, день). EXAMM может эволюционировать рекуррентные связи с разными временными задержками, эффективно создавая многомасштабную память без ручного проектирования.
- Устойчивость к шуму: Рыночные данные печально известны своей зашумлённостью. Эволюция естественно отбирает архитектуры, устойчивые к шуму, поскольку хрупкие архитектуры будут иметь плохую приспособленность на данных вне выборки.
4.2 Открытие новых паттернов памяти
Через эволюцию EXAMM может открывать конструкции ячеек памяти с нетрадиционными паттернами вентилирования. Например, ячейка может эволюционировать «вентиль волатильности», который модулирует поток информации на основе дисперсии недавних входов, или «вентиль импульса», который усиливает сигналы в трендовые периоды.
Эти новые архитектуры не ограничены человеческой интуицией о том, как «должна» выглядеть рекуррентная ячейка. Единственный критерий — производительность прогнозирования, что означает, что эволюция может использовать тонкие статистические закономерности в финансовых данных, которые человек-проектировщик мог бы не предусмотреть.
4.3 Обработка признаков
Для трейдинга входные признаки обычно включают:
- Сырые данные OHLCV (Open, High, Low, Close, Volume)
- Логарифмические доходности: $r_t = \log(P_t / P_{t-1})$
- Нормализованный объём: $v_t = V_t / \text{MA}(V, n)$
- Простые технические индикаторы в качестве вспомогательных сигналов
EXAMM эволюционирует способ комбинирования и обработки этих признаков через рекуррентную сеть, обнаруживая, какие временные связи наиболее предсказательны.
5. EXAMM vs стандартные RNN/LSTM
5.1 Когда эволюционировавшие архитектуры превосходят стандартные
Эмпирические результаты в нескольких областях показывают, что архитектуры, эволюционировавшие через EXAMM, превосходят стандартные в нескольких сценариях:
-
Сложные временные зависимости: Когда релевантные временные зависимости плохо улавливаются фиксированным механизмом забывания LSTM, эволюционировавшие архитектуры с пользовательской динамикой памяти показывают лучшие результаты.
-
Ограниченные обучающие данные: Эволюционировавшие архитектуры часто более компактны, чем стандартные сети LSTM/GRU, требуя меньше параметров. Это преимущество при ограниченных данных, что часто встречается в финансовых приложениях с короткой историей или редкими событиями.
-
Нестационарные данные: Разнообразие архитектур, исследуемых EXAMM, увеличивает шанс найти ту, что обобщается при сдвигах распределения — критическое требование для финансовых данных.
-
Вычислительные ограничения: EXAMM часто находит меньшие, более эффективные архитектуры, достигающие сопоставимой производительности с более крупными стандартными сетями, обеспечивая более быстрый вывод для торговли в реальном времени.
5.2 Когда стандартных архитектур достаточно
Стандартные LSTM/GRU могут быть предпочтительны, когда:
- Доступно большое количество обучающих данных и задача хорошо изучена
- Вычислительные затраты на эволюционный поиск неприемлемы
- Интерпретируемость архитектуры является жёстким требованием
- Временная динамика достаточно проста, чтобы стандартных вентилей было достаточно
5.3 Практические соображения
Основная стоимость EXAMM — сам эволюционный поиск, требующий оценки множества кандидатных архитектур. Однако после нахождения лучшей архитектуры она может быть переобучена и развёрнута как любая стандартная RNN. Поиск — это одноразовая инвестиция, которая окупается через улучшенную производительность прогнозирования.
6. Обзор реализации
Наша реализация на Rust предоставляет полный фреймворк EXAMM для трейдинга. Ключевые компоненты:
6.1 Представление генома
Каждый геном содержит список узлов (с типами ячеек) и рёбер (с весами и временными задержками). Геном поддерживает операции мутации и кроссовера, которые изменяют топологию, сохраняя структурную корректность.
6.2 Абстракция типов ячеек
Мы реализуем ячейки SimpleRNN, LSTM, GRU и MGU, каждая из которых соответствует общему интерфейсу. Прямой проход для каждого типа ячейки принимает текущий вход и предыдущее скрытое состояние, производя новое скрытое состояние. Ячейки взаимозаменяемы внутри генома, что обеспечивает мутацию «смена типа ячейки».
6.3 Островная эволюция
Популяция делится на острова, каждый из которых проводит полунезависимую эволюцию. Турнирный отбор выбирает родителей, мутации создают потомство, а периодическая миграция распространяет лучшие решения между островами.
6.4 Оценка приспособленности
Приспособленность оценивается как отрицательная среднеквадратическая ошибка (MSE) на валидационном наборе прогнозов временных рядов. Геном декодируется в исполняемую сеть, сеть обрабатывает входную последовательность, и прогнозы сравниваются с фактическими значениями. Меньшая MSE соответствует более высокой приспособленности.
6.5 Интеграция данных Bybit
Мы получаем исторические данные свечей BTCUSDT из API Bybit, извлекаем признаки OHLCV, вычисляем логарифмические доходности и нормализуем данные для использования в качестве обучающего и валидационного наборов.
Смотрите каталог rust/ для полной реализации с комментариями, объясняющими каждый компонент.
7. Интеграция данных Bybit
Реализация подключается к публичному API Bybit V5 для получения исторических данных свечей:
GET https://api.bybit.com/v5/market/kline?category=linear&symbol=BTCUSDT&interval=60&limit=200Ответ предоставляет данные OHLCV, которые предобрабатываются следующим образом:
- Парсинг: Извлечение полей timestamp, open, high, low, close и volume из JSON-ответа.
- Логарифмические доходности: Вычисление $r_t = \log(C_t / C_{t-1})$, где $C_t$ — цена закрытия в момент $t$.
- Нормализация: Z-нормализация каждого признака с использованием скользящего окна: $\hat{x}_t = (x_t - \mu) / \sigma$.
- Окна: Создание перекрывающихся окон длины $W$ для прогнозирования «последовательность-к-одному».
- Разделение на обучение/валидацию: Использование первых 70% для обучения и оставшихся 30% для валидации при оценке приспособленности.
Этот конвейер гарантирует, что эволюционный поиск оптимизирует архитектуры на реалистичных, правильно предобработанных финансовых данных.
8. Ключевые выводы
-
EXAMM эволюционирует как топологию, так и веса рекуррентных нейронных сетей, исследуя гораздо большее пространство архитектур, чем ручное проектирование или простая настройка гиперпараметров.
-
Островная эволюция с видообразованием поддерживает разнообразие в популяции, предотвращая преждевременную сходимость к субоптимальным архитектурам.
-
Эволюция ячеек памяти — отличительная особенность: EXAMM может открывать новые структуры рекуррентных ячеек помимо LSTM, GRU и других стандартных конструкций.
-
Для торговых приложений эволюционировавшие архитектуры могут улавливать сложные многомасштабные временные зависимости и адаптироваться к смене режимов способами, недоступными стандартным ячейкам.
-
Вычислительные затраты на эволюционный поиск — одноразовая инвестиция. После обнаружения оптимальной архитектуры она может быть эффективно развёрнута для торговли в реальном времени.
-
Меньшие эволюционировавшие архитектуры часто превосходят более крупные стандартные, предлагая преимущества как в точности, так и в скорости — критически важные для низколатентных торговых систем.
-
Сочетание EXAMM с правильной предобработкой данных (логарифмические доходности, нормализация, окна) и рыночными данными Bybit создаёт полный конвейер для обнаружения и развёртывания эволюционировавших торговых моделей.
-
Нет бесплатного обеда: EXAMM требует тщательной настройки размера популяции, частоты мутаций, количества островов и частоты миграции. Эти мета-параметры сами могут потребовать настройки для оптимальных результатов на финансовых данных.