Обучение с помощью TensorFlow Quantum

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



Квантовое машинное обучение
Видеолекция и слайды встречи TWiML medium.com



Этот отход проявился в первую очередь как глубокое погружение в библиотеку TensorFlow Quantum, своего рода расширение известной библиотеки TensorFlow для обучения нейронных сетей. Прогресс, достигнутый в этой области с той презентации 2018 года, был значительным, и почти каждый уголок машинного обучения теперь находит какое-то теоретическое утверждение, закрепленное в QML. Интересно, что это развитие QML шло по той же траектории, что и путь, впервые пройденный десятилетия назад с классическим машинным обучением, поскольку ранними ветвями для создания плацдармов были такие приложения, как алгоритмы кластеризации, методы ядра, основные компоненты и тому подобное. Общим сходством между этими методами было использование квантовых алгоритмов, которые могли ускорить операции линейной алгебры, такие как вычисление собственных значений, с использованием квантовых алгоритмов, таких как HHL или QSVT. Другие приложения могут использовать алгоритмы квантовой оптимизации, такие как QAOA. Конечно, хотя эти ускорения были продемонстрированы в теории, их потенциал на практике был несколько ограничен в реальности текущих поколений аппаратного обеспечения квантовых вычислений на основе вентилей, которые все еще находятся в эре NISQ (шумный квант промежуточного масштаба), не имея достаточной устойчивости к шуму для достижения шкала отказоустойчивости, позволяющая исправлять ошибки.

Библиотека TensorFlow Quantum обходит эту проблему, применяя NISQ-совместимые структуры QML, которые более близко подходят к современным парадигмам глубокого обучения, хотя эти сходства не являются прямыми аналогами, поскольку сети, построенные на основе схем квантовых вычислений, имеют некоторые фундаментальные различия в их реализациях по сравнению в нейронные сети. В этом эссе будут рассмотрены основы библиотеки путем обсуждения исходной статьи: TensorFlow Quantum: программная среда для квантового машинного обучения Майкла Бротона и др. Фактически, это эссе можно рассматривать как дополнение к статье, проводя обсуждения, основанные на моем обзоре статьи и вспомогательных тетрадях для учебных пособий.

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

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

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

Итак, если мы не используем слоистые нейроны весов и функций активации, как это можно считать нейронной сетью? Ответ заключается в том, что для состояний наших кубитов следствием весов нейронной сети будут приложения с параметризованными вентилями, в которых эти параметры управляют величиной или направлением вращения сферы Блоха. Конечно, не все наши шлюзы нужно параметризовать, они могут перемежаться одно- и многокубитными взаимосвязями вентилей, служащих каркасом для условных взаимодействий между узлами. Это приводит к большому различию между квантовыми и классическими нейронными сетями, использованию плотно связанных слоев, где в классических сетях общим для всех узлов на уровне является то, что каждый из них связан со всеми узлами на предыдущем уровне, в наших квантовых сетях мы более ограничены глубиной приложений вентилей на оборудовании NISQ, поэтому может оказаться, что каждый уровень вентилей взаимодействует только с соседними кубитами, а не все для всех. Этот уменьшенный информационный поток компенсируется глубиной информационной емкости многокубитовых суперпозиций.

Реализованной стробированной сети затем может быть предоставлена ​​форма контролируемого обучения, чтобы соответствовать параметризованным наборам вентилей, чтобы в результате возвращаемая суперпозиция была более согласована с нашим целевым состоянием в зависимости от входных данных. Однако мы можем обнаружить, что этих параметризованных вентилей самих по себе недостаточно, чтобы полностью охватить широту представлений функций преобразования, особенно с учетом необходимости преодоления шумного оборудования. Архитектуры, рассматриваемые в статье TensorFlow Quantum, решают эту проблему путем интеграции классических сетей, смешанных с параметризованными вентилями, в том, что они называют гибридными квантовыми классическими нейронными сетями (HQCNN).

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

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

Когда приходит время вычислять градиенты для параметров квантового слоя, оказывается, что не существует единого идеального решения, которое можно было бы применять универсально, как в случае с обратным распространением распространения в классических нейронных сетях. Хотя некоторые варианты градиентного спуска доступны для использования, они могут быть неадекватными для некоторых конфигураций ворот из-за неадекватного сигнала градиента, концепция, называемая «бесплодные плато» - вроде как QNN, эквивалентная проблеме исчезающего градиента в повторяющихся сетях, хотя это просто вольная аналогия, здесь это скорее продукт экспоненциальной размерности. Фактически, в дополнение к средствам адресации, таким как определенные структуры конфигураций и инициализаций вентилей, библиотека даже имеет форму вычислений вариационного градиента, в которые встроено отсечение вентилей, чтобы уменьшить размерность, когда поверхность бесплодных плато. Насколько я понимаю, это скорее проблема с рандомизированными конфигурациями вентилей (вроде тех случайных конфигураций, которые применялись в недавней демонстрации квантового превосходства Google).



TensorFlow Quantum интегрируется с некоторыми существующими библиотеками для сборки гибридных квантовых классических нейронных сетей. Можно подумать, что есть три основных строительных блока:

Цирк

Думайте о Cirq как о интерфейсе для взаимодействия с квантовым компьютером. С помощью приложения мы можем заполнить квантовую схему инициализированными кубитами, вентилями и операторами измерения. Мы даже можем параметризовать ворота - где параметры инициализируются как символы с помощью Sympy и заполняются с помощью Cirq. При инициализации операторов измерения можно применять матрицы Паули (например, X, Y, Z) для установки основы измерения. После выполнения этих инициализаций (и я немного упрощаю для повествования) агрегированную параметризованную схему можно передать в TensorFlow Quantum для преобразования в тензор.

TensorFlow Quantum

Тензорный перевод параметризованной модели Cirq - это не совсем тензор данных, с которым вы, возможно, знакомы в нейронных сетях, он фактически служит строковым типом данных, своего рода кодировкой квантовой схемы, с которой можно действовать в способ, аналогичный тому, как TensorFlow действует с числовыми тензорами. Таким образом, абстракция состоит в том, что мы можем думать о закодированном объекте Cirq как о тензоре для целей обучения и вывода путем включения в слой «PQC» гибридной квантовой классической нейронной сети (обозначающей параметризованную квантовую схему). Когда приходит время тренироваться, преобразование тензоров слоя PQC в классические состояния для вычислений градиента или вывода может быть достигнуто одним из двух способов. Во-первых, для квантовых схем разумного масштаба TensorFlow Quantum имеет встроенный симулятор квантового компьютера - не просто симулятор, он на самом деле намного более эффективен, чем то, что доступно в Cirq (в документе есть несколько впечатляющих тестов). Или, конечно, если вам повезло, и у вас есть доступ к собственному квантовому оборудованию Google, которое, я уверен, со временем станет более широко доступным в Google Cloud, ну, это plug and play.

TensorFlow

Остается третья ветвь дерева. Используемый здесь TensorFlow - это, конечно, то же самое, что и всем известная надежная полнофункциональная платформа. И, как хотелось бы надеяться, если вы предпочитаете работать на полностью поддерживаемом уровне абстракции Keras. Интеграция между TFQ и TF выглядит довольно гладкой, где можно применить параметризованные квантовые схемы в качестве входных данных строкового типа для модели TF, и наоборот, или, черт возьми, можно даже чередовать уровни между TF и ​​TFQ. Это такая модульная. Причина, по которой квантовые схемы могут быть смешаны с классическими слоями, заключается в том, что вы не распространяете градиенты между комплексными числами, статистика операторов измерения вместо этого собирается оператором ожидания, например, в простейшем случае это могут быть средние значения повторений измерений, выполненных в некоторая основа Паули - таким образом, даже при наличии квантовой архитектуры интерфейсы TFQ / TF распространяются как классический сигнал.

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

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

использованная литература

Майкл Бротон, Гийом Вердон, Тревор МакКорт, Антонио Дж. Мартинес, Чже Хён Ю, Сергей В. Исаков, Филип Мэсси, Мерфи Юэчжен Ню, Рамин Халавати, Эван Питерс, Мартин Лейб, Андреа Сколик, Майкл Стрейф, Дэвид фон Доллен, Джаррод Р. МакКлин, Серхио Бойшо, Дэйв Бэкон, Алан К. Хо, Хартмут Невен и Масуд Мохсени. TensorFlow Quantum: программная среда для квантового машинного обучения. (март 2020 г.) arXiv: 2003.02989

* Изображения QML здесь используются с разрешения и авторских прав авторов TensorFlow Quantum.

* Изображения НАСА сделаны миссиями "Джуно" и "Хаббл"

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

О да, прежде чем вы отправитесь, ознакомьтесь с Automunge для автоматической подготовки данных для табличного обучения: automunge.com