Это исследование было включено в мою диссертацию, написанную в рамках программы последипломного образования «Математическое моделирование в передовых технологиях и финансах» Школы прикладной математики и физических наук Афинского национального технического университета.
Это исследование направлено на демонстрацию эффективности классических квантовых моделей глубокого обучения при решении задачи классификации с использованием набора данных QM9. Набор данных состоит из информации о молекулах и ограничен примерно 20 тысячами молекул для целей классификации лекарств. Исследование направлено на доказательство квантового превосходства путем сравнения производительности моделей квантового машинного обучения с классическими моделями. Исследование начинается со сравнения методов квантового встраивания, используемых для подготовки набора данных для дальнейшего использования, с другими алгоритмами Quantum, которые анализируются в следующих статьях для СМИ. Под термином квантовое превосходство мы подразумеваем квантовое преимущество, обеспечиваемое при решении вычислительных задач, когда кто-то использует квантовый компьютер.
Все алгоритмы были протестированы на моделировании квантовых компьютеров с помощью пакета Cirq от Google, пакета Pennylane, ориентированного на Quantum ML, и пакета с открытым исходным кодом Qiskit, предоставленного IBM. Важно знать поведение квантовых компьютеров, потому что, когда придет время, мы сможем построить более сложные архитектуры, чтобы проверить их производительность и использовать их.
Статья — Содержание
Если вы хотите перейти к определенным частям статьи, вы можете использовать этот маршрут.
- Кодирование данных для задач QML — общее представление о том, как это работает.
- Методы кодирования для ВКК (Вариационных квантовых классификаторов) - Основное сравнение этих методов
- Техника амплитудного кодирования
- Техника углового кодирования
- Экспериментальные результаты — заключение
- Источники
Кодирование данных для приложений QML
Алгоритмы, используемые в квантовом машинном обучении, представляют собой гибридные классические квантовые алгоритмы. Мы должны иметь возможность адаптировать наши входные данные, чтобы их можно было использовать с помощью различных инструментов и библиотек, которые будут использоваться во время реализации, из-за характера этих методов. Для квантовых вычислений классическое кодирование данных имеет решающее значение для общего дизайна и эффективности алгоритма. Под кодированием мы подразумеваем загрузку классических данных в состояние кубитов. Для этого есть различные варианты.
Как правило, в процессе кодирования кубита задан вектор признаков
общее кодирование кубита отображает x в E (x), заданное следующим состоянием:
где,
Кодирование можно разделить на две основные категории:
- Цифровое кодирование,которое представляет собой представление данных в виде строк кубитов. Эта категория наиболее предпочтительна, если данные должны обрабатываться арифметическими вычислениями.
- Аналоговое кодирование,котороепредставляет данные в виде амплитуд состояния. Эта категория наиболее предпочтительна для алгоритмов машинного обучения, таких как отображение данных в большое гильбертово пространство квантового устройства, когда это необходимо.
Начнем с того, что одним из наиболее распространенных методов является базовое кодирование. Когда в квантовом алгоритме необходимо арифметически обрабатывать действительные числа, этот пример более применим. Идеальная цель — представить действительные числа в двоичной системе, а затем преобразовать их в квантовое состояние на вычислительной основе. Однако этот метод непомерно дорог из-за большого количества требуемых кубитов.
Метод кодирования Amplitude — еще один вариант кодирования наших данных. Данные кодируются в амплитуды квантового состояния, как следует из названия метода. Когда нам нужно воспользоваться огромным гильбертовым пространством квантового устройства, этот способ лучше. Это кодирование требует log_2(n) кубитов для представления n-мерной точки данных.
Наконец, следует включить угловое кодирование, или тензорное кодирование произведения, как один из наиболее часто используемых методов кодирования. n классических признаков закодированы в угле поворота n кубита. Для этого требуется один оборот на каждом кубите. Этот метод в основном полезен при обработке данных в квантовых нейронных сетях. Чтобы преобразовать наши данные в совместимый вход для нашей нейронной сети, мы применяем вентиль вращения по оси x или y, RX или RY соответственно. Математически эти преобразования можно записать в виде следующих матриц:
Как было экспериментально замечено, этот метод очень эффективен в операциях. Это происходит потому, что независимо от количества кодируемых значений данных требуется только фиксированное количество параллельных процессов. Однако, поскольку каждый компонент входного вектора занимает один кубит, это также дорого с точки зрения кубитов. Таким образом, с точки зрения реальных систем потребуется оборудование с несколькими кубитами.
В дополнение к вышеупомянутым основным и наиболее часто используемым методам используются другие, более специализированные или комбинированные методы. Во-первых, существует метод кодирования Qsample, который представляет собой комбинацию методов базисного и амплитудного кодирования. Он связывает вектор реальной амплитуды с классическими дискретными распределениями вероятностей. Преимущество в том, что мы используем в основном амплитудную логику, но все признаки закодированы в кубите. Таким образом, мы можем предположить, что большинство из вышеперечисленных вариантов подходят для использования в конкретных случаях, и окончательный выбор метода кодирования очень важен, поскольку он влияет на время выполнения
процесса загрузки.
Уменьшение размерности
Один интересный случай — использование моделей машины опорных векторов для уменьшения размерности входного пространства. Как видно из нескольких исследований в библиографии, этот метод можно использовать для использования архитектуры кубитов. Квантовые алгоритмы можно использовать для выполнения матричных операций и решения полной SVM на квантовом компьютере. Однако, хотя SVM обычно дает многообещающие результаты, наблюдается, что для решения линейных уравнений для решения матрицы ядра с использованием карт признаков требуется значительное время. Наконец, данные сохраняются и могут отображаться на сфере Блоха, где мы можем выполнять операции, используя U(x_A), обозначающую унитарную матрицу, применяемую к входному вектору, и U(θ_A), представляющую унитарную матрицу, применяемую для поворота вектора в сфере Блоха. .
Уменьшение размерности является важной задачей, которую также можно решить с помощью нейронных сетей. Нейронные сети можно использовать для уменьшения размерности путем обучения многослойной нейронной сети восстанавливать многомерные входные векторы с небольшим центральным слоем. PCA является широко используемым методом в классическом подходе, который обнаруживает направления наибольшей дисперсии в наборе данных и представляет каждую точку данных ее координатами вдоль каждого из этих направлений. Многоуровневая сеть кодировщика преобразует данные высокой размерности в код низкой размерности, а аналогичная сеть декодера восстанавливает данные из кода, что является обобщенным подходом. Ограниченная машина Больцмана, двухслойная сеть со стохастическими двоичными пикселями и детекторами признаков, соединенными через симметрично взвешенные соединения, может использоваться для моделирования ансамбля двоичных векторов и присвоения вероятности каждому возможному изображению через функцию энергии.
Одна возможная совместная конфигурация (v,h) видимых и скрытых единиц имеет энергию:
Послойный процесс обучения может выполняться столько раз, сколько необходимо. Каждый векторный слой фиксирует корреляции высокого порядка между действиями единиц на нижнем слое. Затем на этапе глобальной точной настройки стохастическая активность заменяется детерминированной вероятностью с действительным знаком и используется обратное распространение для точной настройки весов для оптимальной реконструкции во всем автоэнкодере. И классификация, и регрессия могут выиграть от послойного предварительного обучения. Было обнаружено, что предварительное обучение способствует обобщению, гарантируя, что большая часть информации о весах поступает из моделирования изображений или, в нашем случае, структур графа.
Методы кодирования для VQC
В этом разделе я стремлюсь изучить различные методы кодирования информации, предоставленной моим набором данных, который является подмножеством базы данных QM9.
Я разработал вариационную квантовую схему для каждого кодирования и использовал 4 из 5 столбцов моего набора данных в качестве цели для реализации базовой двоичной классификации 0 и 1. Используемые классификаторы основаны на столбце, содержащем данные коэффициента logP, и столбец, содержащий атомный номер каждой молекулы. Я решил использовать слой для разработки анзаца, который я буду использовать для этих моделей, и я изучу, как количество слоев влияет на производительность нашей квантовой схемы. Таким образом, все процессы, показанные ниже, можно представить в виде следующих шагов:
1. Предварительная обработка данных,
2. Квантовое вложение классических данных и
3. Обучение многоуровневого вариационного квантового классификатора
Для этого исследования я получаю числовые характеристики для каждой молекулы, которые жизненно важны для понимания их свойств и определяют структуру каждой молекулы. Расчетные характеристики:
- Количество атомов,
- Количество облигаций,
- Атомный номер (Z),
- коэффициент logP,
- Количество одинарных связей и
- Количество двойных связей
Чтобы лучше понять наш набор данных, я предоставляю некоторые дополнительные статистические данные, такие как тепловая карта корреляции функций Пирсона.
и диапазон значений первого столбца
После всей приведенной выше статистики я продолжаю предварительную обработку функций набора данных.
Я начинаю с нормализации столбцов в наборах данных train и test, чтобы они соответствовали диапазону [0,1]. После масштабирования я разделяю тестовый фрейм данных на соответствующий набор функций и метки истинности и замораживаю входные обучающие и тестовые данные. Наконец, я сдвигаю метки истинности с {0, 1} на {-1, 1}, чтобы они соответствовали ожидаемым значениям Z-матрицы Паули. Кроме того, я разделяю свои данные для обучения и тестирования подмножеств, перемешиваю их и разделяю на обучающие и проверочные наборы.
Техника амплитудного кодирования
В качестве первой техники я пробую метод амплитудного кодирования. Поскольку у меня есть 4 функции в моем наборе данных, я решаю использовать 2 кубита, и я использую устройство «default.qubit», предоставленное пакетом pennylane, и я использую выстрелы по умолчанию = 100, сколько раз повторять измерения цепей, чтобы предоставить окончательные результаты. Во-первых, я определяю шаблон слоя как последовательность обучаемых элементов. Это похоже на слои в нейронной сети. Этого можно достичь, используя один кубит для вращения и несколько управляемых вентилей НЕ (CNOT) в качестве запутывающих элементов между парами кубитов. В качестве второго шага я инициализирую квантовое устройство и подготавливаю набор квантовых данных с помощью вентилей Адамара. После инициализации я, наконец, могу встроить свои классические данные в виде квантового состояния в гильбертово пространство и создать свою квантовую модель.
Чтобы иметь возможность измерить эффективность методов, я определяю функцию потерь и, в частности, квадрат функции потерь и точность для модели бинарной классификации. С другой стороны, я определяю модель квантового вариационного классификатора и соответствующую функцию потерь и обучаю модель. Для обучения я инициализирую параметры, количество слоев как 1, начальные веса и начальное смещение модели. Я также использую размер партии = 120, эпохи = 30, скорость обучения = 0,01 для оптимизатора Адама. Выходные веса, которые я получаю, равны
- Как видно из первого графика, точность остается постоянной и равна 38,5%, что довольно плохо, а также убыль имеет линейный порядок убывания вместо x² убывающего поведения. Таким образом, мы делаем вывод, что модель не может классифицировать данные.
- В случае двухслойной модели мы наблюдаем небольшое улучшение, так как точность модели увеличилась примерно на 25% и достигла среднего значения 57,26%. Также функция стоимости ведет себя лучше, поскольку она нисходящая и нелинейная, и кажется, что в последние эпохи она медленно сходится.
- Наконец, для трехслойной модели результаты были аналогичны предыдущему случаю в отношении точности, поскольку она снова достигла 56,595%. Однако функция стоимости становится более гладкой, а сходимость модели более быстрой и плавной.
Таким образом, общий вывод для этого метода заключается в том, что мы не можем достичь очень высокой точности тестирования. Возможно, если бы мы могли использовать более сложный классификатор, он мог бы дать лучшие результаты. Однако мы заметили, что за счет увеличения количества слоев в вариационном классификаторе удается ускорить сходимость модели, а также она становится более плавной. Производительность модели увеличивается. Для конкретного оптимизатора, Адама, при скорости обучения 0,1 мы по-прежнему достигаем более быстрой начальной сходимости, однако, как видно на диаграммах, производительность нестабильна и быстро насыщает. Если мы уменьшим скорость обучения, классификатор будет иметь более медленную, но более плавную сходимость.
Техника углового кодирования
В этом методе я следую точно такому же процессу предварительной обработки для предварительно обученных данных. Большая разница между этой техникой и предыдущей заключается в количестве кубитов, необходимых для реализации. Поскольку в нашем наборе данных есть 4 функции, нам требуется 4 кубита для выполнения кодирования. В угловом кодировании N функций кодируются углами поворота n кубитов, где N ≤ n. При выполнении этой части нашего эксперимента мы помним, что каждое кодирование, по сути, представляет собой компромисс между тремя основными аспектами.
- количество кубитов должно быть минимальным,
- количество параллельных операций должно быть минимальным, чтобы минимизировать ширину квантовой схемы,
- данные должны быть представлены соответствующим образом для дальнейших расчетов.
Я снова начну с однослойной модели. Инициализированные параметры: размер партии = 150, общее количество итераций = 40, скорость обучения = 0,1. Результаты, которые мы получаем, также не очень обнадеживают:
- Я повторяю тот же процесс с теми же параметрами, что и раньше, за исключением скорости обучения, которую мы уменьшили до lr=0,01. Опять же, в этом случае мы видим, что из точности и матрицы путаницы наша модель не может классифицировать наши данные со средней точностью 37%.
Вместо этого мы видим, что функция потерь становится более гладкой и сходится, поэтому мы можем сделать вывод, что здесь что-то не так. Плохая производительность может быть объяснена добавлением слоев в нашу схему, время обучения для каждой эпохи, и модель должна быть обучена для большего количества эпох. Таким образом, мы считаем, что если мы будем обучать нашу модель большему количеству эпох, схема достигнет максимальной точности и превзойдет предыдущие схемы с меньшим количеством слоев. Однако это связано с большими вычислительными затратами, и мы не можем удовлетворить эту потребность в этом процессе.
- После этого я повторил весь первый шаг, чтобы лучше понять, и использовал для кодирования 2 и 3 квантовых слоя соответственно.
Экспериментальные результаты — Заключение
Цель состоит в том, чтобы изучить применение квантовых алгоритмов для анализа и предсказания молекул из большой базы данных, сосредоточив внимание на подмножестве (исходный набор данных из 193000 строк) для выполнения классификации, чтобы помочь в разработке и категоризации молекул. антидепрессанты на основе коэффициента распределения октанол-вода, logP. Мы использовали стратегический поток предварительной обработки с разными входными данными для каждой модели, чтобы оптимизировать производительность. В то время как классические модели использовали эти входные данные для двоичной и многоклассовой классификации, большинство наших квантовых моделей ограничивались двоичной классификацией из-за того, как наши входные данные были преобразованы в битовое представление перед кодированием в квантовые состояния, кубиты.
Мы сравнили два метода квантового встраивания для кодирования входных данных с нашими квантовыми схемами, но оба оказались хуже и достигли максимальной точности 57%. Для преодоления этой проблемы могут потребоваться более мощные устройства, чем симуляторы. Метод кодирования с плотным углом может дать лучшие результаты в этом случае, так как метод углового кодирования работает лучше, чем метод амплитудного кодирования, и лучше подходит для нашего набора данных из-за его пригодности для геометрических параметров с симметриями. Это случай, который я представлю в будущей статье, расширив свой анализ, а также попробовав его на разных наборах данных.
- RDKit: хемоинформатика с открытым исходным кодом. www.rdkit.org [11 апреля 2013 г.],
- Д. Вейнингер, SMILES, химический язык и информационная система. Журнал химической информации и компьютерных наук, 28 (1): 31–36, 1988 г.,
- Томас Унтертинер, Андреас Майр, Гюнтер Кламбауэр, Марвин Стейярт, Йорг Венгер, Хьюго Сеулеманс и Зепп Хохрайтер. «Глубокое обучение как возможность виртуального скрининга». Достижения в области систем обработки нейронной информации, 2014 г.,
- «Квантовые автокодировщики для эффективного сжатия квантовых данных», Дж.Ромеро, Дж.П.Олсон, А.А. Гузик., (2017),
- «Квантовый вариационный автоэнкодер», А. Хошаман, В. Винчи, Б. Денис, Э. Андрияш, Х. Садеги, М.Х. Амин,
- «Генеративная химия: открытие лекарств с помощью генеративных моделей глубокого обучения», Ю. Биан, С. Се,
- «Квантовые генеративные модели для открытия низкомолекулярных лекарств», Дж. Ли, Р. Топалоглу, С. Гош, (2021),
- «Приглашены: подходы к поиску лекарств с использованием квантового машинного обучения», Дж. Ли, М. Алам, К. М. Ша, Дж. В. Н. В. Дохолян, С. Гош, (2021),
- «Надежное кодирование данных для квантовых классификаторов», Р. ЛаРоуз, Б. Койл, (2020),
- «Алгоритмы квантового машинного обучения для приложений по открытию лекарств», К. Батра, К.З.Зорн, Д.Х. Фойл, Э. Минерали, В.О. Гаврилюк, Т.Р. Лейн, С. Экинс, J. Chem.Inf.Model. 2021, 61, 2641–2647,
- «Прогнозирование девяти молекулярных свойств с помощью машинного обучения на основе представления SMILES набора данных квантовой химии QM9», Г. А. Пиньейро, Дж. Муселини, М. Д. Соарес, Р. К. Prati, J.L.F. Da Silva, M.G. Quiles, J.Phys.Chem. А 2020, 124,47,9854–9866,
- Документация Qiskit от IBM, https://qiskit.org/documentation/,
- «Кодирование классических данных в квантовый компьютер», К.Дж.Б. Гош, (2021),
- «Передача нейронных сообщений для квантовой химии», Гилмер Дж., Шенхольц С.С., 2017 г., Труды 34-й Международной конференции по машинному обучению, том 48, стр. 1263–1272,
- https://quantumalgorithms.org/chap-classical-data-quantum-computers.html,
- https://medium.com/mlearning-ai/quantum-data-and-its-embeddings-1-3b022b2f1245%5C,
- «Химическое разнообразие набора данных ограничивает обобщаемость прогнозов машинного обучения», М.Главатских, Дж. Леги, Г. Юно, Т. Коши, Б. Да Мота, Journal of Cheminformatics 11, 69, 2019,
- документация QM9,
- «Открытие лекарств на ранней стадии: химинформатика и вычислительные методы для определения серий ведущих», К. Брайан, З. Лей, Х. Декорнез, Д.Б. Кухня, биоорганическая и медицинская химия, том 20, 18, 2012, 5324–5342,
- «Машинное обучение в химико-информатике и разработке лекарств», Ю.К. Терять. Ренси, Р. Б. Альтман
- https://pubchem.ncbi.nlm.nih.gov/,
- «Автокодирование неориентированных молекулярных графов с помощью нейронных сетей», J.J. В. Олсен, П.Е. Кристенсен, М.Х. Хансен, А.Р. Йохансен, (2020)