Как стать автором
Обновить
0

Сократить время вычислений от нескольких лет до минут. Разбираемся с квантовым машинным обучением

Время на прочтение9 мин
Количество просмотров10K
Я давно интересуюсь квантовыми вычислениями и пишу программы для 5- и 14-кубитных квантовых компьютеров IBM Q Experience. Сегодня я расскажу о технологиях, которые можно будет применять в машинном обучении после того, как квантовые вычисления завоюют мир. Спойлер для дата сайентистов: в будущем у вас не получится запустить модель и уйти пить кофе на полдня. Квантовый компьютер щелкает задачи машинного обучения на раз, и отговорки вроде “модель обучается” уже не пройдут. Придется запускать не одну модель, а по меньшей мере миллион.

image

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

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

Что такое квантовое машинное обучение и в чем его отличие от обычного


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

Для классического бита существуют два состояния — 0 и 1, тогда как для кубита возможно бесконечное количество комбинаций двух состояний — это так называемая суперпозиция. Если кот Шрёдингера из известного мысленного эксперимента до того, как открывают ящик, и жив, и мертв одновременно, то кубит до того, как его измерить, может находиться в суперпозиции, то есть равняться и нулю, и единице в один и тот же момент.

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

$|ψ\rangle = k_1|00\rangle + k_2|01\rangle + k_3|10\rangle + k_4|11\rangle$



А для трех кубитов — уже восемь состояний:

$|ψ\rangle = k_1|000\rangle + k_2|001\rangle + k_3|010\rangle + k_4|011\rangle + k_5|100\rangle + k_6|101\rangle + k_7|110\rangle + k_8|111\rangle$



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

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

image

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

Как частица может находиться в двух состояниях одновременно и почему при измерении кубита информация об одном из состояний полностью теряется? Наиболее распространены две интерпретации:

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

Часть ученых придерживается многомировой интерпретации, согласно которой существует бесконечное множество параллельных вселенных, причем в какой-то доле этих вселенных частица может принимает нулевое состояние, а в остальных — единичное. Наиболее подробное описание и философское обоснование многомировой интерпретации можно найти в книге Дэвида Дойча “Структура реальности”.

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

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

Для того, чтобы все-таки получить хоть какую-то информацию о суперпозиции кубита, можно применить довольно простой лайфхак: много раз создавать одну и туже суперпозицию (действовать на кубит одними и теми же операторами) и каждый раз измерять кубит. Из полученного при измерениях распределения нулей и единиц можно получить представление о вероятностях, то есть узнать, чему могут быть приблизительно равны модули амплитуд состояний кубитов.

В чем преимущества квантового машинного обучения


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

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

Нужно также понимать, что алгоритмы, которые использует квантовый компьютер, отличаются от алгоритмов, изучаемых в разделах Computer Science, посвященных классическим компьютерам. Разумеется, нельзя перенести классический алгоритм в квантовый компьютер, не изменив его предварительно. Причем вряд ли от первоначального алгоритма останется что-то существенное. Скорее всего, он будет основательно изменен, так что от него останется только общая идея (если вообще что-то останется).

То же самое можно сказать и про машинное обучение. Для квантовых компьютеров уже существуют аналоги классических алгоритмов машинного обучения (например, Random Forest, KNN, нейронные сети). Но, во-первых, реализованы они по-другому, а во-вторых, скорее всего, рано или поздно появятся абсолютно новые алгоритмы, которые будут в полной мере использовать выгодные стороны квантовых вычислений.

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

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

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

Почему искусственный интеллект нуждается в ускорении алгоритмов


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

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

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

Механизмы квантовых вычислений


В качестве кубита может выступать фотон, электрон, ион либо какая-то еще частица. Если это электрон, то можно измерить его спин (собственный момент импульса) и так получить 0 или 1. В обозначении Дирака эти состояния обозначаются таким образом:

$|0\rangle, |1\rangle$



Состояние кубита можно выразить также с помощью вектора. Это вектор состояния кубита, равного 0:

$|0\rangle = \begin{bmatrix} 1 \\ 0 \end{bmatrix}$



А это вектор кубита, равного 1:

$|1\rangle = \begin{bmatrix} 0 \\ 1 \end{bmatrix}$



Важную роль в квантовых вычислениях играет оператор Адамара:

$H_1 = \frac{1}{\sqrt{2}} \begin {bmatrix} 1 & 1 \\ 1 & -1 \end {bmatrix}$



Один из способов получить суперпозицию — применить к кубиту, находящемуся в одном из двух базисных состояний, оператор Адамара. В этом случае мы получим такое состояние кубита, когда вероятности получить 0 или 1 после измерения равны. Вот так будет получена суперпозиция в том случае, если изначальное состояние кубита — нулевое:

$ \\ H_1 \cdot |0 \rangle = \frac{1}{\sqrt{2}} \begin {bmatrix} 1 & 1 \\ 1 & -1 \end {bmatrix} \cdot \begin {bmatrix} 1 \\ 0 \end {bmatrix} = \frac{1}{\sqrt{2}} (|0 \rangle + |1 \rangle) $



А вот такая суперпозиция получится, если начальное состояние единичное:

$ \\ H_1 \cdot |1 \rangle = \frac{1}{\sqrt{2}} \begin {bmatrix} 1 & 1 \\ 1 & -1 \end {bmatrix} \cdot \begin {bmatrix} 0 \\ 1 \end {bmatrix} = \frac{1}{\sqrt{2}} (|0 \rangle - |1 \rangle) $



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

Какие сейчас возможности квантовых вычислений и квантового машинного обучения


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

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

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

Для того, чтобы представить это изображение в виде чисел, закодируем каждый пиксель 64-битным числом с плавающей запятой (на самом деле хватило бы и 8-битного целого числа, но на практике матрицу со значениями пикселя масштабируют перед подачей на вход нейросети, так что матрица заполняется 32- или 64-битными числами). Такое изображение может быть представлено в виде матрицы из 65536 чисел, которая будет весить 512 килобайт (нейронная сеть принимает на вход несжатое изображение), то есть потребуется 4194304 бит.

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

Как видите, действия достаточно простые, так что даже не приходится писать формулы. В итоге число n получается равным 16. Именно столько потребуется кубитов, чтобы закодировать данное изображение, то есть в 262144 раз меньше, чем при использовании классических битов.

Если в нашем распоряжении есть 66 кубитов, то переведя их в суперпозицию, можно закодировать более триллиона цветных изображений в формате 4K.

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

Специализированные языки программирования и библиотеки


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

Если оперировать непосредственно кубитами, то это сродни написанию низкоуровневого кода на Ассемблере на классических компьютерах. Как ни странно, одним из таких “низкоуровневых” языков программирования, используемых для программирования вычислений на квантовых компьютерах, стал Python.

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

Перспективы квантовых вычислений


В январе 2019 года был выпущен первый коммерческий квантовый компьютер — IBM Q System One. Также сейчас для квантовых вычислений можно использовать облачные системы как исследователям, так и коммерческим компаниям.

Каждый желающий может запустить свой квантовый алгоритм на облачной платформе IBM Q Experience, причем для создания квантовой схемы даже не обязательно владеть языками программирования, так как помимо ввода команд можно воспользоваться графическим интерфейсом под названием Circuit Composer.

В сентябре 2019 года появилась неофициальная информация о том, что Google достиг квантового превосходства, решив на квантовом компьютере одну из задач со скоростью, недоступной даже для самого мощного суперкомпьютера. Даже если новость преждевременная, такие сообщения говорят о том, что квантовое превосходство уже близко.

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

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

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

Не меньшие изменений привнесут новейшие технологии и в процесс сканирования целевых аудиторий. Неуловимые боты, руководимые квантовыми компьютерами, будут бороздить просторы социальных сетей, улавливая мельчайшие изменения вкусов и настроений аудитории. Кто знает, может быть, и сами рекламные кампании можно будет запускать, лишь высказав компьютеру общие пожелания об их целях.
Теги:
Хабы:
+14
Комментарии48

Публикации

Информация

Сайт
www.okkam.group
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия

Истории