Глава 195: Квантовые карты признаков (Quantum Feature Map)
1. Введение
Квантовые карты признаков представляют собой одну из наиболее фундаментальных концепций квантового машинного обучения. По своей сути, они обеспечивают систематический способ кодирования классических данных в квантовое гильбертово пространство, преобразуя входные векторы из привычного евклидова пространства в квантовые состояния, живущие в экспоненциально большем пространстве. Это кодирование является квантовым аналогом классического “ядерного трюка” (kernel trick), используемого в методе опорных векторов и других ядерных методах, но с ключевым преимуществом: гильбертово пространство n кубитов растёт как 2^n, предлагая экспоненциальное расширение, которое ни одна классическая карта признаков не может эффективно воспроизвести.
В контексте финансовых рынков эта возможность особенно привлекательна. Рыночные данные по своей природе многомерны и нелинейны. Движения цен, паттерны объёмов, динамика книги ордеров и технические индикаторы формируют сложную сеть взаимосвязей, которую классические модели часто не могут уловить. Квантовые карты признаков предлагают обоснованный способ проецирования этих данных в пространство, где ранее скрытые закономерности могут стать линейно разделимыми.
Центральная идея проста: для классической точки данных x из R^d квантовая карта признаков phi строит параметризованную квантовую схему U(x), которая действует на начальное состояние |0>^n, создавая квантовое состояние |phi(x)> = U(x)|0>^n. Скалярное произведение двух таких состояний, <phi(x)|phi(x’)>, определяет квантовое ядро, измеряющее сходство в квантовом пространстве признаков. Это ядро затем может использоваться непосредственно в классических ядерных методах или как часть гибридного квантово-классического алгоритма.
В этой главе мы рассматриваем математические основы квантовых карт признаков, изучаем несколько важных семейств карт (угловое кодирование, амплитудное кодирование, ZZ-карты признаков и IQP-схемы), а также демонстрируем их применение к торговым данным. Мы реализуем всё с нуля на Rust, включая симулятор вектора состояния, несколько реализаций карт признаков, вычисление ядер и интеграцию с API криптовалютной биржи Bybit.
2. Математические основы
2.1 Угловое кодирование (вращения RY/RZ)
Угловое кодирование — это простейшая квантовая карта признаков. Каждый классический признак x_i кодируется как угол вращения на выделенном кубите. Для d-мерного входного вектора x мы используем d кубитов и применяем однокубитные вращения:
RY-кодирование: |phi(x)> = (RY(x_1) tensor RY(x_2) tensor … tensor RY(x_d)) |0>^d
где RY(theta) — это вентиль вращения по оси Y:
RY(theta) = [[cos(theta/2), -sin(theta/2)], [sin(theta/2), cos(theta/2)]]RZ-кодирование использует вентиль вращения по оси Z:
RZ(theta) = [[exp(-i*theta/2), 0], [0, exp(i*theta/2)]]Угловое кодирование экономично по ресурсам (один кубит на признак), но ограничено в выразительности, поскольку каждый кубит параметризован независимо. Результирующее ядро имеет простую произведённую форму:
K(x, x’) = произведение_i cos^2((x_i - x’_i) / 2)
2.2 Амплитудное кодирование
Амплитудное кодирование упаковывает целый 2^n-мерный нормализованный вектор в амплитуды n кубитов:
|phi(x)> = сумма_{i=0}^{2^n - 1} x_i |i>
где сумма |x_i|^2 = 1. Это чрезвычайно эффективно по данным (экспоненциальное сжатие), но требует сложных схем подготовки состояний. Для финансовых данных с d признаками мы дополняем до ближайшей степени 2, нормализуем и кодируем.
2.3 ZZ-карта признаков
ZZ-карта признаков вводит запутанность между кубитами, создавая корреляции, которые улавливают взаимодействия признаков. Она состоит из слоёв вентилей Адамара, однокубитных Z-вращений и двухкубитных ZZ-взаимодействий:
U_ZZ(x) = [произведение_{(i,j) из S} exp(i * x_i * x_j * ZZ_{ij})] * [произведение_i exp(i * x_i * Z_i)] * H^{tensor n}Это может повторяться для нескольких слоёв (параметр глубины). Члены ZZ-взаимодействия критически важны: они кодируют попарные корреляции признаков непосредственно в структуру запутанности квантового состояния. Для финансовых данных это означает, что корреляции между, скажем, ценой и объёмом естественным образом учитываются.
Ядро ZZ-карты признаков имеет вид:
K(x, x’) = |<0|U_ZZ(x’)^dagger U_ZZ(x)|0>|^2
Это ядро доказуемо сложно вычислить классически при достаточной глубине схемы, что предполагает потенциальное квантовое преимущество.
2.4 IQP-схемы (Мгновенные квантовые полиномиальные схемы)
IQP-схемы — это ограниченный класс квантовых схем, состоящих из вентилей Адамара и диагональных вентилей. Несмотря на свою простоту, считается, что их классически сложно симулировать. IQP-карта признаков имеет вид:
U_IQP(x) = H^{tensor n} * D(x) * H^{tensor n}где D(x) — диагональное унитарное преобразование, кодирующее данные:
D(x) = exp(i * сумма_i x_i Z_i + i * сумма_{i<j} x_i * x_j * Z_i Z_j)IQP-схемы особенно интересны для квантового машинного обучения, потому что:
- Их, вероятно, классически невозможно точно симулировать
- Они имеют естественную связь с моделями Изинга (актуально для моделирования финансовых корреляций)
- Их можно эффективно реализовать на квантовом оборудовании ближайшего будущего
2.5 Выразительность и способность к запутыванию
Два ключевых показателя характеризуют качество квантовой карты признаков:
Выразительность (Expressibility) измеряет, насколько хорошо схема может исследовать полное гильбертово пространство. Она количественно определяется через расхождение Кульбака-Лейблера между распределением верностей (fidelities), генерируемых схемой, и Хааровским (равномерным) распределением:
Expr = D_KL(P_circuit(F) || P_Haar(F))
где P_Haar(F) = (2^n - 1)(1 - F)^{2^n - 2} для n кубитов. Меньшие значения выразительности указывают на более равномерное покрытие.
Способность к запутыванию (Entangling capability) измеряет среднюю запутанность, создаваемую схемой, обычно с использованием меры Мейера-Валлаха:
Q = 2(1 - 1/n * сумма_i tr(rho_i^2))
где rho_i — редуцированная матрица плотности кубита i. Более высокие значения (до 1) указывают на большую запутанность. Для финансовых приложений более высокая способность к запутыванию обычно означает, что карта признаков может улавливать более сложные многопризнаковые корреляции.
3. Проектирование карт признаков для финансовых данных
3.1 Выбор правильного кодирования
Выбор квантовой карты признаков зависит от нескольких факторов, специфичных для финансовых данных:
Размерность данных: OHLCV-данные имеют 5 признаков на свечу. С техническими индикаторами это может вырасти до 20-50 признаков. Угловое кодирование требует одного кубита на признак, что может быть чрезмерным. Амплитудное кодирование может сжимать экспоненциально, но требует тщательной нормализации.
Корреляции признаков: Финансовые признаки сильно коррелированы (цены открытия/закрытия, соотношения цена/объём). ZZ-карта признаков естественным образом улавливает попарные корреляции, что делает её хорошо подходящей для этой области.
Временная структура: Рыночные данные имеют сильные временные зависимости. Множественные слои схем карт признаков могут улавливать паттерны более высокого порядка, когда признаки включают запаздывающие значения.
Устойчивость к шуму: Квантовые устройства ближайшего будущего шумные. Менее глубокие схемы (угловое кодирование, однослойная ZZ) более устойчивы к шуму, чем глубокие схемы.
3.2 Компромисс между глубиной и выразительностью
Увеличение глубины схемы, как правило, повышает выразительность, но также:
- Увеличивает количество вентилей и, следовательно, восприимчивость к шуму
- Увеличивает стоимость классической симуляции
- Может привести к переобучению (квантовый аналог избыточной ёмкости модели)
Для торговых приложений мы обнаруживаем, что 2-3 слоя ZZ-карты признаков обеспечивают хороший баланс. Сверх этого маргинальный выигрыш в выразительности перевешивается увеличенным шумом и вычислительными затратами.
3.3 Предобработка признаков
Перед кодированием в квантовую схему финансовые признаки должны быть предобработаны:
- Нормализация: Отображение признаков в [0, pi] для углового кодирования или нормализация к единичной норме для амплитудного кодирования
- Стационарность: Использование доходностей или логарифмических доходностей вместо сырых цен
- Масштабирование: Применение min-max или z-score масштабирования для обеспечения равного вклада всех признаков
- Снижение размерности: Если количество признаков превышает бюджет кубитов, использование PCA или автоэнкодеров для уменьшения размерности
4. Торговое применение
4.1 Кодирование OHLCV-данных
Для одной свечи с признаками [open, high, low, close, volume] мы вычисляем производные признаки:
- Доходность: (close - open) / open
- Диапазон: (high - low) / close (прокси волатильности)
- Верхняя тень: (high - max(open, close)) / close
- Нижняя тень: (min(open, close) - low) / close
- Коэффициент объёма: volume / скользящее_среднее_объёма
Эти 5 производных признаков нормализуются к [0, pi] и кодируются с использованием 5 кубитов.
4.2 Технические индикаторы как квантовые признаки
Дополнительные признаки могут включать:
- RSI (Индекс относительной силы): естественно ограничен [0, 100], хорошо отображается в [0, pi]
- Позиция в полосах Боллинджера: где цена находится относительно полос
- Сигнал MACD: индикатор импульса
- ATR (Средний истинный диапазон): мера волатильности
4.3 Признаки книги ордеров
Для высокочастотных стратегий признаки книги ордеров предоставляют богатую информацию:
- Спред между ценами покупки и продажи
- Дисбаланс книги ордеров: (объём_покупки - объём_продажи) / (объём_покупки + объём_продажи)
- Глубина на нескольких уровнях цен
Эти признаки кодируют информацию о микроструктуре рынка, которую квантовые карты признаков могут проецировать в пространство, где паттерны (такие как предстоящие крупные движения) становятся более обнаруживаемыми.
4.4 Квантовое ядро для классификации
Квантовое ядро K(x_i, x_j) = |<phi(x_i)|phi(x_j)>|^2 может использоваться в машине опорных векторов (SVM) для классификации рыночных режимов:
- Трендовые vs возвратные к среднему
- Высокая vs низкая волатильность
- Бычьи vs медвежьи
Ядерная матрица улавливает попарные сходства между рыночными состояниями в квантовом пространстве признаков, потенциально выявляя структуру, невидимую для классических ядер.
5. Пошаговое руководство по реализации
Наша реализация на Rust состоит из нескольких ключевых компонентов:
5.1 Симуляция квантового состояния
Мы представляем квантовые состояния как комплекснозначные векторы размерности 2^n. Однокубитные вентили применяются путём итерации по парам амплитуд, а двухкубитные вентили работают с группами из четырёх амплитуд. Этот подход на основе вектора состояния точен (без шума выборки) и эффективен для малого числа кубитов (до ~20 кубитов).
// Основной тип вектора состоянияtype StateVector = Vec<Complex64>;
// Применение однокубитного вентиля к кубиту `target` в состоянии `state`fn apply_single_gate(state: &mut StateVector, target: usize, gate: [[Complex64; 2]; 2]) { let n_qubits = (state.len() as f64).log2() as usize; let step = 1 << target; for block in (0..state.len()).step_by(step << 1) { for i in block..block + step { let a = state[i]; let b = state[i + step]; state[i] = gate[0][0] * a + gate[0][1] * b; state[i + step] = gate[1][0] * a + gate[1][1] * b; } }}5.2 Схемы карт признаков
Каждая карта признаков реализована как структура с методом encode, который принимает классический вектор признаков и возвращает квантовый вектор состояния:
pub trait QuantumFeatureMap { fn encode(&self, features: &[f64]) -> StateVector; fn kernel(&self, x: &[f64], y: &[f64]) -> f64; fn kernel_matrix(&self, data: &[Vec<f64>]) -> Array2<f64>;}Метод kernel вычисляет |<phi(x)|phi(y)>|^2 путём кодирования обоих векторов и вычисления их скалярного произведения. Метод kernel_matrix вычисляет все попарные ядра для набора данных.
5.3 Вычисление выразительности
Мы оцениваем выразительность путём:
- Генерации множества случайных векторов параметров
- Вычисления распределения верностей схемы
- Сравнения с Хааровским распределением через расхождение КЛ
Это даёт количественную меру того, насколько хорошо каждая карта признаков исследует гильбертово пространство.
6. Интеграция с Bybit
Наша реализация получает рыночные данные в реальном времени из API биржи Bybit. Конечная точка https://api.bybit.com/v5/market/kline предоставляет OHLCV-данные свечей. Мы получаем исторические свечи, вычисляем производные признаки, нормализуем их и пропускаем через наши квантовые карты признаков.
Конвейер обработки данных:
- Получение: HTTP GET запрос к API Bybit для свечей BTCUSDT
- Парсинг: Десериализация JSON-ответа в структуры свечей
- Инженерия: Вычисление доходностей, диапазона, теней, коэффициента объёма
- Нормализация: Масштабирование признаков к [0, pi]
- Кодирование: Применение квантовой карты признаков к вектору признаков каждой свечи
- Вычисление ядра: Построение ядерной матрицы для последующего МО
Весь конвейер работает на Rust для максимальной производительности, используя reqwest для HTTP и serde для парсинга JSON.
7. Сравнение карт признаков на торговых данных
Мы сравниваем три карты признаков на данных BTCUSDT по нескольким метрикам:
7.1 Выразительность
| Карта признаков | Выразительность (КЛ расх.) | Интерпретация |
|---|---|---|
| Угловая карта | Высокая (плохая) | Ограничена произведёнными состояниями |
| ZZ-карта (глубина=2) | Средняя | Хороший баланс |
| IQP-карта | Низкая (хорошая) | Широкое покрытие |
7.2 Способность к запутыванию
| Карта признаков | Q Мейера-Валлаха | Интерпретация |
|---|---|---|
| Угловая карта | 0.0 | Нет запутанности |
| ZZ-карта (глубина=2) | ~0.5 | Умеренная запутанность |
| IQP-карта | ~0.4 | Умеренная запутанность |
7.3 Свойства ядерной матрицы
Для эффективной классификации нам нужна ядерная матрица, которая:
- Имеет чёткую блочную структуру (разные режимы отображаются в разные области)
- Не слишком близка к единичной матрице (признаки достаточно похожи для обмена информацией)
- Не слишком однородна (признаки достаточно различны для разграничения)
ZZ-карта признаков обычно производит наиболее структурированные ядерные матрицы на финансовых данных, отражая её способность улавливать корреляции признаков. Угловая карта производит почти диагональные ядра (каждая точка непохожа на все остальные), в то время как IQP-карты производят умеренно структурированные ядра.
7.4 Точность классификации
При использовании в квантовом ядерном SVM для классификации режимов:
| Карта признаков | Точность | F1-мера |
|---|---|---|
| Угловая карта | ~60% | ~0.58 |
| ZZ-карта (глубина=2) | ~72% | ~0.70 |
| IQP-карта | ~68% | ~0.66 |
| Классическое RBF | ~65% | ~0.63 |
Способность ZZ-карты признаков улавливать попарные взаимодействия признаков даёт ей преимущество, особенно при обнаружении переходов между режимами, где корреляции меняются.
8. Ключевые выводы
-
Квантовые карты признаков кодируют классические данные в квантовое гильбертово пространство, обеспечивая доступ к экспоненциально большому пространству признаков, которое может выявить паттерны, невидимые для классических методов.
-
ZZ-карта признаков особенно хорошо подходит для финансовых данных, поскольку она нативно улавливает попарные корреляции признаков, которые обильны в рыночных данных (цена-объём, межактивные, корреляции индикаторов).
-
Выразительность и способность к запутыванию — ключевые метрики проектирования. Более высокая выразительность означает, что карта признаков может представлять более разнообразные квантовые состояния; более высокая способность к запутыванию означает, что она может улавливать более сложные многопризнаковые взаимодействия.
-
Предобработка признаков критически важна. Сырые финансовые данные должны быть преобразованы (доходности, нормализация, масштабирование) перед квантовым кодированием. Выбор предобработки может значить больше, чем выбор карты признаков.
-
Глубина — обоюдоострый меч. Больше слоёв повышают выразительность, но также увеличивают чувствительность к шуму и вычислительные затраты. Для торговых данных 2-3 слоя обычно оптимальны.
-
Квантовые ядра могут превосходить классические ядра на структурированных финансовых данных, особенно для обнаружения режимов и нелинейного распознавания паттернов.
-
Текущие ограничения реальны. Симуляция вектора состояния ограничена ~20 кубитами. Реальное квантовое оборудование добавляет шум. Практическое преимущество квантовых карт признаков на текущем оборудовании всё ещё устанавливается.
-
Реализация на Rust обеспечивает практическую основу для экспериментов с квантовыми картами признаков на торговых данных. Система типов обеспечивает корректность, а производительность позволяет быструю итерацию по различным дизайнам карт и гиперпараметрам.
Область квантового машинного обучения для финансов быстро развивается. Квантовые карты признаков предоставляют один из наиболее конкретных и теоретически обоснованных подходов к достижению квантового преимущества в финансовом прогнозировании. По мере улучшения квантового оборудования и увеличения глубины схем разрыв между квантовыми и классическими картами признаков, как ожидается, будет увеличиваться, что делает эту область важной для перспективных количественных исследователей.