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

Глава 226: Состязательные примеры в финансах

1. Введение

Состязательные примеры (adversarial examples) представляют собой одну из наиболее интересных и опасных уязвимостей в современных системах машинного обучения. В контексте финансовых рынков состязательный пример — это тщательно сконструированное возмущение входных данных, настолько малое, что оно неотличимо от легитимных рыночных данных, но при этом заставляющее торговую модель выдавать кардинально неверные прогнозы или решения.

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

Финансовые рынки по своей природе являются состязательной средой. В отличие от статических задач классификации изображений, торговля вовлекает активных участников, которые имеют прямые финансовые стимулы для эксплуатации слабостей моделей других участников. Рыночная манипуляция — спуфинг, фиктивная торговля, забивание очереди котировками — может быть понята как форма состязательной атаки на алгоритмы других трейдеров. В этой главе мы формализуем эту связь и исследуем как поверхность атаки, так и механизмы защиты, доступные количественным трейдерам.

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

Мы исследуем математические основы состязательных примеров, каталогизируем специфические векторы угроз, актуальные для финансовых данных, реализуем алгоритмы атак на Rust для производительных приложений и свяжем эту главу с техниками защиты, описанными в Главах 221-225.

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

Модели угроз и бюджеты возмущений

Состязательный пример формально определяется следующим образом. Для модели f, входа x и истинной метки y состязательный пример x' = x + delta удовлетворяет двум условиям:

  1. f(x') != y (модель обманута)
  2. ||delta||_p <= epsilon (возмущение ограничено)

Выбор L_p нормы определяет модель угрозы:

L_inf (Максимальная норма): Возмущение ограничено max(|delta_i|) <= epsilon. Каждый признак может быть изменён не более чем на epsilon. В финансовых терминах это означает, что ни один отдельный признак (цена, объём, индикатор) не изменяется более чем на указанную величину. Это наиболее часто используемая модель угрозы, поскольку она допускает небольшие изменения во множестве признаков одновременно, что отражает реалистичный рыночный шум.

L_2 (Евклидова норма): Общая энергия возмущения ограничена: sqrt(sum(delta_i^2)) <= epsilon. Это позволяет большие изменения в нескольких признаках при условии, что общая величина возмущения остаётся малой. В финансовых данных это соответствует сценариям, когда несколько точек данных испытывают заметные отклонения, в то время как большинство остаются неизменными.

L_1 (Манхэттенская норма): Сумма абсолютных возмущений ограничена: sum(|delta_i|) <= epsilon. Это производит разреженные возмущения — большинство признаков остаются неизменными, в то время как несколько существенно изменяются. Это моделирует целевую манипуляцию конкретных точек данных, например спуфинг одного ценового уровня.

Бюджеты возмущений в финансах

Установка подходящих значений epsilon для финансовых данных требует экспертизы в предметной области. В отличие от пикселей изображений, которые находятся в диапазоне от 0 до 255, финансовые признаки охватывают различные масштабы:

  • Ценовые данные (OHLCV): Бюджеты возмущений должны отражать реалистичные размеры тиков и шум микроструктуры рынка. Для BTC/USDT возмущение в 0.1% от текущей цены (примерно $50 при цене $50,000) представляет реалистичный уровень шума.
  • Данные объёма: Объём по своей природе шумный, с естественными вариациями 10-50% между аналогичными периодами. Бюджеты возмущений могут быть пропорционально больше.
  • Технические индикаторы: Поскольку индикаторы вычисляются из цены и объёма, их бюджеты возмущений должны быть согласованы с шумом базовых данных.
  • Данные книги ордеров: Спреды, дисбалансы глубины и позиции в очереди имеют естественную изменчивость, которая определяет разумные границы возмущений.

Атаки белого ящика и чёрного ящика

Атаки белого ящика предполагают, что противник имеет полный доступ к архитектуре модели, весам и градиентам. Это самая сильная модель угрозы, производящая наиболее эффективные атаки. В торговле это соответствует конкуренту, который провёл обратную разработку вашей модели.

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

3. Финансовые состязательные примеры

Манипулированные данные OHLCV

Данные OHLCV (Open, High, Low, Close, Volume) составляют основу большинства технических торговых систем. Состязательные возмущения этих данных могут принимать несколько форм:

  • Манипуляция ценой: Крошечные корректировки цен закрытия, которые сдвигают сигналы технических индикаторов. Например, возмущение цены закрытия на 0.05% может изменить сигнал пересечения скользящих средних.
  • Спуфинг объёма: Искусственное завышение или занижение сообщаемого объёма для активации сигналов, основанных на объёме. Модель, полагающаяся на прорывы объёма, особенно уязвима.
  • Манипуляция максимумами/минимумами: Изменение максимума или минимума свечи меняет оценки волатильности, ширину полос Боллинджера и индикаторы диапазона.

Спуфинг книги ордеров

Данные книги ордеров предоставляют вид спроса и предложения рынка в реальном времени. Состязательные атаки на признаки книги ордеров включают:

  • Лейеринг: Размещение крупных ордеров на нескольких ценовых уровнях для создания иллюзии сильной поддержки или сопротивления с последующей отменой перед исполнением.
  • Манипуляция дисбалансом глубины: Стратегическое размещение и отмена ордеров для сдвига коэффициента дисбаланса bid-ask, который многие ML-модели используют как прогнозный признак.
  • Манипуляция позицией в очереди: Забивание очереди ордеров для воздействия на сигналы приоритета исполнения.

Инъекция фейковых новостей

Торговые модели на основе NLP, обрабатывающие новостные потоки и социальные сети, уязвимы к:

  • Синтетические новостные статьи: Сгенерированные ИИ фейковые новости, предназначенные для активации сигналов торговли на основе сентимента.
  • Манипуляция социальными сетями: Координированные кампании публикаций для сдвига индикаторов социального настроения.
  • Инъекция избирательной информации: Подлинная, но вводящая в заблуждение информация, приуроченная для максимальной дезориентации модели.

4. Методы атак

FGSM (Fast Gradient Sign Method — Метод быстрого знака градиента)

Простейшая и самая быстрая атака на основе градиентов. Для входа x, истинной метки y и функции потерь L:

x' = x + epsilon * sign(grad_x L(f(x), y))

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

В финансовых приложениях FGSM выявляет наиболее чувствительные признаки: те, чьи градиенты имеют наибольшую величину — это признаки, где малые возмущения оказывают наибольшее влияние на прогнозы модели.

PGD (Projected Gradient Descent — Проецируемый градиентный спуск)

PGD — итеративная версия FGSM, производящая более сильные состязательные примеры:

x_{t+1} = Proj_{B(x, epsilon)} (x_t + alpha * sign(grad_x L(f(x_t), y)))

На каждой итерации PGD делает небольшой шаг FGSM с размером шага alpha, затем проецирует результат обратно на epsilon-шар вокруг исходного входа. После T итераций это производит состязательные примеры, которые ближе к наихудшему возмущению в рамках модели угрозы.

PGD считается стандартным «противником первого порядка» — если модель устойчива к атакам PGD, она обычно устойчива к другим атакам первого порядка.

Атака C&W (Carlini & Wagner)

Атака C&W формулирует генерацию состязательных примеров как задачу оптимизации:

minimize ||delta||_p + c * max(max_{i != y}(Z(x')_i) - Z(x')_y, -kappa)

где Z(x') — логиты (выходы до softmax), а kappa — параметр уверенности. Эта атака медленнее, но производит меньшие возмущения, чем FGSM или PGD, что делает её труднее обнаружить.

Для финансовых моделей C&W особенно актуальна, поскольку находит минимальное возмущение, необходимое для изменения торгового решения, что количественно определяет, насколько далеко текущее состояние рынка от границы принятия решений.

DeepFool

DeepFool итеративно находит ближайшую границу решений и переталкивает вход через неё:

  1. На каждой итерации вычислить минимальное возмущение для пересечения ближайшей границы класса.
  2. Применить это возмущение и повторить до изменения прогноза.

DeepFool производит минимальные L_2 возмущения, что полезно для понимания чувствительности модели — признаки с малыми возмущениями DeepFool являются наиболее уязвимыми.

AutoAttack

AutoAttack — ансамбль атак (APGD-CE, APGD-DLR, FAB, Square), обеспечивающий надёжную оценку устойчивости модели. Он сочетает методы белого и чёрного ящика и не требует настройки параметров, что делает его стандартным эталоном для оценки состязательной устойчивости.

5. Реальные последствия

Рыночная манипуляция как состязательная атака

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

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

Фиктивная торговля — одновременная покупка и продажа одного актива — это состязательное возмущение признаков объёма. Завышенный объём активирует сигналы на основе объёма в моделях других трейдеров без представления подлинного рыночного интереса.

Забивание котировками — быстрая подача и отмена ордеров для создания перегрузки — это атака типа отказа в обслуживании, которая ухудшает качество входных признаков, доступных конкурирующим алгоритмам.

Схемы «накачай и сбрось» — координированная покупка для искусственного завышения цен с последующей продажей — представляют собой продолжительную состязательную атаку на ценовые признаки, которая эксплуатирует модели, следующие за импульсом.

Регуляторные соображения

Рыночная манипуляция незаконна согласно регулированию, включая Закон Додда-Франка (США), Регулирование рыночных злоупотреблений (ЕС) и аналогичные законы по всему миру. Понимание состязательных атак на торговые модели служит двум целям:

  1. Защита: Построение моделей, устойчивых к попыткам манипуляции.
  2. Обнаружение: Выявление случаев, когда входящие данные могут быть состязательно манипулированы.

Финансовое воздействие

Финансовое воздействие состязательной уязвимости может быть значительным. Торговая модель, обрабатывающая $10M ежедневного объёма и обманываемая состязательным возмущением даже в 1% случаев, несёт ожидаемые потери, пропорциональные размеру позиции и величине некорректного сигнала. Для высокочастотных стратегий даже кратковременные периоды состязательной уязвимости могут привести к существенным потерям.

6. Обзор защиты

Техники защиты, описанные в Главах 221-225, напрямую адресуют состязательную уязвимость:

  • Глава 221: Состязательное обучение — Обучение на состязательных примерах для построения устойчивых моделей. Это наиболее прямая защита: включая состязательные возмущения в обучающие данные, модель учится их игнорировать.
  • Глава 222: Сертифицированные защиты — Предоставление доказуемых гарантий того, что никакое возмущение в пределах заданного бюджета не может изменить прогноз модели. Это предлагает самую сильную теоретическую защиту, но может жертвовать некоторой точностью.
  • Глава 223: Предобработка входных данных — Обнаружение и удаление состязательных возмущений до того, как они достигнут модели. Техники включают сжатие признаков, сглаживание входных данных и статистическое обнаружение аномалий.
  • Глава 224: Ансамблевые методы — Использование множества разнообразных моделей для снижения состязательной переносимости. Состязательный пример, созданный для одной модели, менее вероятно обманет ансамбль архитектурно разнообразных моделей.
  • Глава 225: Методы обнаружения — Идентификация состязательных входов во время инференса. Это включает статистические тесты, вспомогательные сети обнаружения и проверки согласованности между различными представлениями признаков.

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

7. Пошаговая реализация

Наша реализация на Rust предоставляет полный фреймворк для генерации и анализа состязательных примеров на финансовых данных. Основные компоненты:

Нейронная сеть с вычислением градиентов

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

// Основное предсказание с вычислением градиента
let output = network.forward(&input);
let gradient = network.input_gradient(&input, target);

Атака FGSM

Реализация FGSM вычисляет знак входного градиента и масштабирует на epsilon:

let gradient = network.input_gradient(&input, target);
let perturbation = gradient.mapv(|g| g.signum() * epsilon);
let adversarial = &input + &perturbation;

Атака PGD

PGD итерирует шаги FGSM и проецирует обратно на epsilon-шар:

for _ in 0..num_steps {
let grad = network.input_gradient(&current, target);
current = &current + &grad.mapv(|g| g.signum() * alpha);
// Проекция обратно на L_inf шар
current = project_linf(&current, &original, epsilon);
}

DeepFool-подобное минимальное возмущение

Наша реализация DeepFool итеративно находит минимальное возмущение, пересекающее границу решений, делая маленькие шаги вдоль направления градиента до изменения прогноза.

Анализ возмущений

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

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

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

GET https://api.bybit.com/v5/market/kline?category=linear&symbol=BTCUSDT&interval=60&limit=200

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

Ключевые аспекты интеграции:

  • Инженерия признаков: Сырые данные OHLCV трансформируются в доходности, оценки волатильности и признаки импульса.
  • Нормализация: Признаки нормализуются по z-score, чтобы бюджеты возмущений были сопоставимы между признаками.
  • Реалистичные границы возмущений: Значения epsilon калибруются для соответствия реалистичным уровням рыночного шума для каждого типа признака.

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

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

  2. Состязательные примеры — реальные угрозы. Малые возмущения рыночных данных — в пределах диапазона естественного рыночного шума — могут заставить торговые модели делать кардинально неверные прогнозы.

  3. FGSM и PGD — практические инструменты оценки. Быстрые атаки на основе градиентов позволяют оценивать устойчивость модели в реальном времени и выявлять уязвимые признаки.

  4. Рыночная манипуляция — это состязательная атака. Спуфинг, фиктивная торговля и другие техники манипуляции формально понимаются как состязательные возмущения входных признаков.

  5. Бюджеты возмущений должны быть предметно-специфичными. В отличие от классификации изображений, где epsilon = 8/255 является стандартом, финансовые бюджеты возмущений должны отражать реалистичный шум микроструктуры рынка.

  6. Анализ чувствительности признаков необходим. Понимание того, какие входные признаки наиболее уязвимы к состязательным возмущениям, определяет приоритеты проектирования модели и защиты.

  7. Многоуровневая защита необходима. Ни одна единственная защита (состязательное обучение, сертифицированная устойчивость, предобработка входных данных, ансамбли, обнаружение) не является достаточной сама по себе. Комбинирование техник из Глав 221-225 обеспечивает комплексную защиту.

  8. Rust обеспечивает тестирование устойчивости для критичных по производительности систем. Оценка состязательной устойчивости требует множества прямых и обратных проходов; производительность Rust делает это возможным даже для крупномасштабных промышленных систем.

  9. Необходим непрерывный мониторинг. Ландшафт состязательных угроз эволюционирует по мере адаптации участников рынка. Регулярная переоценка устойчивости модели необходима.

  10. Понимание атак улучшает защиту. Изучение методов атак не способствует рыночной манипуляции — оно необходимо для построения торговых систем, устойчивых к попыткам манипуляции.