Хорошо,

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

Несколько замечаний: в этой серии я предполагаю, что у вас есть некоторые базовые знания в области машинного обучения и, возможно, некоторые начальные знания в области квантовых вычислений… Как упоминалось в моем предыдущем блоге, все это обсуждение будет иметь сделать с подходом CQ (классическая генерация данных, устройство квантового обучения) к QML.

Прежде чем перейти к теме, давайте рассмотрим этапы алгоритма контролируемой квантовой обучающей машины:

Математически (двоичный) квантовый классификатор состоит из трех четко определенных функций:

(i) Функция кодирования:

(ii) Государственная эволюционирующая функция:

(iii) Правило принятия решения:

Кодирование данных:

Можно задаться вопросом, как тот парень, который однажды начал обсуждать со мной QML —

Ну, мы не можем, Патрик… Вы не можете просто взять классические данные и каким-то образом передать их в qModel, чтобы решить свою проблему ML… Ваш мир отличается от того, в котором работает ваша модель QML, вы должны что-то сделать хотя бы в точка встречи… что очень важно для модели QML, и на него всегда следует равняться.

В первых нескольких сериях мы обсудим различные методы кодирования данных (обычно используемые), которые предлагались с давних времен (потерпи меня, Патрик, поверь мне, это важно). К ним в основном относятся:

Базовое кодирование

Вычислительное базовое состояние n-кубитной системы связано с классической n-битной системой. Каждый классический бит буквально заменяется кубитом, и вычисления действуют параллельно на все битовые последовательности в суперпозиции.

Амплитудное кодирование

Как видно из названия, он связывает классическую информацию в реальном векторе (который должен быть нормализован) с квантовыми амплитудами. По сути, это то, что происходит: (x — нормализованный классический вектор)

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

В любом случае, этот метод кодирования имеет серьезные ограничения:

  • Мы не можем выполнять нелинейные операции, т.е. неунитарные операции.
  • Это кодирование существенно уменьшает степень свободы от исходных данных при представлении в виде нормализованных амплитуд. (Я оставлю это вам, чтобы понять это. Подсказка: нормализованные данные в 2-D имеют координаты: (cosθ, sinθ))

Кодирование Qsample

Учитывая классическое дискретное распределение вероятностей по 2^n двоичным строкам, p[1], . . . . . . , p[2^n], квантовое состояние n-кубитной квантовой системы может быть задано как:

Это квантовое состояние иногда называют qsample. Возможно, об этом в следующих сериях…

Динамическое кодирование

Поскольку унитарные операторы ограничивают класс матриц, которые они представляют, полезно связать гамильтониан H с квадратной матрицей A. В случае, если A не является эрмитовым, вместо этого можно использовать прием кодирования

и только с учетом части вывода.

Угловое кодирование

По сути, классический вектор представлен в квантовой системе с N кубитами в виде фазовых углов (по одному на каждый кубит) квантового состояния.

Это может иметь больше смысла при математическом написании…
Учитывая вектор признаков x = [x1, . . . . . , xN]T, отображение углового кодирования задается следующим образом:

Этот метод был принят во многих недавних работах и, кажется, привлек довольно много внимания.

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

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

Базовое кодирование

Стратегия была введена Вентурой, Мартинесом и другими: «Квантовая ассоциативная память» и «Вероятностная квантовая память».

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

Сразу же нам нужна квантовая система вида:

Я могу объяснить: есть три регистра — первый — регистр загрузки N кубитов. Следующий, вспомогательный регистр (вспомогательный регистр), — это, по сути, регистр, значения которого вы считаете мусором в конце дня. Следующим в списке идет регистр хранения N-кубитов. Вы поймете, почему так, через минуту…

Операция 1: Адамар на 2-м кубите вспомогательного регистра

После применения вентиля Адамара ко второму кубиту вспомогательного регистра начальное квантовое состояние будет разделено на две «ветви» (состояния суперпозиции):

Теперь алгоритм будет происходить следующим образом:

Итеративно шаблоны загружаются в регистр загрузки, а ветвь обработки ловко разделяется еще на две ветви, чтобы добавить шаблон в ветвь памяти. Таким образом, суперпозиция паттерна расширяется шаг за шагом.

Чтобы быстро объяснить, что происходит, я объясню (m+1)-ю итерацию.

Предположим, что первые m векторов уже закодированы после 1,...,m итераций. Состояние будет выглядеть так:

Все m векторов были сохранены в регистре хранения ветви памяти (каждый образец в суперпозиции).

Операция 2: Запись (m+1)-го шаблона в регистр загрузки (конечно, обе ветви)

Это можно сделать, применив вентиль X к кубитам регистра загрузки, где биты не равны нулю во входном шаблоне.

Операция 3: Скопируйте шаблон в регистр хранения ветви обработки, используя вентили CNOT.

Образец копируется в регистр хранения ветви обработки. Чтобы контролировать, что затрагивается только ветвь обработки, вентили CNOT управляются вторым вспомогательным битом (a2). Государство становится:

Операция 4: перевернуть a1 на 1 ветви обработки

Сделайте это, используя ворота CNOT, контролируемые a2.

Операция 5: Примените специальную унитарную единицу к a2, контролируемой a1 (это по сути разделяет ветвь обработки)

Примените следующий унитар к a2, когда a1=1, то есть только к обрабатывающей ветви:

где ц = М + 1 — (т + 1).

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

Операция 6: Добавляем нужную ветку в ветку памяти

Теперь все, что нам нужно сделать, это добавить первую подветвь ветви обработки в ветвь памяти. Это можно сделать, просто перевернув регистр a1 первой подветви, используя (обратный) вентиль CNOT, обусловленный a2=0 (т. е. перевернув a1 вверх дном, если a2=0).

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

ПРИМЕЧАНИЕ. Весь этот алгоритм требует O(MN) шагов для гарантированного успеха.

Было много интересных архитектурных предложений для квантовой памяти с произвольным доступом. Один из них был представлен в статье (2008 г.) Квантовая оперативная память. Но все же аппаратная реализация пока остается проблемой,

Хорошо, на этом пока все… Я скоро вернусь (надеюсь, скоро все будет хорошо) с другим эпизодом из серии, возможно, с другим методом кодирования или, может быть, на этот раз с чем-то другим.

Я закончу небольшой цитатой из Ричарда Фейнмана.

Каждому человеку дан ключ от ворот рая. Тот же ключ открывает врата ада. Так и с наукой.

— Картик Ананд

Очень ценю, что вы читаете этот блог. Оставьте комментарий ниже, если у вас есть какие-либо вопросы, отзывы, предложения или исправления. Скоро вернусь с другим блогом из этой серии или, возможно, с чем-то по генеративному моделированию... А пока продолжайте учиться и не пейте, ребята!