-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] QKNN #270
[WIP] QKNN #270
Conversation
а так правильно делать ссылки?
кто подскажет, поему книга не собирается – https://github.com/SemyonSinchenko/qmlcourse/runs/4168245130?check_suite_focus=true, вроде с файлом bibliograhpy всё нормально |
@polyzer это ты так много добавил ссылок в qmlcourseRU/_bibliography/references.bib, а взял произвольные и не нашел и использование в этой лекции |
вручную удалил то, что смог найти, но это не дело, надо прикрутить что-то из tex пакетов, чтобы удалять повторяющиеся вещи в .bib, и желательно добавить в прекоммиты #271 |
Да, локально всё ок. |
собранная книга – http://54.89.156.216/270_merge/_build/html/book/qmlkindsblock/qknn.html – заходите посмотреть и оставляйте комментарии |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
кванты пахнут вечностью, после прочтения для меня qknn теперь и жук и жаба одновременно
|\psi_j\rangle = \frac{-i}{\sqrt{2}}\left(e^{i\pi\theta_j}|\psi_{j+}\rangle - e^{-i\pi\theta_j}|\psi_{j-}\rangle \right) | ||
$$ | ||
|
||
7. Теперь применяем алгоритм QPE (Quantum Phase Estimation), чтобы перевести значение фазы $\theta_j$ в числовое представление. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
эх.. ссыль бы на qpe
Там много ещё чего надо править, я это в выхи смогу сделать, скорее всего |
@polyzer завтра твоя лекция выходит, успеваешь? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Код бы еще показать. В целом мне не хватает немного интуиции, что мы пытаемся делать на high level.
|
||
Давайте немножко вспомним задачу классификации с использованием классического $kNN$ алгоритма: | ||
|
||
У нас есть $\vec{x} \in \{0, 1 \}^N$ - **тестовый образец**, а также **тренировочные образцы** - это набор векторов $\vec{v_i} \in \{0, 1 \}^N$, в котором каждый вектор уже размечен. И наша задача подобрать правильную метку тестовому образцу. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Эм, векторы точно бинарные? Обычно вроде метрическое пространство берется, например R^d
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Векторы не бинарные, это мы потом кодируем их в бинарные квантовые состояния, как я понимаю, для меры близости
F_j = F(\psi, \phi_j) = |\langle \psi | \phi_j \rangle |^2 | ||
$$ | ||
|
||
А $F = [F_0, F_1, ..., F_{M-1}]$ - это таблица $fidelity$ значений между тестовым состоянием и каждым из тренировочных. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не надо писать слова в math-mode
|
||
1.1. Выполняется преобразование: $\xi^{amp}|j\rangle|0\rangle = |j\rangle|\psi_j\rangle$. В амплитуду состояния $|\psi_j\rangle$ закодирована информация о числе $F_j$. Делается это с помощью Swap test. | ||
|
||
1.2. Выполняется преобразование $\xi^{dig}|j\rangle|\psi_j\rangle = |j\rangle|F_j\rangle$ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Очень vague. "Чтобы прсчитать F, посчитаем сначала первую часть, а потом вторую".
|
||
Теперь займёмся вопросом конструирования оракула $O_{y,A}$. Просьба держаться за ваши кресла. | ||
|
||
Вначале мы подготовим состояния. Но чтобы это сделать нам нужны оракулы $\mathcal{V}, \mathcal{W}$. Как их имплементировать указано в статье, которая указывалась выше. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
лучше еще раз сослаться просто чем отсылать куда то назад
$$ | ||
|
||
$$ | ||
\mathcal{W}|j\rangle|0^n\rangle = |j\rangle|\phi\rangle |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
что такое |\phi\rangle
На этом шаге информация о $fidelity$ теперь закодирована в амплитуды. Теперь же мы должны перевести $fidelity$ из амплитуды в число. | ||
|
||
|
||
5. Теперь мы будем конструировать новый гейт G. Вообще говоря, он описан в работе {cite}`PhysRevA.99.012301`, где Вы можете подробнее с ним ознакомиться. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Хоть бы вкратце объяснить что он делает
Скоро запушу небольшие правки и пару рисунков. Пока без кода... Посмотрел на ту чужеродную реализацию, она там довольно большая... Как это вписать за день - хз. |
Давайте реализацию вынесем в отдельную задачу. |
Можно позаимствовать пример с Ирисами из либы, что в описании https://github.com/GroenteLepel/qiskit-quantum-knn/blob/f991903b28e27d562665b23d01f9c0e69c69f913/qiskit_quantum_knn/qknn/qkneighborsclassifier.py#L60 |
Желательно добавить описание из статьи пункта 2.2 (три шага), иначе вообще не понятно что происходит, согласен с @Randl как раз там о высокоуровневой интуиции. |
Времени к сожалению мало совсем имею в распоряжении. Пока так.
Статью выбрал: https://arxiv.org/pdf/2003.09187.pdf
имплементация: https://github.com/GroenteLepel/qiskit-quantum-knn