Прежде чем углубляться в алгоритмы квантового машинного обучения, вам необходимо овладеть основами

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

Вы можете присоединиться к еженедельному челленджу здесь.

Цель машинного обучения - научить машину предсказывать значение неизвестной переменной. Но прежде чем предсказать значение переменной, мы обычно стремимся найти ее распределение вероятностей. Распределение вероятностей - это функция, которая описывает все возможные значения и вероятности, которые может иметь переменная.

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

p обозначает вероятность 0. Поскольку существует только два возможных значения, мы знаем, что всякий раз, когда значение не равно 0, оно должно быть равно 1. А поскольку все вероятности в сумме должны составлять 1 (= 100%), мы знаем, что вероятность 1 равна 1-p.

Задача состоит в том, чтобы создать квантовую систему, воспроизводящую распределение Бернулли с заданным p. p может быть любым действительным значением от 0 до 1 (включая).

Например, если p = 0,3, квантовая система должна давать следующее распределение.

Сложная часть задачи состоит в том, как заставить кубит представлять конкретное распределение.

Это можно сделать разными способами. Во-первых, вы можете указать амплитуды состояний кубита во время инициализации. Но вы должны помнить, что вы указываете амплитуды, а не вероятности. Если вы начнете с вероятностей, вам нужно вычислить их квадратные корни, чтобы получить амплитуды. Обычно для кубита 𝜓 = 𝛼 | 0⟩ + 𝛽 | 1⟩ мы должны гарантировать, что
| 𝛼 | ² + | 𝛽 | ² = 1.

В следующем фрагменте кода показано это решение.

Второй способ использует угол 𝜃 между базовым состоянием | 0⟩ и вектором состояния кубита | 𝜓⟩. Он контролирует результирующие амплитуды и, следовательно, вероятности. Следующий фрагмент кода вычисляет 𝜃 для заданной вероятности, учитывая, что кубит, к которому вы хотите применить его, находится в состоянии | 0⟩. Вы можете использовать вентиль 𝑅𝑌, чтобы соответствующим образом повернуть вектор состояния кубита. Вот соответствующий код.

Вывод

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

Но если начать с простого, все станет намного легче понять.

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

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