Проект исследует производительность Variational Quantum Classifier (VQC), его гибридной версии VQC_hybrid и классической нейросети MLP на синтетических датасетах Circles и Moons.
Основная цель — понять, в каких задачах квантовая модель может быть конкурентоспособной с классической нейросетью и как архитектура и параметры модели (например, число кубитов) влияют на результаты.
- Сравнить точность классификации MLP и квантовых моделей на простых синтетических датасетах.
- Исследовать влияние архитектуры VQC (чистый квантовый слой vs гибридный) на эффективность.
- Проверить, как число кубитов (
n_qubits) влияет на выражаемость модели и качество классификации. - Визуализировать зависимость границы решений и кривых AUC для разных моделей.
- Обучить три модели на
CirclesиMoons. - Посчитать метрики: Accuracy и ROC AUC.
- Построить графики: Confusion Matrix, ROC-кривая, Training Plot, Decision Boundary.
- Сформулировать математическое обоснование поведения моделей и интерпретировать зависимость метрик от архитектуры и числа кубитов.
- Accuracy:
- ROC AUC:
ROC AUC интерпретируется как вероятность того, что случайный положительный объект получит больший прогнозный скор, чем случайный отрицательный:
- Радиальная структура:
- Лучшие результаты:
VQC_hybrid(ROC AUC ≈ 0.711, Accuracy ≈ 0.653) - MLP почти случайная (ROC AUC ≈ 0.537)
В VQC_hybrid квантовый слой выполняет feature mapping:
и вычисляет ожидаемое значение наблюдаемой:
где (U(x)) — параметризованная квантовая схема (AngleEmbedding + Ansatz), (O) — измеряемый оператор. Квантовое ядро:
позволяет моделировать сложные нелинейные зависимости между объектами, что делает VQC_hybrid более выразительной для радиально-симметричных классов.
Вот исправленный вариант с корректным LaTeX для GitHub Markdown, где все формулы будут работать, а текст сохранён полностью:
Описание:
Ansatz — это параметризованная квантовая схема, которая формирует вариационное квантовое состояние и позволяет модели учиться сложным зависимостям в данных. В VQC_hybrid используется StronglyEntanglingLayers, обеспечивающий как индивидуальные вращения кубитов, так и их перепутывание. Этот слой отвечает за создание выразительных квантовых признаков, которые затем передаются в классический слой для классификации, повышая способность модели различать сложные закономерности в данных.
Локальные вращения кубитов: Каждый кубит (i) подвергается последовательным вращениям по осям X, Y и Z:
Эти вращения позволяют изменять состояние кубита на сфере Блоха произвольно, создавая разнообразные квантовые суперпозиции.
Энтанглирование: После локальных вращений кубиты перепутываются многокубитными вентилями, формируя корреляции между ними. Это критично для моделирования сложных зависимостей и нелинейных отношений в данных.
Слои Ansatz: Схема повторяется в (L) слоях, формируя итоговую трансформацию:
где (
Кодирование входных данных и выход: Входные данные (\mathbf{x}) кодируются через AngleEmbedding:
Ansatz преобразует это состояние в:
Измерения:
Квантовый слой с Ansatz создаёт выразительные и коррелированные признаки данных, которые усиливают классическую часть модели, обеспечивая гибридное квантово-классическое обучение и позволяя эффективно распознавать сложные и нелинейные зависимости в данных.
- Нелинейное расширение пространства признаков
В исходном пространстве (
Даже при (
В результате линейный классический слой после квантового блока фактически работает в уже нелинейно преобразованном пространстве, что даёт преимущество над небольшой MLP.
- Энтанглирование как источник коррелированных признаков
Благодаря слоям перепутывания (entanglement) признаки становятся зависимыми друг от друга. Это позволяет квантовой схеме моделировать взаимодействия вида:
Для задачи Circles именно такие совместные нелинейные зависимости критичны, поскольку принадлежность к классу определяется радиусом, а не линейной комбинацией координат.
Простая MLP с малым числом нейронов может не выучить эту структуру, тогда как квантовый feature map изначально задаёт нелинейную геометрию пространства.
Несмотря на архитектурное преимущество, метрики остаются умеренными. Это объясняется несколькими факторами.
- Высокий уровень шума
При параметре noise = 0.3 классы существенно перекрываются. Это означает, что существует область, где:
Даже идеальный классификатор в такой зоне не сможет достичь высокой Accuracy. Шум ограничивает верхнюю границу качества.
- Ограниченная выразительность схемы
При фиксированном числе кубитов и слоёв Ansatz множество реализуемых функций ограничено:
Если глубина схемы мала, модель не способна точно аппроксимировать сложную и шумную границу разделения.
- Ограниченность классической части
После квантового блока используется один линейный слой:
Если квантовые признаки частично перекрываются для разных классов, одного линейного преобразования недостаточно для точного разделения.
- Сложность оптимизации
При увеличении числа кубитов и параметров градиенты могут уменьшаться (эффект barren plateau), что ухудшает поиск глобального минимума и ограничивает достижимое качество.
Таким образом:
- VQC_hybrid превосходит MLP, потому что квантовый слой создаёт более подходящее нелинейное представление для радиальной структуры.
- Однако архитектурные ограничения, шум в данных и сложности оптимизации не позволяют модели достичь высокой AUC.
- Рост числа кубитов без увеличения глубины или усложнения классической части не приводит к заметному улучшению.
Число кубитов расширяет размерность пространства признаков:
Однако для задачи Circles:
то есть 2 кубитов уже достаточно, дальнейший рост числа кубитов не даёт значимого улучшения.
- Гладкая нелинейная граница:
- Лучшие результаты: MLP (ROC AUC ≈ 0.972, Accuracy ≈ 0.915)
- VQC_hybrid хуже (AUC ≈ 0.884), VQC уступает ещё сильнее
MLP аппроксимирует гладкую функцию разделения классов, используя последовательность линейных и нелинейных преобразований. Квантовые модели с ограниченным числом кубитов и слоёв Ansatz имеют меньшую способность к гладкой аппроксимации и могут сталкиваться с:
- Barren plateau — затухание градиентов при увеличении числа кубитов
- Ограниченная выразительность - ограниченная выразительность означает, что при фиксированном числе кубитов и слоёв квантовая схема может реализовать только ограниченное множество форм разделяющей границы. На задаче Circles её нелинейное feature mapping помогает лучше разделять радиальную структуру данных. Однако на Moons граница более плавная и требует гибкой аппроксимации, и здесь MLP оказывается мощнее: она может точнее «подогнать» форму разделяющей поверхности, тогда как VQC ограничена своей архитектурой и потому уступает по AUC.
Для Moons рост числа кубитов:
Это демонстрирует, что увеличение размерности без дополнительного классического слоя не всегда улучшает качество.
Для каждой задачи показаны только лучшие модели:
- Circles →
VQC_hybrid - Moons →
MLP
|
|
-
radial_overlap Интеграл перекрытия радиальных плотностей классов. Показывает степень статистической неразличимости по радиусу.
-
bayes_error_approx Приближённая теоретическая минимальная ошибка классификации. Нижняя граница ошибки, обусловленная самим распределением данных.
-
bayes_accuracy_upper_bound Верхняя граница достижимой accuracy при данном перекрытии классов. Отражает структурное ограничение задачи.
-
mean_margin Среднее расстояние точки до оптимального радиального порога. Характеризует «чёткость» геометрической границы.
-
std_margin Разброс расстояний до границы. Высокое значение указывает на неоднородность сложности примеров.
-
near_boundary_fraction_<0.1 Доля точек вблизи границы (малый margin). Чем больше значение, тем сложнее задача и чувствительнее оптимизация.
-
class0_radial_variance / class1_radial_variance Внутриклассовая дисперсия радиуса. Описывает «толщину» колец и степень их размытости.
-
fisher_ratio Критерий разделимости классов: отношение межклассового разброса к внутриклассовому. Чем выше значение, тем лучше теоретическая separability.
-
kde_overlap Интеграл минимальных плотностей классов в 2D. Показывает степень статистического перекрытия классов. Чем меньше, тем проще разделить классы.
-
bayes_error_approx Приближённая теоретическая минимальная ошибка классификации на основе перекрытия плотностей. Нижняя граница ошибки, обусловленная распределением данных.
-
bayes_accuracy_upper_bound Верхняя граница достижимой accuracy при данном перекрытии классов. Отражает структурное ограничение задачи.
-
mean_margin Среднее расстояние точки до нелинейной границы (аппроксимация через SVM или KDE-based decision boundary). Характеризует «чёткость» границы между классами.
-
std_margin Стандартное отклонение расстояний до границы. Высокое значение указывает на неоднородность сложности примеров и различие плотностей.
-
near_boundary_fraction_<0.1 Доля точек, находящихся очень близко к границе (<0.1). Чем больше значение, тем сложнее задача и чувствительнее оптимизация модели.
-
class0_variance_sum / class1_variance_sum Сумма дисперсий по координатам внутри каждого класса. Показывает «разброс» точек в 2D и степень размытости классов.
-
fisher_ratio Критерий разделимости классов: отношение межклассового разброса к внутриклассовому. Чем выше значение, тем лучше теоретическая separability.
Confusion Matrix
- Вывод: Модель достигает точности ~65.3%, что практически совпадает с теоретическим верхним пределом Байеса для этого датасета (
bayes_accuracy_upper_bound≈ 0.670). Это означает, что модель работает почти оптимально с учётом уровня шума: noise=0.3 создаёт значительное перекрытие классов (radial_overlap≈ 0.659), и даже идеальный классификатор не смог бы существенно улучшить эти цифры. Иными словами, ~35% ошибок — это не провал модели, а структурное ограничение самих данных
ROC Curve
- Вывод: AUC = 0.711 заметно превышает случайный уровень (0.5) и хорошо согласуется с
fisher_ratio≈ 0.364 — умеренной теоретической разделимостью классов. Примечательно, что кривая резко поднимается при малых FPR: модель уверенно распознаёт «явные» примеры, удалённые от границы, но теряет уверенность вблизи неё — что прямо отражается вnear_boundary_fraction≈ 0.17 (17% точек находятся опасно близко к границе разделения). Именно этот «шумный пояс» не даёт AUC приблизиться к 1
Training Plot
- Вывод: Loss резко снижается с ~0.72 до ~0.605 за первые 30 эпох, после чего намертво застывает на плато вплоть до 150-й эпохи. Финальное значение ~0.605 — не случайность: оно математически обусловлено
bayes_error_approx≈ 0.330, то есть ~33% примеров в принципе не поддаются корректной классификации из-за наложения классов. Гладкость плато (без «ступенек» и скачков) подтверждается отдельным исследованием по seed-ам: наблюдаемые вариации - стохастический эффект инициализации, а не системный паттерн
Decision Boundary
-
Вывод: Граница решения имеет правильную концентрическую эллиптическую форму — модель корректно уловила радиальную геометрию данных (
$x_1^{2} + x_2^{2} = r^2$ ). Однако граница широкая и размытая, особенно в центральной зоне, гдеclass0_radial_variance≈ 0.171 иclass1_radial_variance≈ 0.170 практически совпадают — кольца классов имеют почти одинаковую «толщину» и сильно перекрываются. Именно эта зона неопределённости (где$P(y=1|x)$ ≈ 0.5) визуально выглядит как смешение красных и синих точек в переходном поясе и является причиной умеренных метрик, а не архитектурным недостатком модели
-
Все кривые показывают типичную динамику обучения:
- резкий спад loss в первые ~10 эпох
- плавное затухание после
- выход на плато ≈ 0.605
-
Разброс между seed минимален после ~30 эпох
-
Синхронных «скачков» на фиксированных эпохах (например, 5 или 18) не наблюдается
Средняя кривая гладкая, без выраженных локальных перегибов — явных «ступенек» на плато нет
- На ранних эпохах различия в скорости сходимости у разных seed становятся заметны
- Некоторые seed (например, seed=2) демонстрируют более медленное уменьшение loss
- «Ступенчатость» случайна: пики и замедления появляются не на одних и тех же эпохах
- Разброс в начале — естественный эффект случайной инициализации и вариаций градиента
Вывод:
- Ступеньки не повторяются синхронно между разными seed
- На средней кривой они полностью сглажены
- Следовательно, наблюдаемые скачки — это стохастический эффект оптимизации, а не структурный паттерн модели
Такое поведение объясняется комбинацией факторов:
- случайная инициализация квантовых параметров
- высокая learning rate (0.1)
- нелинейность активации (сигмоида)
- сложный градиентный ландшафт гибридной VQC
В сумме это создаёт локальные вариации, которые визуально могут напоминать «ступеньки», но не отражают системную особенность модели
Гипотеза о наличии устойчивых «ступенек» не подтверждается. Любые локальные скачки — случайные, зависящие от seed и начальной инициализации. VQC_hybrid демонстрирует стабильное плато loss, и средняя кривая обучения является гладкой и предсказуемой.
Confusion Matrix
- Вывод: MLP демонстрирует впечатляющую точность ~91.5% — и это при том, что
bayes_accuracy_upper_boundдля Moons составляет ≈ 0.996, то есть данные теоретически почти идеально разделимы (kde_overlap≈ 0.0076). Модель вплотную приближается к своему потенциалу: 128 суммарных ошибок из 1500 сосредоточены именно в зоне перекрытия классов. Показательно сравнение с Circles: там те же ~35% ошибок были структурно неизбежны, здесь же — это реальные потери модели, а не ограничение данных.
ROC Curve
- Вывод: AUC = 0.972 — кривая практически «прижата» к верхнему левому углу, что является признаком почти идеальной разделимости. Это напрямую соответствует
fisher_ratio≈ 0.000036 для Moons — парадоксально низкое значение указывает на то, что межклассовый разброс несравнимо мал по сравнению с внутриклассовым, однако именно нелинейная форма «лун» делает классы легко разделимыми для достаточно гибкой модели. MLP с нелинейными активациями аппроксимирует эту форму точно, тогда как квантовые модели (AUC ≈ 0.932) ограничены выразительностью своей схемы.
Training Plot
- Вывод: В отличие от VQC_hybrid на Circles, MLP не выходит на жёсткое плато — loss монотонно снижается с ~0.92 до ~0.215 на протяжении всех 325 эпох. Это принципиальное отличие: классический градиентный спуск не страдает от barren plateau, характерного для вариационных квантовых схем. Финальное значение ~0.215 далеко от нуля не потому, что оптимизатор застрял, а потому что
near_boundary_fraction≈ 0.024 (2.4% точек у границы) создаёт неустранимую малую долю неопределённости — модель честно «признаёт» эту неуверенность в вероятностном выходе.
Decision Boundary
- Вывод: Граница решения MLP имеет характерную диагональную нелинейную форму — модель правильно уловила ориентацию и изгиб «лун». Узкая переходная зона (белая полоса) чёткая и хорошо локализованная, что контрастирует с размытой эллиптической границей VQC_hybrid на Circles. Это объясняется разницей в mean_margin: для Moons он равен 1.371 против 0.361 для Circles — точки в среднем значительно дальше от границы, что и позволяет MLP проводить уверенную, острую линию разделения. Немногочисленные ошибки (синие точки в красной зоне и наоборот) сконцентрированы именно там, где
class0_variance_sum≈ 2.473 иclass1_variance_sum≈ 1.527 создают локальное перекрытие.
Остальные модели отображаются в таблицах метрик для полного сравнения
| Model | Dataset | n_qubits | Accuracy | ROC AUC | Mean ROC Curvature | Max ROC Curvature |
|---|---|---|---|---|---|---|
| VQC_hybrid | Circles | 2.0 | 0.653333 | 0.711341 | 218.089768 | 7406.164183 |
| VQC_hybrid | Circles | 4.0 | 0.652667 | 0.711286 | 234.932627 | 5290.117274 |
| VQC_hybrid | Circles | 8.0 | 0.653333 | 0.711293 | 243.484578 | 7406.164183 |
| MLP | Circles | NaN | 0.647333 | 0.707315 | 223.492858 | 7670.670047 |
| VQC | Circles | 2.0 | 0.592667 | 0.707862 | 236.814313 | 10315.728683 |
| VQC | Circles | 4.0 | 0.634000 | 0.707456 | 204.122196 | 2645.058637 |
| VQC | Circles | 8.0 | 0.633333 | 0.707693 | 193.482023 | 2645.058637 |
| MLP | Moons | NaN | 0.914667 | 0.972028 | 201.680604 | 3703.082091 |
| VQC_hybrid | Moons | 2.0 | 0.883333 | 0.932092 | 291.698074 | 12960.787320 |
| VQC_hybrid | Moons | 4.0 | 0.884000 | 0.932121 | 212.411745 | 4761.105546 |
| VQC_hybrid | Moons | 8.0 | 0.884000 | 0.932131 | 300.334386 | 5554.623137 |
| VQC | Moons | 2.0 | 0.844667 | 0.921288 | 357.490645 | 19044.422185 |
| VQC | Moons | 4.0 | 0.778000 | 0.875127 | 217.032658 | 5170.173511 |
| VQC | Moons | 8.0 | 0.778000 | 0.875131 | 229.083114 | 6612.646592 |
| Model | Dataset | n_qubits | Accuracy | ROC AUC | Mean ROC Curvature | Max ROC Curvature |
|---|---|---|---|---|---|---|
| VQC_hybrid | Circles | 2.0 | 0.653333 | 0.711341 | 218.089768 | 7406.164183 |
| MLP | Moons | NaN | 0.914667 | 0.972028 | 201.680604 | 3703.082091 |
Среднее значение кривизны ROC-кривой по всей её протяжённости. Показывает «остроту» изменения TPR относительно FPR: высокое значение означает резкий рост True Positive Rate при небольшом увеличении False Positive Rate, что указывает на хорошую локальную разделимость классов.
Интерпретация:
- Высокое значение (≈200 и выше): резкий рост TPR на небольшом участке FPR → модель быстро различает классы на локальных интервалах, хорошая локальная разделимость.
- Низкое значение (<100): кривизна почти плоская → модель медленно увеличивает TPR при росте FPR, меньше локальной разделимости.
Максимальное значение кривизны ROC-кривой на всех её точках. Отражает точку на ROC-кривой с наибольшей «локальной изогнутостью», где модель максимально эффективно различает положительные и отрицательные классы.
Интерпретация:
- Высокое значение (несколько тысяч, ≈5000–13000 и выше): есть точка, где модель очень эффективно различает положительные и отрицательные классы.
- Низкое значение (<3000): нет ярко выраженных участков высокой локальной различимости.
Качество классификации — лишь одна сторона медали. Квантовые вычисления позиционируются как инструмент оптимизации, а значит, честное сравнение обязано включать время обучения, скорость инференса и потребление памяти. Картина здесь оказывается не столь обнадёживающей, как по метрикам качества.
| Model | Dataset | n_qubits | Train Time (s) | Inference Time (s) | Memory (MB) |
|---|---|---|---|---|---|
| MLP | Circles | — | 0.188 | 0.000150 | 0.016 |
| VQC | Circles | 2 | 0.956 | 0.004 | 3.406 |
| VQC | Circles | 4 | 4.156 | 0.011 | 7.359 |
| VQC | Circles | 8 | 81.489 | 0.176 | 65.313 |
| VQC_hybrid | Circles | 2 | 1.340 | 0.006 | 0.328 |
| VQC_hybrid | Circles | 4 | 6.972 | 0.015 | 9.750 |
| VQC_hybrid | Circles | 8 | 130.532 | 0.266 | 0.000 |
| MLP | Moons | — | 0.524 | 0.000152 | 0.016 |
| VQC | Moons | 2 | 0.951 | 0.004 | 3.328 |
| VQC | Moons | 4 | 4.189 | 0.011 | 0.656 |
| VQC | Moons | 8 | 81.418 | 0.178 | 0.000 |
| VQC_hybrid | Moons | 2 | 1.292 | 0.006 | 0.188 |
| VQC_hybrid | Moons | 4 | 6.452 | 0.016 | 1.391 |
| VQC_hybrid | Moons | 8 | 130.484 | 0.273 | 3.875 |
Время обучения. MLP обучается в 5–700 раз быстрее квантовых моделей в зависимости от числа кубитов. При n_qubits = 2 разрыв ещё терпим — VQC_hybrid тратит ~1.3 секунды против ~0.2 у MLP. Но при n_qubits = 8 квантовые модели уходят на 130 секунд — это в ~250–700 раз медленнее. Причина — симуляция квантовой схемы на классическом железе: каждый новый кубит удваивает размерность матриц, с которыми работает симулятор.
Скорость инференса. Здесь разрыв меньше, но всё равно значителен: MLP выдаёт предсказание за 0.00015 секунды, тогда как VQC_hybrid при 8 кубитах — за 0.27 секунды, то есть почти в 1800 раз медленнее. При n_qubits = 2 разрыв сокращается до ~40 раз — всё ещё существенно.
Память. Картина непоследовательная: MLP стабильно потребляет ~0.016 МБ, квантовые модели варьируются от 0 до 65 МБ. Нулевые значения при 8 кубитах, вероятно, связаны с особенностями замера — симуляция квантовых схем на практике требует значительно больше памяти, чем фиксирует профайлер.
На классическом железе — нет. Квантовые модели проигрывают MLP по всем трём параметрам: они медленнее обучаются, медленнее делают предсказания и потребляют больше памяти. Это не недостаток конкретной реализации, а фундаментальное ограничение: симуляция квантовых схем на классических процессорах экспоненциально дорогостояща по числу кубитов
Что нужно, чтобы оптимизация появилась:
- Реальное квантовое железо — только на настоящем квантовом процессоре (QPU) квантовые операции выполняются нативно, без экспоненциально дорогой симуляции. При n_qubits = 50+ классический симулятор становится физически неосуществимым, тогда как QPU работает с той же скоростью
- Увеличение размерности задачи — на малых датасетах и малом числе кубитов накладные расходы симуляции перевешивают любое преимущество. Квантовое ускорение теоретически проявляется при высокой размерности входных данных
- Квантовые ядра вместо симуляции — использование квантового kernel estimation напрямую на QPU позволяет избежать полной симуляции схемы и получить реальный выигрыш в скорости
- Оптимизация глубины схемы — сокращение числа вентилей и слоёв Ansatz без потери качества уменьшает как время симуляции, так и накладные расходы на реальном железе
- Квантовые модели лучше справляются с радиально-симметричными данными (Circles) благодаря нелинейному feature mapping.
- Классическая MLP превосходит квантовые модели на гладких задачах (Moons), демонстрируя более высокую AUC и стабильность обучения.
- Гибридная архитектура (VQC_hybrid) эффективно использует квантовый слой как feature extractor, что повышает выразительность и точность.
- Число кубитов влияет на выразительность, но прирост метрик ограничен, особенно без классического слоя.
- Результаты подчёркивают структурно-зависимый характер квантового преимущества — оно проявляется на специфических геометриях данных.
- PennyLane — квантовые модели
- PyTorch — классические сети
- Scikit-learn — датасеты и метрики
- Matplotlib / Seaborn — визуализация
- Весь эксперимент находится в Jupyter Notebook:
notebooks/vqc_vs_mlp.ipynb - Установите необходимые зависимости
- Откройте ноутбук и выполните все ячейки последовательно









