К квантовому трансформатору

Опубликовано: 10/01/2021 Время на прочтение: 4 минут

Пример вариационной квантовой схемы взят из исследовательской работы «вариационные квантовые схемы для глубокого обучения подкреплению» (arXiv:1907.00397). Одиночные кубитные вентили R_x(θ) и R_z (θ) представляют собой вращения вдоль оси x и оси z на заданный угол θ. Ворота CNOT используются для запутывания квантовых состояний из каждого кубита. Наконец, измерение выполняется в виде проекции вдоль оси Z. Эта архитектура может особенно подходить для практических целей, но достаточно проста, чтобы объяснить концепцию.

Как упоминалось во введении, трансформаторная архитектура произвела революцию в анализе последовательных данных и, в частности, в анализе документов, написанных человеком. Я писал о трансформаторах в предыдущем посте внимание, пожалуйста: забудьте о рекуррентных нейронных сетях, но вот краткое резюме. Трансформаторы-это архитектура нейронной сети, оптимизированная для анализа последовательных данных на высокопараллельных устройствах, таких как графические процессоры и TPU. В отличие от рекуррентных сетей, трансформаторы не имеют “памяти”, но все же способны выполнять трюк с помощью комбинации позиционно-зависимых вложений (т. е. вложения слов дополняются другим набором векторов, которые зависят от позиции слова в предложении и от индекса измерения вложения) и внимания (т. е. выяснения того, какие части входных данных релевантны для вычисления выходных). В основе любого трансформатора лежит так называемое многоголовое внимание. Идея состоит в том, чтобы применить три различных линейных преобразования W_Q, W_K и W_V к каждому элементу входной последовательности для преобразования каждого встраивания слова в некоторые другие внутренние состояния представления, называемые запросом (Q), ключом (K) и значением (V). Эти состояния затем передаются функции, которая вычисляет вес внимания, который просто определяется как:

Формула внимания

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

Основываясь на учебнике от Google, Вот как выглядит классическое многоголовое внимание в TensorFlow 2.0:

Чтобы добавить квантовые слои,мы можем использовать библиотеку квантового машинного обучения Xanadu PennyLane. С помощью этой структуры мы должны добавить функцию в класс, который выполняет квантовое вычисление (_circuit), а затем обернуть ее QNode, чтобы сообщить TensorFlow, как вычислить градиент с помощью правила сдвига параметров. Наконец, мы создаем Кераслой для обработки ввода-вывода в гибридной нейронной сети. Аналогичная процедура может быть выполнена с помощью интерфейса PyTorch. Обратите внимание, что PennyLane 0.13.0 еще не реализует широковещательную передачу, поэтому KerasLayer должен быть применен к каждому элементу входной последовательности с пониманием цикла или списка.

Вот и все, что касается кодирования!

Обучение такой сети требует большого терпения. Даже в классическом случае рекомендуется использовать графический процессор. В Примере, который я разработал для выполнения анализа настроений на наборе данных IMDB, потребовалось около 100 часов, чтобы обучить двоичный классификатор для одной эпохи на моем MacBook Air! Чтобы ускорить обучение, я использовал плагин PennyLane для библиотеки Qulacs, которая представляет собой симулятор VQC, который также использует графический процессор, если он у вас есть. Другая возможность — использовать бэкенд Amazon AWS Braket, но это может быть более дорогая альтернатива. Дай мне знать, если найдешь более быстрый способ. Для записи Qulacs также можно запустить в многоядерном режиме через OpenMP (просто установите переменную окружения, например export OMP_NUM_THREADS=32).

В научно-фантастическом сериале «Звездный путь» лейтенант-коммандер Дейта-андроид, чей позитронный мозг обеспечивает ему впечатляющие вычислительные возможности. Это вымышленное устройство мозга было первоначально введено писателем — фантастом Айзеком Азимовым в романе «Я, робот». Он функционирует как центральный процессор (CPU) для роботов и обеспечивает их формой сознания, узнаваемой для людей. Можно утверждать, что, поскольку рождение квантовых компьютеров обычно восходит к моделированию физики с помощью компьютеров Ричардом Фейнманом (1982), Исаак Азимов на самом деле имел в виду квантовый процессор (QPU). Трансформеры, как известно, способны завершать предложения и писать короткий текст, а также в какой-то степени вести разговоры с людьми (разговорный чат-бот) со сверхъестественными способностями. Можно только представить, что может произойти, если действительно квантово-усиленная версия трансформаторной архитектуры действительно сможет добавить понимание к их и без того удивительному набору навыков.

Лейтенант-Коммандер Дейта. Источник: Википедия

Код для обучения квантово-усиленного трансформатора можно найти в моем репозитории GitHub: https://github.com/rdisipio/qtransformer



прокрутка вверх