Quantum Machine Learning
Квантовое машинное обучение (QML) обучает параметризованные квантовые схемы и квантовые ядра с помощью классических оптимизаторов. Как оно работает и на каком этапе развития находится.
Квантовое машинное обучение (QML) применяет квантовые компьютеры к задачам машинного обучения. Обычно для этого обучают параметризованные квантовые схемы, в которых углы поворота вентилей играют роль весов модели, или используют квантовый процессор для вычисления сходства в ядерных методах. Регистр из n кубитов описывается 2^n комплексными амплитудами, поэтому даже небольшая схема преобразует очень большой вектор, но измерение возвращает только одну случайную битовую строку. Значит, каждую величину, необходимую модели, нужно оценивать по множеству повторных запусков, называемых измерениями. Эта область также охватывает классическое обучение на данных квантовых экспериментов; Jacob Biamonte, Seth Lloyd и коллеги рассмотрели оба направления в обзорной статье в Nature за 2017 год.
Вариационные квантовые схемы#
Большая часть современного QML на аппаратуре использует гибридный подход. Классический компьютер преобразует каждый вход в углы поворота, квантовый процессор запускает параметризованную схему из поворотов и запутывающих вентилей, а измеренные математические ожидания передаются в классическую функцию потерь, которую минимизирует классический алгоритм оптимизации, часто обычный градиентный спуск. Такие модели также называют квантовыми нейронными сетями по аналогии с обучаемыми слоями классической нейронной сети. В этом же цикле работает вариационный квантовый алгоритм поиска собственных значений (VQE), представленный в 2014 году для оценки энергий основного состояния молекул, и QAOA — вариационный алгоритм для комбинаторных задач, на которые нацелена квантовая оптимизация.
Обратное распространение ошибки не может заглянуть внутрь квантового процессора, поэтому градиенты вычисляются по правилу сдвига параметра: для вентиля поворота точная производная математического ожидания равна половине разности результатов запусков со сдвигом угла на +π/2 и -π/2. Вот полный цикл на примере моделирования двухкубитного классификатора с NumPy:
import numpy as np
rng = np.random.default_rng(0)
x = rng.uniform(-np.pi, np.pi, size=(100, 2)) # 100 points with 2 features each
y = np.sign(np.cos(x[:, 0] - 1.0) * np.cos(x[:, 1] + 0.5)) # XOR-like labels
def circuit(features, theta):
"""Simulate RY encoding, trainable RY rotations, and a CNOT on 2 qubits, then return <Z> of qubit 2."""
half = (features + theta) / 2 # RY(theta) after RY(x) is one rotation by x + theta
state = np.kron([np.cos(half[0]), np.sin(half[0])], [np.cos(half[1]), np.sin(half[1])])
state = state[[0, 1, 3, 2]] # CNOT flips qubit 2 when qubit 1 is |1>
return state @ np.diag([1, -1, 1, -1]) @ state
theta = np.zeros(2)
for _ in range(100):
errors = np.array([circuit(xi, theta) for xi in x]) - y
for i in range(2): # parameter-shift rule: an exact gradient from two extra circuit runs
shift = np.eye(2)[i] * np.pi / 2
slopes = np.array([(circuit(xi, theta + shift) - circuit(xi, theta - shift)) / 2 for xi in x])
theta[i] -= 0.5 * np.mean(errors * slopes)
accuracy = np.mean([np.sign(circuit(xi, theta)) == yi for xi, yi in zip(x, y)])
print(f"theta = {theta.round(2)}, accuracy = {accuracy:.2f}")Выводится theta = [-0.99 0.4 ], accuracy = 0.97: схема обучается угловым смещениям, близким к -1,0 и 0,5, которые использовались для получения меток, и правильно классифицирует 97% точек. Вентиль CNOT превращает математическое ожидание второго кубита в произведение двух закодированных косинусов; без него этот кубит учитывал бы только второй признак. На аппаратуре каждое математическое ожидание вычислялось бы как среднее по тысячам измерений. PennyLane, Qiskit Machine Learning и TensorFlow Quantum предоставляют те же компоненты для работы с симуляторами и реальными квантовыми процессорами.
Квантовые ядра и гибридные модели#
Квантовое ядро отображает два входа в квантовые состояния с помощью фиксированной схемы кодирования и оценивает их перекрытие, которое затем используется как мера сходства в классическом методе опорных векторов (SVM). Vojtěch Havlíček и коллеги из IBM продемонстрировали этот подход на сверхпроводящем процессоре в статье Nature за 2019 год. В реальных данных признаков намного больше, чем доступно кубитов, поэтому конвейеры сначала сжимают входные данные с помощью анализа главных компонент (PCA) или предварительно обученной сети. В 2020 году Andrea Mari и коллеги из Xanadu применили этот вариант трансферного обучения: они передали признаки предварительно обученной ResNet-18 в четырёхкубитную вариационную схему для классификации изображений.
Как обстоят дела с квантовым преимуществом#
Самое очевидное преимущество проявляется при работе с квантовыми данными. В 2022 году Hsin-Yuan Huang и коллеги из Caltech и Google Quantum AI использовали до 40 сверхпроводящих кубитов и 1 300 квантовых вентилей на процессоре Sycamore от Google и показали, что алгоритм, который хранит квантовые состояния и обрабатывает их на квантовом компьютере, может узнавать свойства квантовой системы, используя экспоненциально меньше экспериментов, чем любой алгоритм, измеряющий каждую копию отдельно.
Преимущество в скорости на классических данных доказано менее убедительно. Ранние предложения опирались на алгоритм HHL 2009 года для линейных систем, которому нужны разреженные, хорошо обусловленные входные данные, уже хранящиеся в квантовой памяти. В 2018 году Ewin Tang разработал классический квантово-вдохновлённый алгоритм, устранивший заявленное экспоненциальное ускорение для квантовых рекомендательных систем. Обучению мешают бесплодные плато, описанные Jarrod McClean и коллегами в 2018 году: для многих схем со случайной начальной инициализацией градиенты экспоненциально уменьшаются с ростом числа кубитов. Это квантовый аналог проблемы затухающего градиента, который также приводит к экспоненциальному росту необходимого числа измерений. Современные процессоры относятся к устройствам шумного промежуточного масштаба (NISQ), как их назвал John Preskill в 2018 году; ошибки вентилей ограничивают глубину схем.
Загрузка данных — ещё одно узкое место. Одно RGB-изображение размером 640 x 640 пикселей при стандартном размере входа Ultralytics YOLO26 содержит 1 228 800 значений, и кодирование амплитуды позволяет уместить их в 21 кубит, однако подготовка произвольного состояния из 21 кубита требует числа операций, растущего как 2²¹, — примерно столько же операций нужно CPU, чтобы прочитать пиксели.










