Практическое квантовое машинное обучение

Хотите начать работу с квантовым машинным обучением? Взгляните на Практическое обучение квантовому машинному обучению с помощью Python.

Оптимизация — не только важная часть алгоритмов машинного обучения. Это также само по себе решение многих промышленных проблем. Есть вездесущие примеры приложений, требующих нахождения оптимального объекта из конечного набора вещей.

Квантовые вычисления манят экспоненциальным ускорением решения задач. Однако есть проблема. Мы не можем просто поставить задачу в квантовый алгоритм, и все в порядке.

Чтобы использовать квантовый алгоритм, мы должны сформулировать нашу задачу так, чтобы квантовый алгоритм мог работать. Мы должны закодировать проблему, которую хотим решить, в кубиты.

Но как мы это делаем? Как закодировать задачу оптимизации в кубиты?

Конечно, есть множество способов сделать это. Одним из вариантов является квантовый оракул.

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

Проще говоря, оракул позволяет вам отвечать на вопросы «да» или «нет» и на вопросы с несколькими вариантами ответов.

Но задачи оптимизации бывают разные. Мы не ищем правильный ответ. Мы не хотим навешивать ярлыки на что-то неизвестное. Но мы стремимся найти лучшее среди множества подходящих решений.

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

Итак, давайте посмотрим, как мы можем это сделать.

Кубит — это квантово-механическая система, а значит, она работает по законам субатомного мира. Субатомные вещи отличаются от традиционных тем, что они имеют волнообразные и корпускулярные характеристики. Это известно как корпускулярно-волновой дуализм.

Это не означает, что субатомная вещь, такая как электрон, является волной. Но это частица со специфическими характеристиками, поведение которой в некоторых ситуациях лучше объяснить с помощью функции, которая обычно используется для описания волн.

Итак, как ведет себя волна? В общем, волна движется вверх и вниз по мере своего движения. Так что это не что-то статичное. Наоборот, со временем он меняется. Однажды мы видим волну на ее гребне в определенное время и в определенном месте. Затем, в другое время и в другом месте, она находится на среднем уровне.

Итак, когда вы смотрите на волну в одной точке, вы можете увидеть совершенно разные вещи. И это именно то, что мы испытываем при работе с кубитами. Когда мы смотрим на два похожих кубита, мы можем поймать их в разных точках их траектории и, следовательно, измерить их как два разных значения. Когда мы видим один кубит на вершине, это 1. Когда мы ловим второй кубит в среднем, это 0.

То, что мы видим, это не полная волна. Это снимок волны. А вот что Макс Борн сформулировал в своем постулате в 1926 году:

Это прямое следствие нормализации состояния кубита.
Здесь сказано, что |α|²+|β|²= 1 для состояния кубита.

𝛼 и 𝛽 обозначают величины волны в двух разных точках, абсолютные квадраты которых определяют вероятность поймать волну в этой точке. Эти две точки соответствуют вычислительной базе кубита — двум его возможным значениям, 0 и 1. Вероятность всех возможных измерений должна быть равна 1 (=100%).

На следующем изображении это показано графически. 𝛼 и 𝛽 представляют близости к базисным состояниям.

Следовательно, работа с кубитами по своей сути вероятностна. Но это не значит, что оно случайно. Напротив, мы можем очень хорошо работать с кубитом. Мы используем квантовые операторы, чтобы перевести его в состояние, в котором определенные измерения более вероятны, чем другие.

Квантовые операторы преобразуют одно состояние кубита в другое. Возьмем, к примеру, оператор НЕ.

Математически квантовый оператор X-ворота представляет собой матрицу:

Когда мы применяем этот оператор к различным состояниям кубита — мы умножаем соответствующую матрицу преобразования на вектор состояния — мы видим, что он меняет местами амплитуды |0⟩ и |1⟩.

Обратное состояние |0⟩ приводит к |1⟩:

Обратное состояние |1⟩ приводит к |0⟩:

Как правило, он обращает любое произвольное состояние:

Кроме того, мы можем комбинировать квантовые операторы для создания любого произвольного состояния — если это допустимое состояние кубита. Мы можем создать систему кубитов, которая демонстрирует любые вероятности измерения, которые нам нравятся.

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

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

Итак, нам нужно следовать другому подходу. И в этом подходе мы будем использовать операторы по-другому.

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

Например, гамильтониан является одним из таких операторов. Он описывает возможные энергии квантовой системы. И энергия не является булевой величиной. Это реальное число. Следовательно, мы можем сравнить две энергии и решить, какая из них больше.

Таким образом, когда мы формулируем целевую функцию, которую мы стремимся оптимизировать, в виде гамильтониана, энергия этой системы соответствует производительности решения. Затем оптимизация представляет собой поиск наименьшей (или наибольшей) энергии системы.



Не пропустите следующий выпуск и подпишитесь на мой Substack channel.

Хотите начать работу с квантовым машинным обучением? Взгляните на Практическое обучение квантовому машинному обучению с помощью Python.

Получите первые три главы бесплатно здесь.