Квантовое обучение что это

Квантовое машинное обучение: знакомимся с Tensorflow Quantum

На Хабре практически нет информации про квантовое машинное обучение (Quantum Machine Learning), и в этой статье я постараюсь подробнее раскрыть тему. Сразу скажу, что промышленных квантовых компьютеров сегодня не существует, все основные разработки в этой области носят теоретический характер, а задачу, которую мы будем разбирать в статье можно решить «по классике» за доли секунд. Но ведь еще 30 лет назад была так называемая «зима искусственного интеллекта», а сегодня нейронные сети буквально окружают нас. Кто знает, может быть вскоре и квантовые компьютеры станут неотъемлемой частью нашей жизни? К тому же область квантовых вычислений, а тем более область QML, обладает особой притягательностью и таинственностью и, как минимум, стоит быть замеченной.

Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это

В статье я постарался рассказать о QML в целом, а также об основном строительном блоке QMLVariational Quantum Circuit. Большую часть статьи я постарался сделать практической, c примерами кода на Cirq, а в конце — добавил реализацию одного из базовых алгоритмов QML на Tensorflow Quantum.

Введение

Гипотетически QML имеет ряд существенных преимуществ, по сравнению с классическим машинным обучением. Variational Quantum Circuit, или VQC, которые можно назвать «аналогом» классических полносвязных слоев в обычных нейронных сетях, являются более «выразительными» и при этом содержат меньше обучаемых параметров. Ряд квантовых алгоритмов потенциально также дает существенное ускорение по сравнению с обычными аналогами:

МетодУскорение
Bayesian Inference Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это
Online Perceptron Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это
Least Square Fitting Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это
Classical Boltzman Machine Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это
Quantum Boltzman Machine Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это
Quantum PCA Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это
Quantum SVM Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это
Quantum RL Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это

Для наиболее полного ознакомления с темой я рекомендую обзор 2017-го года в журнале Nature или препринт той же работы в arXiv. Именно из этой работы я взял данную таблицу. В ней указано ускорение по сравнению с классическим аналогом. Так, Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этоподразумевает, что квантовый алгоритм квадратично быстрее, чем его классический аналог, а Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этоозначает экспоненциальное ускорение.

Я постарался писать эту статью с минимальным числом формул, но все же совсем без них нельзя. Также в квантовых вычислениях используется своя нотация линейной алгебры. Сложно сказать, хорошо это или плохо, но я буду использовать именно Дираковскую нотацию, так как во всех других источниках и научных работах будет именно она, — лучше привыкать к ней с самого начала. Сразу скажу, что ничего страшного в статье не будет, и все формулы я буду пытаться максимально пояснять словами.

Основа QML

Как я уже говорил, основной «строительный блок» в QML — это Variational Quantum Circuit. Их мы детально рассмотрим чуть позже, но в целом любая статья или любой новый алгоритм по QML будет так или иначе содержать набор VQC или их вариаций. Такие блоки не являются чисто квантовыми схемами, и в этом они сильно отличаются, например, от широко известных квантовых алгоритмов Шора или Гровера. В основном QML строится по «гибридной» схеме, когда у нас есть параметризованные квантовые схемы, такие как VQC, и они составляют собой «квантовую» часть. «Классическая» часть обычно отвечает за оптимизацию параметров квантовых схем, например, градиентными методами, так, чтобы VQC, подобно слоям нейронных сетей, «выучивали» нужные нам преобразования входных данных. Именно так построена библиотека Tensorflow Quantum, где квантовые «слои» сочетаются с классическими, а обучение происходит как в обычных нейронных сетях.

Variational Quantum Circuit

VQC — это простейший элемент систем квантово-классического обучения. В минимальном варианте представляет собой квантовую схему, которая кодирует входным вектором данных Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этоквантовое состояние Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это$» data-tex=»inline»> и далее применяет к этому состоянию параметризованные параметрами Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этооператоры. Если проводить аналогию с обычными нейронными сетями, то можно представить себе VQC как некий «черный ящик», или «слой», который выполняет преобразование входных данных Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этов зависимости от параметров Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это. И тогда, можно сказать, что Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это— это аналог «весов» в классических нейронных сетях.

Вот так выглядит простейшая VQS, где вектор Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этокодируется через вращения кубитов вокруг оси Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, а параметры Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этокодируют вращения вокруг оси Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это:

Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это

Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это

Мы можем «вращать» состояние Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это$» data-tex=»inline»> нашего кубита, применяя специальные однокубитные операции, так называемые гейты Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, соответствующие поворотам относительно разных осей сферы Блоха. Мы будем поворачивать каждый кубит, например, по оси Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этона угол, определяемый соответствующей компонентой входного вектора Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это.

Получив квантовый входной вектор, мы хотим теперь применить к нему параметризованное преобразование. Для этого мы будем «вращать» соответствующие кубиты уже по другой оси, например, по Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этона углы, определяемые параметрами схемы Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это.

Это наиболее простой пример VQC, и, как мы увидим дальше, есть более сложные модификации, но суть у всех приблизительно одна.

В библиотеке для квантовых вычислений Cirq от компании Google, которой мы будем активно пользоваться, это можно реализовать, например, так:

Тут мы также воспользовались библиотекой символьной алгебры SymPy, просто Cirq позволяет параметризовывать схемы лишь через нее.

Variational Quantum Eigensolver

Основой многих алгоритмов квантового машинного обучения является Harrow-Hasssidim-Loloyd алгоритм (есть препринт в arXiv) для поиска решения систем линейных уравнений. Именно на основе этого алгоритма построен, например, квантовый SVM — наиболее известный и многообещающий алгоритм QML. Однако HHL достаточно сложный и начинать рассказ с него было бы странно. Вместо этого, далее, мы посмотрим как устроен другой алгоритм — Variational Quantum Eigensolver, алгоритм поиска минимальных собственных значений эрмитовых матриц, который лежит в основе HHL.

Почему именно проблема собственных значений? Ответ прост:

Опишем задачу формально.

Дана эрмитова матрица Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, или, другими словами, самосопряженный эрмитив оператор. Требуется найти Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, которое является минимальным собственным значением оператора Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это.

Для решения этой задачи мы воспользуемся так называемой «Вариационной теоремой» (Variational theorem), которая для оператора Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этодает нам следующее:

Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это_<\left | \Psi \right >> = \left \geq \mathbf_0$» data-tex=»display»>

где Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этоэто минимальное собственное значение оператора. По сути тут сказано, что ожидаемый результат измерения оператора Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этов состоянии Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это$» data-tex=»inline»> всегда больше или равен минимальному собственному значению этого оператора. На этом и строится наш процесс:

Таким образом, наш параметризованный вектор Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это$» data-tex=»inline»> каждый раз будет все ближе к первому собственному вектору оператора, а Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этобудет (с погрешностью на оценку ожидания) приближаться к минимальному собственному значению Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это.

Надеюсь, больше понимания станет, когда мы посмотрим, как это выглядит в коде.

Реализация на Tensorflow Quantum

Для начала краткие обозначения импортов:

Этот слой, в том числе, позволяет оценивать ожидаемое значение оператора в каком-то состоянии, а потом еще и градиент по параметрам схемы, параметризировавшей это состояние. Сигнатура у него такая:

Этот слой явно реализует нам для оператора Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этооценку значения оператора в конкретном состоянии по определенному числу измерений:

Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это$» data-tex=»display»>

А параметры в формуле связаны с сигнатурой метода call следующим образом:

ФормулаСигнатура tfq.layers.SampledExpectation.call
Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этоsymbol_values — значения параметров
Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этоcircuit — квантовая схема «готовит» нам состояние
Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этоsymbol_names — связь параметры схемы с symbol_values
Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этоoperators — оператор, например cirq.PauliSum

Параметр repetition не имеет прямой связи с математическим формализмом, но именно он показывает нам насколько хорошо мы оцениваем значение оператора.

Выглядит наша схема так:
Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это

Для примера, найдем минимальное собственное значение оператора Transverse-field Ising, так называемой «квантовой модели Изинга». Этот оператор строится применением операторов Паули (в нашем варианте это будут Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этои Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это) и имеет два «классических» параметра Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это. Параметры Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этона самом деле имеют физический смысл, а сам оператор часто применяют для описания Гамильтонианов реальных физических систем, то есть это не просто абстрактная задача. Но сейчас аспекты физики нас интересуют в меньшей степени. На самом деле любой эрмитов оператор можно определить в терминах матриц Паули, так что выбрав Изинга мы не теряем общности рассуждений.

Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это

Это оператор размерности Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, где Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этоэто число кубитов, на которое он действует. Так как квантовые симуляторы достаточно «прожорливы», а доступ к реальным кубитам в Google Cloud Platform стоит денег, то не будем брать большую размерность Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это. Сейчас нам интересно просто посмотреть, как оно работает, о каком-то превосходстве квантовых алгоритмов на реальных задачах речи не идет. Запишем реализацию этого оператора в коде Cirq.

Хотелось бы еще раз обратить внимание на тот факт, что для Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этокубитов оператор TFI это матрица размера Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это(а не Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, как можно было бы подумать!) Чтобы убедится в этом, ниже, под спойлером, будет код определения такого же оператора на чистом NumPy в виде разреженной комплексной матрицы:

Рассмотрим, например, оператор Паули Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это. Согласно определению, это матрица Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это:

Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это

Но, как можно было заметить, у нас система из Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этокубит, а оператор, который действует на такую систему, это оператор размерности Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это. Чтобы понять, как мы от матрицы Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этопереходим к матрице Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, рассмотрим оператор Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, который действует на Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это-й кубит в системе. Это эквивалентно тому, что мы действуем оператором Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этона Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это-й кубит, а на остальные мы действуем единичными операторами Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это. Запишем это явно, используя произведение Кронекера Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это:

Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это

Определив схожим образом другие матрицы Паули, мы можем определить наш TFI оператор просто через операции привычной линейной алгебры:

Это как раз и будет наша матрица Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это. В лоб перемножать матрицы не самый эффективный метод, моя реализация наивная, но идейно это то же самое, что происходит в Cirq.

Как я уже писал, минимальное собственное значение этого оператора мы легко найдем «классическими» методами (например, алгоритм Арнольди) в пару строчек кода, используя готовые рутины:

Мы тут берем реальную часть, потому что из квантовой физики мы точно знаем, что собственные значения квантовых операторов реальные, так как они являются еще и потенциальными результатами измерений. Например, в физике, собственное значение оператора TFI соответствует энергии в эВ, то есть реальной физической величине.

Это значение нам потом пригодится для оценки того, куда и как сходится наш квантовый алгоритм.

Ну и наконец самое интересное, код для обучения нашей VQC на Tensorflow Quantum.

lr тут это параметр, отвещающий за скорость градиентного спуска и являющийся гиперпараметром.

Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это
Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это

Это уже «привычные» всем специалистам по машинному обучению картинки Tensorboard. Можно видеть, как собственное значение хорошо сходится к точному, а градиенты идут к нулю.

Внимательный читатель мог заметить, что решение VQC оказалось «ниже» решения прямой диагонализации. Я думаю причин тут две:

Думаю, что основной фактор — это все же первый пункт, но не берусь утверждать точно. Возможно, кто-то в комментариях подскажет версию лучше.

Еще пара слов о потенциале такого Eigensolver-а

Несмотря на «игрушечность» примера с 5-ю кубитами, я бы хотел еще раз напомнить, что мы работаем с матрицей Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это. Более того, в сравнении с классическими методами глубокого обучения, сама идея о том, что мы параметризуем преобразование Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этопри помощи всего лишь Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что этопараметров (в нашем случае ровно Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это) выглядит очень перспективно. Для сравнения — в классическом глубоком обучении такое преобразование кодировалось бы квадратной матрицей весов Квантовое обучение что это. Смотреть фото Квантовое обучение что это. Смотреть картинку Квантовое обучение что это. Картинка про Квантовое обучение что это. Фото Квантовое обучение что это, то есть экспоненциально большим числом параметров. При этом в ряде работ было показано, что в сравнении с обычными полносвязными слоями нейронных сетей VQC даже более «выразительны» при столь меньшем числе параметров! Именно этим, как мне кажется, обусловлен такой живой интерес к этой области: если бы имели бы реальный квантовый компьютер, QML на основе таких VQC, вероятно, были бы гораздо круче классических нейронных сетей во многих задачах.

Заключение

Несомненно, сейчас не идет речи о каком-то реальном применении QML. Для сравнения — наша VQC обучалась около 45 секунд на моем ноутбуке, а scipy.sparse.eigs потребовались доли секунд, чтобы найти минимальное собственное значение. К тому же, даже на симуляторе, где нет шума, оценка tfq.layers.SampledExpectation явно «хромает», что уж говорить о реальных квантовых компьютерах. Но сейчас очень многие частные компании, такие как Google, IBM, Microsoft и другие, а также правительства и институты тратят огромные ресурсы на исследования в данном направлении. Квантовые компьютеры уже сегодня доступны для тестирования в облачных серверах IBM и AWS. Многие ученые высказывают уверенность в скором достижении квантового превосходства на практических задачах (напомню, превосходство на специально выбранной «удобной» для квантового компьютера задаче было достигнуто Google в прошлом году). Все это, а также таинственность и красота квантового мира, делает эту область такой привлекательной. Надеюсь, эта статья поможет и вам погрузиться в дивный квантовый мир!

Весь используемый код можно посмотреть в моем GitHub.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *