Команда разработчиков приложений Qiskit

Машинное обучение

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

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

Квантовое машинное обучение

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

Потенциальным узким местом для QML является необходимость загрузки больших наборов данных в квантовый компьютер, что в некоторых случаях может свести на нет потенциальное квантовое преимущество алгоритма QML над классическим машинным обучением. Таким образом, очень важно анализировать приложения QML от начала до конца. Существует множество предложений, позволяющих обойти эту проблему, например Квантовые машины опорных векторов (QSVM), Квантовые порождающие состязательные сети (QGAN) или Квантовые машины Больцмана (QBM). Исследователи теоретически доказали, что QSVM может решать определенные задачи классификации, которые классический компьютер не может решить эффективно.

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

Qiskit Machine Learning (код / учебники)

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

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

В дополнение к моделям, предоставляемым непосредственно в Qiskit Machine Learning, мы также представляем Torch Connector, который позволяет пользователям интегрировать все наши квантовые нейронные сети непосредственно в библиотеку машинного обучения с открытым исходным кодом PyTorch. Благодаря структуре градиентов Qiskit это включает автоматическое дифференцирование - общие градиенты, вычисленные PyTorch во время обратного распространения, также учитывают квантовые нейронные сети. Гибкая конструкция также позволяет в будущем создавать соединители с другими корпусами. Qiskit Machine Learning предоставляет сборник руководств, которые знакомят со всеми этими функциями.

Квантовые ядра (учебник)

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

Qiskit Machine Learning предоставляет класс QuantumKernel, который можно легко использовать для прямого вычисления матриц ядра для заданных наборов данных или передать его в квантовый классификатор опорных векторов (QSVC) или квантовую поддержку. Векторный регрессор (QSVR), чтобы быстро приступить к решению задач классификации или регрессии. Он также может использоваться со многими другими существующими алгоритмами машинного обучения на основе ядра из установленных классических фреймворков.

Квантовые нейронные сети (учебник)

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

Qiskit Machine Learning определяет общий интерфейс для нейронных сетей, который реализуется различными квантовыми нейронными сетями. Легко предоставляется несколько реализаций, таких как OpflowQNN, TwoLayerQNN и CircuitQNN. OpflowQNN позволяет пользователям объединить параметризованные квантовые схемы с квантово-механическими наблюдаемыми. Схемы могут быть построены с использованием, например, строительных блоков из библиотеки схем Qiskit, а выходные данные QNN выражаются ожидаемым значением наблюдаемого. TwoLayerQNN - это частный случай OpflowQNN, который принимает в качестве входных данных карту функций и анзац. CircuitQNN напрямую принимает измерения квантовой схемы в качестве выходных данных без наблюдаемого. Выходные данные могут использоваться либо как пакет выборок, то есть как список цепочек битов, измеренных из кубитов схемы, либо как разреженный вектор результирующих вероятностей выборки для каждой цепочки битов. Первый представляет интерес для изучения распределений, возникающих из заданной квантовой схемы, в то время как второй находит применение, например, в регрессии или классификации. Этап постобработки может использоваться для интерпретации данной строки битов в конкретном контексте, например переводя его в набор классов.

Нейронные сети включают функциональные возможности для их оценки для заданного входа, а также для вычисления соответствующих градиентов, что важно для эффективного обучения. Для обучения и использования нейронных сетей Qiskit Machine Learning предоставляет различные алгоритмы обучения, такие как NeuralNetworkClassifier и NeuralNetworkRegressor. Оба принимают QNN в качестве входных данных, а затем используют его в контексте классификации или регрессии. Для облегчения старта предлагаются две удобные реализации - вариационный квантовый классификатор (VQC), а также вариационный квантовый регрессор (VQR). Оба берут только карту функций и анзац и автоматически создают базовый QNN.

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

Подключение машинного обучения Qiskit к PyTorch (учебник)

Помимо алгоритмов классификации и регрессии для использования предоставленных QNN, Qiskit Machine Learning также представляет TorchConnector. Это берет любой QNN и делает его доступным как модуль PyTorch. Поскольку QNN машинного обучения Qiskit обеспечивают как прямой, так и обратный проход, пользователи могут легко интегрировать QNN в рабочий процесс PyTorch, включая обратное распространение для вычисления градиентов. Таким образом, они могут быть частью более сложных вычислений, таких как глубокая нейронная сеть, которая состоит как из классических, так и из квантовых слоев. Это открывает безграничные возможности для исследования потенциальной мощности QNN для огромного числа приложений.

С чего начать

Qiskit, Qiskit Machine Learning, а также все другие модули приложений Qiskit представляют собой библиотеки с открытым исходным кодом, которые каждый может бесплатно загрузить и использовать. Учебники иллюстрируют различные функции и предоставляют примеры для быстрого запуска первых тестов. Qiskit не только предоставляет высокопроизводительные симуляторы для тестирования моделей квантового машинного обучения на классических компьютерах, но также позволяет пользователям тестировать их на реальных квантовых устройствах, включая общедоступные квантовые системы IBM. Этот первый выпуск Qiskit Machine Learning уже предоставляет большое количество моделей, и мы будем постоянно его расширять, чтобы включать новые интересные результаты исследований! Вы можете начать работу с документацией здесь.

Особая благодарность основным участникам (в алфавитном порядке): Панайотису Баркуцосу, Бей Чену, Антону Декусару, Брайсу Фуллеру, Жюльену Гакону, Икко Хамамуре, Такаши Имамичи, Джону Лапейру, Дариушу Ласецки, Маноэлю Маркесу, Ацуши Мацуо. Фан, Макс Россманнек, Ивано Тавернелли, Стефан Вернер, Стив Вуд, Криста Зуфаль