Аннотация: MindSpore официально открыла исходный код библиотеки квантового машинного обучения MindQuantum 28 марта. В этой статье представлены ключевые технологии MindQuantum.
Эта статья опубликована в сообществе HUAWEI CLOUD.«Библиотека машинного обучения MindSpore Quantum MindQuantum», Автор: HWCloudAI.
MindSpore официально открыла исходный код библиотеки квантового машинного обучения MindQuantum 28 марта. В этой статье представлены ключевые технологии MindQuantum. Прежде чем представить MindQuantum, кратко объясните связанные с ним концепции квантовых вычислений.
Основные концепции квантовых вычислений
Квантовые вычисления сегодня являются одной из самых прорывных технологий в мире, и различные страны и компании увеличивают инвестиции в исследования и разработки в этой области. Концепция квантового компьютера была впервые предложена известным физиком Фейнманом в 1981 году. Согласно его идее, квантовый компьютер, использующий принципы квантовой механики, может моделировать сложные квантовые системы быстрее, чем классические компьютеры. Благодаря запутанности, суперпозиции и параллелизму квантовых систем люди могут реализовать некоторые алгоритмы с полиномиальным или даже экспоненциальным ускорением, такие как алгоритм Шора для факторизации больших чисел, алгоритм Гровера для квантового поиска и т. д. Чтобы каждый мог быстро войти в квантовые вычисления, нам сначала нужно понять некоторые основные понятия, в том числе квантовые биты для хранения информации и квантовые вентили для логических операций с кубитами.
кубит
В классических компьютерах люди обычно используют уровень потенциала для представления двоичных 0 и 1, а затем используют полупроводниковые устройства, такие как транзисторы, для управления током для выполнения общих логических операций. Однако в то же время один и тот же бит может находиться только в одном из низкопотенциальных и высокопотенциальных разрядов. В волшебном квантовом мире некоторые сущности могут находиться в двух разных состояниях одновременно. Например, электрон, его спин может одновременно находиться в верхнем и нижнем состоянии.Если записать верхнее и нижнее состояния как 0 и 1 соответственно, то кубит, представленный спином электрона, может одновременно находиться в суперпозиция 0 и 1. Согласно правилам записи Дирака, мы обозначаем состояния 0 и 1 как |0> и |1> соответственно, которые называются правовекторным представлением. Для одного кубита его состояние представляет собой суперпозицию |0> и |1>, то есть:Здесь a и b должны удовлетворять
, что является условием нормализации состояния. Студенты, у которых есть определенные основы линейной алгебры, могут подумать, что состояние отдельного кубита — это вектор в двумерном пространстве, натянутый на |0> и |1> в качестве базисных векторов. Мы называем это пространство гильбертовым пространством. Пространство, в котором находится многобитовое квантовое состояние, образуется прямым произведением множества таких однобитовых пространств. Чтобы облегчить всем понимание, мы можем выразить |0> и |1> с помощью двух простейших ортогональных базисных векторов в двумерном пространстве:
Такое произвольное состояние одного кубита может быть выражено как:
Как можно представить столько кубитов? Взяв в качестве примера два бита, пространство, в котором находится двухбитовое квантовое состояние, формируется прямым произведением двух двумерных гильбертовых пространств, а четыре базисных вектора равны |00>, |01> и |11> соответственно, где
Другие и так далее. Следовательно, мы можем найти, что для системы из N битов ее квантовые состояния могут одновременно находиться в
В состоянии суперпозиции каждого вычислительного базисного вектора это находится за пределами досягаемости классических битов.
квантовый логический вентиль
После того, как у нас есть кубиты основного носителя квантовой информации, нам нужно соответствующим образом манипулировать этими кубитами. В классических компьютерах у нас есть некоторые полупроводниковые устройства для обработки электрических сигналов для формирования классических логических вентилей, таких как вентили И-НЕ, вентили исключающее ИЛИ и т. д. В квантовом компьютере мы называем этот тип логических вентилей, которые манипулируют кубитами, квантовыми логическими вентилями. Например, в сверхпроводящем квантовом компьютере мы можем подавать некоторые микроволновые импульсы на сверхпроводящие кубиты, чтобы выполнять над ними соответствующие действия. переворачивание битов и т.д. Логика, сформированная этой манипуляцией, также может быть описана на языке линейной алгебры, Например, три наиболее часто используемых логических элемента X, Y, Z, три элемента Паули и элемент Адамара H могут быть представлены матрицами соответственно:
Эти вентили являются квантовыми вентилями, действующими на один бит, а правила работы, действующие на квантовые состояния, удовлетворяют матричному умножению, например:
квантовая схема
Мы можем измерить квантовое состояние после того, как квантовая схема разовьется, извлечь информацию из квантового состояния и выполнить последующие операции.
Затем мы используем MindQuantum для развития вышеуказанной схемы и получения конечного квантового состояния. Сначала следуйте [Руководству по установке] (MindSpore/mindquantum), чтобы завершить установку MindQuantum, и запустите следующий код, чтобы получить окончательное квантовое состояние.
import numpy as np
from mindquantum import Circuit
from mindquantum.highlevel import StateEvolution
c = Circuit()
c.h(0)
c.x(1, 0)
c.ry('theta', 2)
state = StateEvolution(c).final_state({'theta': np.pi/2}, ket=True)
print(state)
Результат выглядит следующим образом:
0.5¦000⟩
0.5¦011⟩
0.5¦100⟩
0.5¦111⟩
Таким образом, мы получаем окончательное квантовое состояние как:
Квантовые приложения в машинном обучении
Еще в прошлом веке ученые предложили концепцию квантовых персептронов для машинного обучения. За последние 20 лет было открыто все больше и больше квантовых алгоритмов для машинного обучения, в том числе алгоритм HHL для решения линейных уравнений и основанные на нем квантовый анализ главных компонент и квантовые машины опорных векторов. На рисунке ниже показано влияние ускорения различных алгоритмов квантового машинного обучения на лучшие классические алгоритмы.
Однако осмысленное практическое применение этих алгоритмов требует тысяч или даже миллионов кубитов.На текущем этапе NISQ (Noisy Intermediate-Scale Quantum) количество битов в реальном квантовом компьютере может достигать только десятков или сотен, а система содержит больше шум. Чтобы продемонстрировать преимущества квантовых компьютеров на этапе NISQ, была разработана библиотека квантово-классического гибридного машинного обучения.Классические компьютеры и квантовые компьютеры дополняют друг друга для решения сложных задач, таких как квантово-химическое моделирование и комбинаторная оптимизация.
MindQuantum, библиотека квантового машинного обучения
MindQuantum — это библиотека квантового машинного обучения, разработанная путем объединения MindSpore и HiQ, которая поддерживает обучение и вывод различных квантовых нейронных сетей. Благодаря научно-исследовательским возможностям в области квантовых вычислений команды HiQ компании Huawei и высокопроизводительным возможностям MindSpore по автоматической дифференциации, MindQuantum может эффективно справляться с такими задачами, как квантовое машинное обучение, квантово-химическое моделирование и квантовая оптимизация, а его производительность достигла 1-го места в обеспечивает эффективную платформу для быстрого проектирования и проверки алгоритмов квантового машинного обучения.
На следующем рисунке представлена схема архитектуры MindQuantum. В настоящее время мы используем оператор квантового симулятора для моделирования квантовой системы. Он может выполнять функции прямого распространения и расчета градиента. На этой основе у нас есть библиотеки квантовых алгоритмов, такие как квантовые нейронные Сети, VQE для квантово-химического моделирования, QAOA для алгоритмов квантовой оптимизации и т. д., а затем есть квантовые приложения Мы можем использовать квантовые алгоритмы MindQuantum для выполнения таких задач, как машинное обучение, химическое моделирование и оптимизация операционных исследований.
В MindQuantum структура квантовой нейронной сети описана на следующем рисунке.Квантовая схема состоит из трех блоков.Схема кодирования будет кодировать классические данные в квантовое состояние, а затем схему для обучения.Мы можем настроить логический элемент в схеме, регулируя параметры схемы, чтобы окончательные результаты измерений соответствовали ожиданиям.
С помощью MindQuantumLayer в MindQuantum мы можем легко создать слой квантового машинного обучения и легко сформировать более крупную сеть машинного обучения с другими операторами в MindSpore. Ниже мы объединяем простой пример, чтобы испытать библиотеку квантового машинного обучения MindQuantum.
Первый опыт квантовой нейронной сети MindQuantum
1. Построение квантовой схемы
import numpy as np
from mindquantum.ops import QubitOperator
from mindquantum import Circuit, Hamiltonian
encoder = Circuit().rx('alpha', 0).ry('beta', 0).no_grad()
ansatz = Circuit().rx('a', 0).ry('b', 0)
circ = encoder + ansatz
ham = Hamiltonian(QubitOperator('Z0'))
alpha, beta = 0.5, 1.2
encoder_data = np.array([[alpha, beta]]).astype(np.float32)
2. Создайте обучающую сеть
from mindquantum.nn import MindQuantumLayer
import mindspore as ms
class Net(ms.nn.Cell):
def __init__(self, pqc):
super(Net, self).__init__()
self.pqc = pqc
def construct(self, x):
return -self.pqc(x)
pqc = MindQuantumLayer(['alpha', 'beta'], ['a', 'b'], circ, ham)
train_net = Net(pqc)
3. Обучение
opti = ms.nn.Adam(train_net.trainable_params(), 0.2)
net = ms.nn.TrainOneStepCell(train_net, opti)
for i in range(100):
print(net(ms.Tensor(encoder_data)))
Окончательный результат сходимости равен -0,993. В то же время мы также можем получить точность конечного квантового состояния и целевого состояния.
frommindquantum.highlevel import StateEvolution
a, b = pqc.weight.asnumpy()
pr = {'alpha': alpha, 'beta': beta, 'a': a, 'b': b}
state = StateEvolution(circ).final_state(pr)
fid = np.abs(np.vdot(state, [1, 0]))**2
С помощью вышеуказанного обучения мы используем квантовую нейронную сеть для компенсации ошибки системы, так что точность конечного квантового состояния достигает 99,9999%.
больше примеров
В дополнение к простым примерам, приведенным выше, мы также приводим примеры использования MindQuantum для обработки естественного языка, квантово-химического моделирования, комбинаторной оптимизации и распознавания рукописного ввода.Подробности см. по следующим ссылкам:
перспективы на будущее
В будущем мы продолжим обогащать модель квантовой нейронной сети и поддерживать больше аппаратных серверных частей. Энтузиасты квантового машинного обучения также могут присоединиться к нам для совместной разработки и поддержки сообщества открытого исходного кода MindQuantum.
Вы рады узнать о ключевых технологиях MindSpore? торопиться【нажмите на ссылку】И [зарегистрируйтесь сейчас], вы можете изучить классический кейс на платформе ModelArts, чтобы освоить глубокое обучение на основе MindSpore!
Нажмите «Подписаться», чтобы впервые узнать о новых технологиях HUAWEI CLOUD~