Наш предыдущий блог находится по адресу: Мой проект Quantum Open Source Foundation
Квантовое машинное обучение обычно включает машинное обучение, которое выполняется на квантовых компьютерах. Типичная модель квантового машинного обучения состоит из 2 частей: классической части для предварительной и последующей обработки данных и квантовой части для использования возможностей квантовой механики для более простого выполнения определенных вычислений, таких как решение чрезвычайно больших систем линейных уравнений. Одна из основных причин использования квантового машинного обучения заключается в том, что очень сложно обучить очень большие модели машинного обучения на огромных наборах данных. Есть надежда, что такие особенности квантовых вычислений, как квантовый параллелизм или эффекты интерференции и запутанности, могут быть использованы в качестве ресурсов.
Прежде всего, нейронная сеть прямого распространения состоит из скрытых слоев, каждый из которых содержит нейроны. Входные данные сначала подаются в сеть, а значения на первом скрытом слое (т.е. нейроны) являются продуктом весов с суммированными входными данными со смещениями. Эти значения затем могут быть переданы в функцию активации, например ReLU, где значения ниже нуля обнуляются, а остальные поддерживаются. Этот процесс повторяется до тех пор, пока не будет получен окончательный результат, в зависимости от архитектуры вашей сети.
Квантовая нейронная сеть имеет множество определений в литературе, но в целом ее можно рассматривать как квантовую схему с обучаемыми параметрами. Эти квантовые модели называются вариационными квантовыми схемами. Таким образом, мы можем, наконец, определить квантовую нейронную сеть как вариационную квантовую схему - параметризованную квантовую схему, которую можно оптимизировать путем обучения параметров квантовой схемы, которые представляют собой вращения кубитов, и измерение этой схемы будет приблизительно соответствовать количеству интерес - то есть ярлык для задачи машинного обучения.
Методы машинного обучения построены вокруг:
- Адаптируемая система, допускающая приближение.
- Расчет функции потерь в выходном слое.
- Способ обновления сети, чтобы минимизировать функцию потерь и улучшить способность модели выполнять задачу машинного обучения.
Мы надеемся, что любая часть этого процесса лучше на квантовом компьютере. Чтобы решить задачу классификации с использованием квантового машинного обучения, мы построим гибридную нейронную сеть на основе квантового вариационного классификатора. Предполагается, что квантовые вариационные классификаторы имеют преимущество перед некоторыми классическими моделями благодаря более высокому эффективному измерению и более быстрой способности к обучению.
Имея набор данных о пациенте, можем ли мы предсказать, будет ли у него сердечный приступ или нет. Это проблема двоичной классификации с реальным входным вектором x
и двоичным выходом y
в {0, 1}
. Мы хотим построить квантовую схему, выходом которой является квантовое состояние
Процесс
Это достигается путем разработки квантовой схемы, которая ведет себя аналогично традиционному алгоритму машинного обучения. Алгоритм квантового машинного обучения содержит схему, которая зависит от набора параметров, которые в процессе обучения будут оптимизированы для уменьшения значения функции потерь.
В общем, этот тип модели квантового машинного обучения состоит из трех шагов:
- Государственная подготовка
- Схема модели
- Измерение
1. Кодирование данных / подготовка состояния
Когда мы хотим закодировать наши классические данные в квантовые состояния, мы выполняем определенные операции, которые помогают нам работать с данными в квантовых схемах. Один из шагов называется встраиванием данных, которое представляет собой представление классических данных как квантового состояния в гильбертовом пространстве с помощью карты квантовых характеристик. Карта функций - это математическое отображение, которое помогает нам встраивать наши данные в (обычно) пространства более высоких измерений или, в данном случае, в квантовые состояния. Его можно рассматривать как вариационную квантовую схему, в которой параметры зависят от входных данных, которые в нашем случае являются классическими данными сердечного приступа. Прежде чем двигаться дальше, нам нужно будет определить вариационную квантовую схему. Напомним, что вариационная квантовая схема зависит от параметров, которые можно оптимизировать классическими методами.
Для встраивания мы берем классическую точку данных x
и кодируем ее, применяя набор параметров вентилей в квантовой схеме, где операции вентилей зависят от значения x
, тем самым создавая желаемое квантовое состояние:
Вот несколько примеров хорошо известных методов встраивания данных:
а) Основа встраивания
В этом методе мы просто кодируем наши данные в двоичные строки. Мы преобразуем каждый вход в вычислительное базовое состояние системы кубитов. Например, x = 1001
представлен системой из 4 кубитов как квантовое состояние |1001⟩
. Некоторые моменты, которые следует учитывать при встраивании базиса:
- векторы амплитуды становятся разреженными
- есть большая свобода делать вычисления
- схемы его реализации обычно неэффективны
б) Вложение амплитуды
Здесь мы кодируем данные как амплитуды квантового состояния. Нормализованная классическая N - мерная точка данных x
представлена амплитудами n-кубитового квантового состояния |ϕ(x)⟩
как
Например
Этот метод интуитивно понятен, но схемы его реализации также довольно сложны.
в) Угловое встраивание
Здесь мы используем так называемое угловое кодирование. Мы кодируем классическую информацию в угловые вращения кубита. Это приводит к использованию значений характеристик точки входных данных, x, в качестве углов в унитарном квантовом вентиле.
Карты характеристик
Карты функций позволяют отображать данные в пространстве более высоких измерений. Входные данные кодируются в квантовом состоянии с помощью карты квантовых характеристик, стратегии кодирования, которая отображает данные в квантовое гильбертово пространство. Квантовый компьютер может анализировать входные данные в этом пространстве признаков, где классификатор стремится найти гиперплоскость для разделения данных.
Карты характеристик кодируют наши классические данные xᵢ
в квантовые состояния |ϕ(xᵢ)⟩
. В этом анализе мы используем три различных типа карт функций, предварительно закодированных в библиотеке схем Qiskit, а именно ZZFeaturemap, ZFeaturemap и PauliFeaturemap. Мы варьировали глубину этих карт характеристик (1, 2, 4), чтобы проверить производительность различных моделей. Увеличивая глубину карты признаков, мы вносим в модель больше запутанности и повторяем схему кодирования.
2. Схема модели
Второй шаг - это модельная схема, или, строго говоря, классификатор. Параметризованный унитарный оператор U(w)
создается таким образом, что |ψ(x: θ)⟩ = U(w)|ψ(x)⟩
Схема модели построена из вентилей, которые развивают входное состояние. Схема основана на единичных операциях и зависит от внешних параметров, которые будут регулироваться. Учитывая подготовленное состояние|ψᵢ⟩
модельной схемы, U(w)
отображает |ψᵢ⟩
в другой вектор |ψᵢ⟩ = U(w)|ψᵢ⟩
. В свою очередь U(w)
состоит из ряда унитарных ворот.
Для этого мы использовали вариационную схему RealAmplitude от Qiskit. Увеличение глубины вариационной схемы вводит в модель больше обучаемых параметров.
3. Измерение
Последним шагом является шаг измерения, который оценивает вероятность принадлежности к классу путем выполнения определенных измерений. Это эквивалент многократной выборки из распределения возможных вычислительных базисных состояний и получения математического ожидания.
В демонстрационных целях я сделал некоторые дизайнерские соображения. Я выбрал последнюю схему, чтобы иметь ZZFeatureMap
с глубиной 1 и вариационную форму RealAmplitudes
с глубиной 1. Это простая иллюстрация того, как работает полная модель.
Обучение
Как упоминалось выше, во время обучения мы стремимся найти значения параметров для оптимизации заданной функции потерь. Мы можем выполнить оптимизацию квантовой модели так же, как это делается в классической нейронной сети. В обоих случаях мы выполняем прямой проход модели и вычисляем функцию потерь. Затем мы можем обновить наши обучаемые параметры, используя методы оптимизации на основе градиента, поскольку градиент квантовой схемы можно вычислить. Во время обучения мы используем среднеквадратичную ошибку (MSE) как функцию потерь. Это позволяет нам находить дистанцию между нашими предсказаниями и истиной, зафиксированную значением функции потерь.
Мы будем обучать нашу модель с помощью оптимизаторов ADAM, COBYLA и SPSA. Ниже приводится краткое объяснение этих оптимизаторов, но я рекомендую вам прочитать немного больше об их плюсах и минусах.
1. АДАМ
Известный как алгоритм адаптивной оценки момента, но сокращенно ADAM. Этот оптимизатор просто оценивает моменты потерь и использует их для оптимизации функции потерь. По сути, это комбинация градиентного спуска с алгоритмом импульса и алгоритмом RMS (среднеквадратическое значение) Prop. Алгоритм ADAM вычисляет экспоненциально взвешенное скользящее среднее градиента, а затем возводит вычисленный градиент в квадрат. Этот алгоритм имеет два параметра спада, которые контролируют скорость спада этих вычисленных скользящих средних.
2. КОБИЛА
Известна как оптимизация с ограничениями с помощью линейных приближений. Он строит последовательные линейные приближения функции потерь и ограничений через симплекс из n + 1 точек (в n измерениях) и оптимизирует эти приближения в зоне доверия на каждом шаге. COBYLA поддерживает ограничения равенства, преобразовывая их в два ограничения неравенства.
3. SPSA
«SPSA использует только измерения целевой функции. Это контрастирует с алгоритмами, требующими прямых измерений градиента целевой функции. SPSA особенно эффективен в задачах большой размерности с точки зрения обеспечения хорошего решения для относительно небольшого количества измерений целевой функции. Существенной особенностью SPSA, обеспечивающей его мощность и относительную простоту использования в сложных многомерных задачах оптимизации, является базовое градиентное приближение, которое требует только двух измерений целевой функции на итерацию независимо от размерности задачи оптимизации. Эти два измерения выполняются путем одновременного «правильного» случайного изменения всех переменных в задаче («одновременное возмущение»). Это контрастирует с классическим («конечно-разностным») методом, в котором переменные меняются по одной. Если количество оптимизируемых членов равно p, то метод конечных разностей выполняет 2p измерений целевой функции на каждой итерации (для формирования одного градиентного приближения), в то время как SPSA выполняет только два измерения ». (См. Ссылку 5)
К настоящему времени я надеюсь, что вы поняли суть того, как работает модель квантового машинного обучения, а также обзор некоторых оптимизаторов. Далее мы рассмотрим результаты, которые я обнаружил при обучении модели на данных сердечного приступа, а также на популярных наборах данных ириса и вина.
Код можно найти в разделе code
Переходим к следующему блогу: « Анализ вариационного квантового классификатора с использованием данных »
использованная литература
- Https://en.wikipedia.org/wiki/Quantum_machine_learning
- Https://medium.com/xanaduai/analyzing-data-in-infinite-dimensional-spaces-4887717be3d2
- Https://arxiv.org/abs/1412.6980
- Https://docs.scipy.org/doc/scipy/reference/optimize.minimize-cobyla.html
- Https://www.jhuapl.edu/spsa/
- Вентура, Дэн и Тони Мартинес. «Квантовая ассоциативная память» Информационные науки 124.1–4 (2000): 273–296
- М. Шульд, Н. Киллоран, Phys. Rev. Lett. 122, 040504 (2019)
- A. Abbas et al. «Сила квантовых нейронных сетей». Препринт arXiv arXiv: 2011.00027 (2020).