From 73507e3e212b80acff828e8eced16cd7827a1560 Mon Sep 17 00:00:00 2001 From: krovostok <39528827+krovostok@users.noreply.github.com> Date: Sun, 23 May 2021 19:07:51 +0300 Subject: [PATCH 1/2] Update vqc.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Поправила орфографию и пунктуацию; сократила и отредактировала некоторые предложения в инфостиле: выглядит более компактно и информативно. --- qmlcourseRU/book/vqcblock/vqc.md | 76 +++++++++++++++----------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/qmlcourseRU/book/vqcblock/vqc.md b/qmlcourseRU/book/vqcblock/vqc.md index 034675af42..657d66928e 100644 --- a/qmlcourseRU/book/vqcblock/vqc.md +++ b/qmlcourseRU/book/vqcblock/vqc.md @@ -16,16 +16,15 @@ kernelspec: ## Описание лекции -На этой лекции мы впервые познакомимся с непосредственно квантовым машинным обучением. Теперь, вместо `NumPy` мы будем использовать `PennyLane`. Лекция включает следующие темы: +На этой лекции мы впервые познакомимся непосредственно с квантовым машинным обучением. Теперь вместо `NumPy` мы будем использовать `PennyLane`. Лекция расскажет: -- В чем идея квантово-классического обучения? -- Что такое вариационное машинное обучение? -- Как устроена вариационная квантовая схема? -- Как можно закодировать данные в вариационную схему? +- в чем заключается идея квантово-классического обучения; +- что такое вариационное машинное обучение; +- как устроена вариационная квантовая схема и как закодировать в нее данные. ## Введение -Далее, в течение всего курса, мы будем больше всего говорить о квантово-классическом машинном обучении, которое построено на базе вариационных квантовых схем. Именно этот тип комбинированного, квантово-классического машинного обучения является наиболее перспективным в NISQ-эру. Прежде, чем мы начнем, давайте заглянем немного вперед и посмотрим, как выглядит типичный цикл такого обучения. +В течение всего курса мы будем говорить преимущественно о комбинированном квантово-классическом машинном обучении, построенном на базе вариационных квантовых схем. Именно он является наиболее перспективным в эпоху NISQ. Давайте забежим немного вперед и посмотрим, как выглядит типичный цикл такого обучения. ```{figure} /_static/vqcblock/vqc/diagram.png :name: vqcdiag @@ -34,27 +33,27 @@ kernelspec: Пример цикла смешанного обучения ``` -Красным цветом на этой диаграмме помечены блоки, которые выполняются на квантовом устройстве, а зеленым -- то, что считается на обычном компьютере. Квантовая часть, которая включает в себя операторы $\hat{U(X)}$ и $\hat{U(\theta})$, а также измерение наблюдаемой $\hat{M}$ как раз и называется вариационной квантовой схемой, и именно ей мы посвятим сегодняшнее занятие. +Красным цветом на диаграмме помечены блоки, выполняемые на квантовом устройстве, зеленым — те, что считает обычный компьютер. Квантовая часть, которая включает в себя операторы $\hat{U(X)}$ и $\hat{U(\theta})$, а также измерение наблюдаемой $\hat{M}$, называется вариационной квантовой схемой. Именно ей посвящена данная лекция. -Но сначала нам придется сделать шаг назад и обсудить в общих чертах идеи, которые лежат в основе квантово-классического обучения. +Но сначала сделаем шаг назад и обсудим в общих чертах идеи, которые лежат в основе квантово-классического обучения. ## Квантово-классическое обучение -Основная идея, которая лежит в основе квантово-классического обучения заключается в том, что в Noise Intermediate Scale Quantum (_NISQ_) эпоху у нас нет больших работающих квантовых компьютеров и нет квантовой памяти. Это сильно ограничивает нас в применении алгоритмов, которые дают нам гарантированное ускорение над их классическими аналогами. Практически, все что нам остается -- это "встраивать" квантовые схемы в классический цикл обучения. +Основная идея квантово-классического обучения заключается в том, что в эпоху Noise Intermediate Scale Quantum (_NISQ_) у нас нет больших работающих квантовых компьютеров и квантовой памяти. Это сильно ограничивает применение алгоритмов, более быстрых, чем классические. Нам остается только «встраивать» квантовые схемы в классический цикл обучения. -В этом случае обычно мы разделяем классическую и квантовую части алгоритма. Мы выполняем предварительную обработку и подготовку данных на классическом компьютере, после чего "прогоняем" их через квантовую схему. Эта схема должна возвращать нам классические данные, а значит, включает в себя набор последовательно применяемых операторов и измерение. В этом случае, со стороны классического компьютера, такая схема будет выглядеть как просто некий "черный ящик" или "оракул", с которым уже можно работать. Например, можно варьировать параметры схемы таким образом, чтобы она "обучалась" так же, как "обучаются" нейронные сети или другие алгоритмы классического машинного обучения. +В этом случае мы разделяем классическую и квантовую части алгоритма. Выполняем предварительную обработку и подготовку данных на классическом компьютере, затем «прогоняем» их через квантовую схему. Она должна возвращать нам «классические» данные, а значит, должна включать в себя набор последовательно применяемых операторов и измерение. Со стороны классического компьютера такая схема выглядит как «черный ящик» или «оракул», с которым уже можно работать. Например, можно варьировать параметры схемы таким образом, чтобы она «обучалась» так же, как «обучаются» нейронные сети или другие алгоритмы классического машинного обучения. -Давайте более детально посмотрим на квантовую схему, которая может быть использована в таком подходе. +Давайте более детально посмотрим на квантовую схему, которую можно использовать в таком подходе. ## Вариационные квантовые схемы -В основе вариационных квантовых схем, или Variational Quantum Circuits (**VQC**) лежит достаточно простая идея. Давайте сделаем схему, которая включает в себя набор унитарных операторов и переводит классические данные $\mathbf{X}$ и параметры $\theta$ в квантовое состояние $\ket{\Psi}(\theta, \mathbf{X})$. А дальше, давайте /варьировать/ наше состояние $\ket{\Psi}$, меняя параметры $\theta$ так, чтобы при его измерении в каком-либо базисе мы получали нужный нам результат, например, результат классификации входных данных $\mathbf{X}$. +В основе вариационных квантовых схем — Variational Quantum Circuits (**VQC**) — лежит простая идея. Чтобы проиллюстрировать ее, давайте сделаем схему, которая включает в себя набор унитарных операторов и переводит классические данные $\mathbf{X}$ и параметры $\theta$ в квантовое состояние $\ket{\Psi}(\theta, \mathbf{X})$. Затем будем варьировать наше состояние $\ket{\Psi}$, меняя параметры $\theta$ так, чтобы при его измерении в каком-либо базисе мы получали нужный результат, например, результат классификации входных данных $\mathbf{X}$. -Давайте разберем это на простом примере. +Разберем написанное выше на примере. ### Аппроксимация матрицы Паули **X** оператором поворота -Как мы помним из предыдущих лекций, оператор $\hat{\mathbf{X}}$ работает как квантовый аналог оператора =NOT= -- он инвертирует значение кубита. +Из предыдущих лекций мы помним, что оператор $\hat{\mathbf{X}}$ работает как квантовый аналог оператора =NOT= — инвертирует значение кубита. ```{code-cell} ipython3 import pennylane as qml @@ -73,10 +72,10 @@ print(simple_x_gate.draw()) ``` ```{note} -Тут мы измеряем наш кубит в $\mathbf{Z}$-базисе и чаще всего иы будем измерять именно в нем. $\mathbf{Z}$-базис является неким "стандартом" для квантовых вычислений, так как это измерение "ближе к железу". +Тут мы измеряем наш кубит в $\mathbf{Z}$-базисе и чаще всего будем измерять именно в нем. $\mathbf{Z}$-базис является неким «стандартом» для квантовых вычислений, так как это измерение «ближе к железу». ``` -С другой стороны, у нас есть оператор $\hat{RX}(\phi)$, который "вращает" состояние нашего кубита вокруг оси $\mathbf{X}$ на угол $\phi$. Давайте сделаем параметризованную схему с одним параметром: +С другой стороны, у нас есть оператор $\hat{RX}(\phi)$, который «вращает» состояние нашего кубита вокруг оси $\mathbf{X}$ на угол $\phi$. Сделаем параметризованную схему с одним параметром: ```{code-cell} ipython3 @qml.qnode(dev) @@ -85,7 +84,7 @@ def vqc(phi): return qml.expval(qml.PauliZ(0)) ``` -Теперь давайте попробуем подобрать $\phi$ так, чтобы наша параметризованная схема работала точно так же, как оператор $\hat{X}$: +Теперь попробуем подобрать $\phi$ так, чтобы параметризованная схема работала точно так же, как оператор $\hat{X}$: ```{code-cell} ipython3 print(f"Try 1.0: {vqc(0)}") @@ -94,22 +93,22 @@ print(f"Try 3.0: {vqc(3)}") print(f"Try 3.14159265359: {vqc(3.14159265359)}") ``` -Мы получили, что нужный нам угол $\phi$ составляет ровно $\pi$. Это логично, и мы могли бы это легко понять из простейших соображений линейной алгебры, либо даже взглянув на сферу Блоха. Но целью этого примера для нас было /почувствовать/ как работают VQC. +Получается, что нужный нам угол $\phi$ составляет ровно $\pi$. Это логично, мы могли бы это легко понять из простейших соображений линейной алгебры, либо взглянув на сферу Блоха. Но целью этого примера было проиллюстрировать работу VQC. -Понятно, что наш процесс "подбора" параметра $\phi$ крайне примитивный, но следующую лекцию мы полностью посвятим тому, как можно посчитать градиент параметров квантовой схемы и задействовать всю мощь изобретенных на сегодня методов оптимизации. А пока давайте еще раз подумаем о том, как можно закодировать данные в квантовую схему. +Наш процесс «подбора» параметра $\phi$ крайне примитивный, но следующую лекцию мы полностью посвятим тому, как посчитать градиент параметров квантовой схемы и задействовать всю мощь известных на сегодня методов оптимизации. А пока еще немного подумаем о том, как можно закодировать данные в квантовую схему. -## Как можно закодировать данные в VQC +## Кодирование данных в VQC -Как можно было заметить, в конструировании VQC есть две важных части: +В конструировании VQC есть две важных части: -- Кодирование классических данных в квантовые операторы -- Выбор наблюдаемой для измерений +- кодирование классических данных в квантовые операторы; +- выбор наблюдаемой для измерений. -Давайте посмотрим, как можно закодировать данные в схему. +Вот как можно закодировать данные. ### Кодирование поворотами -Один из самых популярных методов кодирования классических данных в квантовые схемы -- это использование операторов поворота $\hat{RY}, \hat{RZ}$. Представим, что мы хотим отображать вектор из двухмерного пространства в один кубит $\vec{x} \in \mathbb{R}^2 \to \mathbb{C}^2$. +Один из самых популярных методов кодирования классических данных в квантовые схемы — это использование операторов поворота $\hat{RY}, \hat{RZ}$. Представим, что мы хотим отображать вектор из двумерного пространства в один кубит $\vec{x} \in \mathbb{R}^2 \to \mathbb{C}^2$. ```{code-cell} ipython3 @qml.qnode(dev) @@ -120,7 +119,7 @@ def angle_vqc(a, b): return qml.expval(qml.PauliZ(0)) ``` -А теперь давайте посмотрим, как такая схема преобразует данные. Для этого сгенерируем набор случайных двухмерных данных в диапазоне $[0, 2\pi]$ и применим к каждой точке нашу схему, после чего визуализируем результаты: +А теперь давайте посмотрим, как такая схема преобразует данные. Для этого сгенерируем набор случайных двумерных данных в диапазоне $[0, 2\pi]$ и применим к каждой точке нашей схемы, затем визуализируем результаты: ```{code-cell} ipython3 import numpy as np @@ -140,7 +139,7 @@ plt.colorbar(clb) f.show() ``` -Результат довольно необычный -- предсказать такое довольно сложно и хорошо видна возможность нелинейности `VQC` схем. В дальнейших лекциях мы будем более подробно разбирать возможные варианты кодирования данных. Кстати, кодирование углами настолько популярно, что в `PennyLane` для этого есть специальная функция, которая позволяет "повернуть" сразу множество кубитов, используя список из классических данных: +Результат довольно необычный. Предсказать такое довольно сложно и хорошо видна возможность нелинейности `VQC` схем. В дальнейших лекциях мы будем более подробно разбирать возможные варианты кодирования данных. Кстати, кодирование углами настолько популярно, что в `PennyLane` для этого есть специальная функция, которая позволяет «повернуть» сразу множество кубитов, используя список из классических данных: ```{code-cell} ipython3 @qml.qnode(dev) @@ -159,7 +158,7 @@ print(np.allclose(res, res_pl)) ### Важность многокубитных гейтов -Очень хорошая идея при кодировании параметров -- использовать многокубитные гейты, так как именно они создают запутанные состояния и раскрывают все преимущества квантовых компьютеров! Давайте попробуем это сделать. +При кодировании параметров целесообразно использовать многокубитные гейты, так как именно они создают запутанные состояния и раскрывают все преимущества квантовых компьютеров. Давайте попробуем это сделать. ```{code-cell} ipython3 dev2 = qml.device("default.qubit", 2) @@ -174,7 +173,7 @@ def cnot_vqc(a, b): return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1)) ``` -В этой схеме мы видим оператор $\hat{CZ}$, который как раз и создает нам запутанное состояние. Давайте посмотрим, как такая схема преобразует наше исходное пространство случайных точек. +В этой схеме мы видим оператор $\hat{CZ}$, который создает запутанное состояние. Посмотрим, как такая схема преобразует наше исходное пространство случайных точек. ```{code-cell} ipython3 res = [cnot_vqc(a, b) for a, b in zip(aa, bb)] @@ -188,16 +187,13 @@ plt.colorbar(clb) plt.show() ``` -Можно заметить, что результат выглядит гораздо интереснее. В целом можно сказать, что кодирование данных является одним из важнейших выборов при проектировании **VQC**, и мы еще много будем обсуждать различные способы того, как это можно сделать. +Результат выглядит гораздо интереснее. В целом можно сказать, что выбор способа кодирования данных — один из важнейших при проектировании **VQC**. Мы еще много раз будем обсуждать способы сделать это. -## Что мы узнали из этой лекции +## Что мы узнали из лекции -Давайте кратко повторим, что мы узнали из этой лекции: - -- В NISQ эпоху мы чаще всего ограничены комбинированием квантового и классического машинного обучения -- Ключевой элемент такого обучения -- вариационные квантовые схемы (VQC) -- Основная идея VQC: - - Кодируем классические данные в квантовые операторы - - Измеряем состояние - - Варьируем параметры на классическом компьютере так, чтобы измерение давало желаемый результат -- Один из широко применимых методов кодирования -- это использование операторов вращений $\hat{RX}, \hat{RY}, \hat{RZ}$ +- В эпоху NISQ эпоху мы чаще всего ограничены комбинированием квантового и классического машинного обучения. +- Ключевой элемент такого обучения — вариационные квантовые схемы (VQC). Основная идея VQC: + - кодируем классические данные в квантовые операторы; + - измеряем состояние; + - варьируем параметры на классическом компьютере так, чтобы измерение давало желаемый результат. +- Один из широко применимых методов кодирования — использование операторов вращений $\hat{RX}, \hat{RY}, \hat{RZ}$ From 687775641ff871d644c99d426921ba48e701242f Mon Sep 17 00:00:00 2001 From: krovostok <39528827+krovostok@users.noreply.github.com> Date: Sat, 5 Jun 2021 16:09:59 +0300 Subject: [PATCH 2/2] Update vqc.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Вернула -- тире и кавычки "" --- qmlcourseRU/book/vqcblock/vqc.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/qmlcourseRU/book/vqcblock/vqc.md b/qmlcourseRU/book/vqcblock/vqc.md index 657d66928e..99da3ac4eb 100644 --- a/qmlcourseRU/book/vqcblock/vqc.md +++ b/qmlcourseRU/book/vqcblock/vqc.md @@ -33,27 +33,27 @@ kernelspec: Пример цикла смешанного обучения ``` -Красным цветом на диаграмме помечены блоки, выполняемые на квантовом устройстве, зеленым — те, что считает обычный компьютер. Квантовая часть, которая включает в себя операторы $\hat{U(X)}$ и $\hat{U(\theta})$, а также измерение наблюдаемой $\hat{M}$, называется вариационной квантовой схемой. Именно ей посвящена данная лекция. +Красным цветом на диаграмме помечены блоки, выполняемые на квантовом устройстве, зеленым -- те, что считает обычный компьютер. Квантовая часть, которая включает в себя операторы $\hat{U(X)}$ и $\hat{U(\theta})$, а также измерение наблюдаемой $\hat{M}$, называется вариационной квантовой схемой. Именно ей посвящена данная лекция. Но сначала сделаем шаг назад и обсудим в общих чертах идеи, которые лежат в основе квантово-классического обучения. ## Квантово-классическое обучение -Основная идея квантово-классического обучения заключается в том, что в эпоху Noise Intermediate Scale Quantum (_NISQ_) у нас нет больших работающих квантовых компьютеров и квантовой памяти. Это сильно ограничивает применение алгоритмов, более быстрых, чем классические. Нам остается только «встраивать» квантовые схемы в классический цикл обучения. +Основная идея квантово-классического обучения заключается в том, что в эпоху Noise Intermediate Scale Quantum (_NISQ_) у нас нет больших работающих квантовых компьютеров и квантовой памяти. Это сильно ограничивает применение алгоритмов, более быстрых, чем классические. Нам остается только "встраивать" квантовые схемы в классический цикл обучения. -В этом случае мы разделяем классическую и квантовую части алгоритма. Выполняем предварительную обработку и подготовку данных на классическом компьютере, затем «прогоняем» их через квантовую схему. Она должна возвращать нам «классические» данные, а значит, должна включать в себя набор последовательно применяемых операторов и измерение. Со стороны классического компьютера такая схема выглядит как «черный ящик» или «оракул», с которым уже можно работать. Например, можно варьировать параметры схемы таким образом, чтобы она «обучалась» так же, как «обучаются» нейронные сети или другие алгоритмы классического машинного обучения. +В этом случае мы разделяем классическую и квантовую части алгоритма. Выполняем предварительную обработку и подготовку данных на классическом компьютере, затем "прогоняем" их через квантовую схему. Она должна возвращать нам "классические" данные, а значит, должна включать в себя набор последовательно применяемых операторов и измерение. Со стороны классического компьютера такая схема выглядит как "черный ящик" или "оракул", с которым уже можно работать. Например, можно варьировать параметры схемы таким образом, чтобы она "обучалась" так же, как "обучаются" нейронные сети или другие алгоритмы классического машинного обучения. Давайте более детально посмотрим на квантовую схему, которую можно использовать в таком подходе. ## Вариационные квантовые схемы -В основе вариационных квантовых схем — Variational Quantum Circuits (**VQC**) — лежит простая идея. Чтобы проиллюстрировать ее, давайте сделаем схему, которая включает в себя набор унитарных операторов и переводит классические данные $\mathbf{X}$ и параметры $\theta$ в квантовое состояние $\ket{\Psi}(\theta, \mathbf{X})$. Затем будем варьировать наше состояние $\ket{\Psi}$, меняя параметры $\theta$ так, чтобы при его измерении в каком-либо базисе мы получали нужный результат, например, результат классификации входных данных $\mathbf{X}$. +В основе вариационных квантовых схем -- Variational Quantum Circuits (**VQC**) -- лежит простая идея. Чтобы проиллюстрировать ее, давайте сделаем схему, которая включает в себя набор унитарных операторов и переводит классические данные $\mathbf{X}$ и параметры $\theta$ в квантовое состояние $\ket{\Psi}(\theta, \mathbf{X})$. Затем будем варьировать наше состояние $\ket{\Psi}$, меняя параметры $\theta$ так, чтобы при его измерении в каком-либо базисе мы получали нужный результат, например, результат классификации входных данных $\mathbf{X}$. Разберем написанное выше на примере. ### Аппроксимация матрицы Паули **X** оператором поворота -Из предыдущих лекций мы помним, что оператор $\hat{\mathbf{X}}$ работает как квантовый аналог оператора =NOT= — инвертирует значение кубита. +Из предыдущих лекций мы помним, что оператор $\hat{\mathbf{X}}$ работает как квантовый аналог оператора =NOT= -- инвертирует значение кубита. ```{code-cell} ipython3 import pennylane as qml @@ -72,10 +72,10 @@ print(simple_x_gate.draw()) ``` ```{note} -Тут мы измеряем наш кубит в $\mathbf{Z}$-базисе и чаще всего будем измерять именно в нем. $\mathbf{Z}$-базис является неким «стандартом» для квантовых вычислений, так как это измерение «ближе к железу». +Тут мы измеряем наш кубит в $\mathbf{Z}$-базисе и чаще всего будем измерять именно в нем. $\mathbf{Z}$-базис является неким "стандартом" для квантовых вычислений, так как это измерение "ближе к железу". ``` -С другой стороны, у нас есть оператор $\hat{RX}(\phi)$, который «вращает» состояние нашего кубита вокруг оси $\mathbf{X}$ на угол $\phi$. Сделаем параметризованную схему с одним параметром: +С другой стороны, у нас есть оператор $\hat{RX}(\phi)$, который "вращает" состояние нашего кубита вокруг оси $\mathbf{X}$ на угол $\phi$. Сделаем параметризованную схему с одним параметром: ```{code-cell} ipython3 @qml.qnode(dev) @@ -95,7 +95,7 @@ print(f"Try 3.14159265359: {vqc(3.14159265359)}") Получается, что нужный нам угол $\phi$ составляет ровно $\pi$. Это логично, мы могли бы это легко понять из простейших соображений линейной алгебры, либо взглянув на сферу Блоха. Но целью этого примера было проиллюстрировать работу VQC. -Наш процесс «подбора» параметра $\phi$ крайне примитивный, но следующую лекцию мы полностью посвятим тому, как посчитать градиент параметров квантовой схемы и задействовать всю мощь известных на сегодня методов оптимизации. А пока еще немного подумаем о том, как можно закодировать данные в квантовую схему. +Наш процесс "подбора" параметра $\phi$ крайне примитивный, но следующую лекцию мы полностью посвятим тому, как посчитать градиент параметров квантовой схемы и задействовать всю мощь известных на сегодня методов оптимизации. А пока еще немного подумаем о том, как можно закодировать данные в квантовую схему. ## Кодирование данных в VQC @@ -108,7 +108,7 @@ print(f"Try 3.14159265359: {vqc(3.14159265359)}") ### Кодирование поворотами -Один из самых популярных методов кодирования классических данных в квантовые схемы — это использование операторов поворота $\hat{RY}, \hat{RZ}$. Представим, что мы хотим отображать вектор из двумерного пространства в один кубит $\vec{x} \in \mathbb{R}^2 \to \mathbb{C}^2$. +Один из самых популярных методов кодирования классических данных в квантовые схемы -- это использование операторов поворота $\hat{RY}, \hat{RZ}$. Представим, что мы хотим отображать вектор из двумерного пространства в один кубит $\vec{x} \in \mathbb{R}^2 \to \mathbb{C}^2$. ```{code-cell} ipython3 @qml.qnode(dev) @@ -139,7 +139,7 @@ plt.colorbar(clb) f.show() ``` -Результат довольно необычный. Предсказать такое довольно сложно и хорошо видна возможность нелинейности `VQC` схем. В дальнейших лекциях мы будем более подробно разбирать возможные варианты кодирования данных. Кстати, кодирование углами настолько популярно, что в `PennyLane` для этого есть специальная функция, которая позволяет «повернуть» сразу множество кубитов, используя список из классических данных: +Результат довольно необычный. Предсказать такое довольно сложно и хорошо видна возможность нелинейности `VQC` схем. В дальнейших лекциях мы будем более подробно разбирать возможные варианты кодирования данных. Кстати, кодирование углами настолько популярно, что в `PennyLane` для этого есть специальная функция, которая позволяет "повернуть" сразу множество кубитов, используя список из классических данных: ```{code-cell} ipython3 @qml.qnode(dev) @@ -187,13 +187,13 @@ plt.colorbar(clb) plt.show() ``` -Результат выглядит гораздо интереснее. В целом можно сказать, что выбор способа кодирования данных — один из важнейших при проектировании **VQC**. Мы еще много раз будем обсуждать способы сделать это. +Результат выглядит гораздо интереснее. В целом можно сказать, что выбор способа кодирования данных -- один из важнейших при проектировании **VQC**. Мы еще много раз будем обсуждать способы сделать это. ## Что мы узнали из лекции - В эпоху NISQ эпоху мы чаще всего ограничены комбинированием квантового и классического машинного обучения. -- Ключевой элемент такого обучения — вариационные квантовые схемы (VQC). Основная идея VQC: +- Ключевой элемент такого обучения -- вариационные квантовые схемы (VQC). Основная идея VQC: - кодируем классические данные в квантовые операторы; - измеряем состояние; - варьируем параметры на классическом компьютере так, чтобы измерение давало желаемый результат. -- Один из широко применимых методов кодирования — использование операторов вращений $\hat{RX}, \hat{RY}, \hat{RZ}$ +- Один из широко применимых методов кодирования -- использование операторов вращений $\hat{RX}, \hat{RY}, \hat{RZ}$