Вы боретесь с пониманием квантовых схем из-за всей математики?
Хотите начать работу с квантовым машинным обучением? Взгляните на статью Практическое квантовое машинное обучение с помощью Python.
В предыдущих сообщениях я утверждал, что не нужно быть математиком или физиком, чтобы понять квантовые вычисления.
Тем не менее, если вы не математик и не физик, изучение квантовых алгоритмов иногда может быть трудным. Это сложно, потому что в нем широко используются символы. Проблема с символами в том, что вы не можете легко их погуглить. Рассмотрим, например, следующую схему.
Он представляет собой структуру, с которой вы часто сталкиваетесь при изучении квантовых алгоритмов. Но если вы не знаете, что означают эти термины, как узнать?
Рассмотрим, например, | 0⟩ и | 1⟩. Просто для удовольствия: погуглите.
Как насчет 𝐻⊗𝑛? Вы бы хоть знали, как ввести этот термин в Google? (даже текстовый редактор Medium не поддерживает правильное написание этого термина.) Я имею в виду, что если все, что у вас есть, - это изображение, даже скопировать текст из него не составит труда.
Эти символы ничем не хуже иероглифов, если вы не математик.
Конечно, не нужно быть гением, чтобы понять квантовую схему. У тебя все будет хорошо, если ты немного умнее Клетуса.
Итак, давайте прольем свет на квантовую схему. Квантовые вычисления не используют математические символы для случайного описания. Квантовая схема - это математическая конструкция. Это уравнение. И, без сомнения, математика - это лаконичный и точный язык. С помощью математики можно очень кратко описывать алгоритмы.
К сожалению, для большинства из нас математика - в лучшем случае второй язык.
Начнем с самого левого. Там мы находим вход в нашу схему. | 0⟩ и | 1⟩ обозначают исходные состояния кубитов. Когда мы измеряем кубит в состоянии | 0⟩, он равен 0. А когда мы измеряем кубит в состоянии | 1⟩, он равен 1. Это похоже на классический бит.
Тогда почему бы нам просто не написать 0 и 1? Почему мы помещаем их в такую странную рамку?
Причина в том, что кубит - это не просто 0 или 1. Он находится в линейной комбинации 0 и 1, если вы его не измерили. Как только вы его измеряете, он мгновенно становится 0 или 1. И мы описываем эту линейную зависимость с помощью векторов. Итак, | 0⟩ и | 1⟩ обозначают два вектора. Это стандартные базисные векторы, которые мы используем в квантовых вычислениях, записанные в нотации Дирака. Векторы - это геометрические объекты с длиной и направлением. Обозначение Дирака (также известное как bra-ket) популярно в области квантовой механики. Но в этом нет ничего необычного.
Мы можем просто сказать, что
Я должен признать. Эти два уравнения просто переводят вектор из одной записи в другую. Таким образом, он по-прежнему использует математику и символы. Но это обозначение, которое большинство людей учат в старшей школе. И я добавил достаточно ключевых слов, чтобы вы могли гуглить, если вы вообще не знакомы с векторами.
Но прежде чем вы перейдете к Google, почему бы нам не взглянуть на эти два вектора графически?
Каждое число внутри вектора представляет собой измерение. Итак, наши векторы двумерны.
В этом представлении оба измерения находятся на вертикальной оси, но в противоположных направлениях. Таким образом, верх и низ системы соответствуют стандартным базисным векторам | 0⟩ и | 1⟩ соответственно.
На рисунке есть еще один вектор под названием «psi» - | 𝜓⟩.
| 𝜓⟩ обозначает произвольное состояние кубита. Как мы упоминали выше, кубит находится в линейной зависимости 0 и 1. Следовательно,
𝛼 и 𝛽 - расстояния вектора до стандартных базисных векторов | 0⟩ и | 1⟩. Если мы возведем их в квадрат, мы получим вероятность измерения кубита как 0 (= 𝛼²) или как 1 (= 𝛽²).
Например, если мы говорим 𝛼 = 1 и 𝛽 = 0, то | 𝜓⟩ = 1⋅ | 0⟩ + 0⋅ | 1⟩ = | 0⟩. Для 𝛼 = 1 вероятность измерения кубита как 0 составляет 1² = 1 = 100%.
Это просто математика, чтобы сказать, что мы измеряем один кубит как 0, а другой как 1, не так ли?
Но мы еще не закончили инициализацию. Вы могли заметить небольшой верхний индекс 𝑛 рядом с | 0⟩ ^ 𝑛. Обычно это показатель степени. Здесь говорится, что у нас не один кубит в состоянии | 0⟩, а 𝑛 кубитов в этом состоянии. Мы могли бы также записать его как | 00 ⋯ 0⟩ с 𝑛 0s.
Итак, наша схема содержит n кубитов, инициализированных в состоянии, которое мы бы измерили как 0, и один кубит, который мы бы измерили как 1.
Рядом с инициализацией кубитов мы видим термины 𝐻⊗𝑛 и 𝐻. Начнем с последнего. В квантовых вычислениях матрицы обычно обозначают заглавные буквы. Матрица 𝐻 обозначает матрицу Адамара, которая определяется как
Важно знать, что произойдет, если вы умножите матрицу на вектор (учитывая, что количество столбцов матрицы равно количеству строк вектора). Тогда результат - другой вектор.
Например, если мы умножим матрицу Адамара на вектор состояния | 0⟩ или | 1⟩, то мы получим другой вектор.
и
Оба результирующих вектора имеют значения 𝛼 и 𝛽, которые равны, если вы возведете их в квадрат. Единственная разница - знак 𝛽 при умножении 𝐻 на | 1⟩. Обычно знак также является краткой формой этого состояния.
В квантовых вычислениях | +⟩ - это сокращение от
а | − - сокращение от
Если возвести в квадрат любое из этих значений для вычисления вероятности кубита как 0 или 1 соответственно, вы получите 1/2.
Итак, матрица эффективно изменила состояние кубита. Мы больше не измеряем кубит как 0 или 1 с уверенностью. Но когда мы его измеряем, он может быть 0 или 1 - каждое с вероятностью 50%.
Может быть, вы уже подозреваете, что означает 𝐻⊗𝑛. | 0⟩ ^ 𝑛 представляет 𝑛 кубитов в состоянии | 0⟩. Если рассматривать эти кубиты как единый вектор, то этот вектор имеет не только два измерения, но и 2⋅𝑛 измерения. Каждый кубит имеет два измерения.
Мы можем умножить матрицу на вектор, только если они имеют одинаковое количество измерений. Это то, о чем заботится 𝐻⊗𝑛.
Давайте посмотрим на 𝐻⊗2 = 𝐻⊗𝐻. Такой способ умножения двух матриц называется тензорным произведением. Мы можем записать это как
Это создает большую матрицу. И, что более важно, он работает рекурсивно.
Я избавляю вас от расширения 2 здесь. В общем, это
Эта формула известна как произведение Кронекера. Это математический способ сказать:
Примените одну и ту же матрицу преобразования (здесь 𝐻 ) к каждому из 𝑛 кубитов.
Следующий член схемы имеет имя 𝑈𝑓. Он представляет собой унитарную матрицу. Унитарная матрица - это сама сопряженная транспонированная матрица. Звучит сложно. Но это просто перевернутая диагональ матрицы. Матрица, которая представляет собой сопряженную транспонированную матрицу, имеет интересные характеристики. Например, когда вы умножаете такую матрицу на себя, результатом является единичная матрица. 𝑈 - матрица, а 𝑈 † - сопряженная к ней транспонированная. Тогда 𝑈 † 𝑈 = 𝑈𝑈 † = 𝐼.
Мы узнали, что матрицы трансформируют состояние кубита. Но единичная матрица не меняет этого. Итак, мы можем сказать 𝐼 | 𝜓⟩ = | 𝜓⟩.
Итак, когда вы дважды умножаете состояние кубита на одно и то же унитарное состояние, это снова приводит к исходному состоянию кубита. Или, иначе говоря, трансформация возвращается сама собой.
Другой важной характеристикой унитарной матрицы является то, что она сохраняет вероятности измерения. И это важный момент в рассматриваемой схеме.
Помните, что все кубиты находятся в состоянии с равной вероятностью 0 и 1 перед подачей их в преобразование. Таким образом, если унитарная матрица не изменяет вероятности, они все равно остаются равными впоследствии.
Почему мы вообще применяем эту матрицу, если она не меняет вероятности?
Разница между | +⟩ и | −⟩ и есть ответ. Как мы уже говорили выше, кубиты в обоих состояниях имеют одинаковые вероятности измерения.
Но уже известные нам ворота Адамара имеют интересный эффект. Он не только превращает кубит из | 0⟩ в | +⟩ и | 1⟩ в | −⟩, но также превращает | +⟩ обратно в | 0⟩ и | −⟩ обратно в | 1⟩. Он возвращается в исходное состояние.
И это то, что делает финальный 𝐻⊗𝑛. Дело в том, что 𝑈𝑓 заменяет определенную проблему, которую мы стремимся решить.
Он переворачивает только некоторые кубиты с | +⟩ на | −⟩. Он переворачивает те, которые должны быть 1 в решении задачи. И он оставляет нетронутыми те элементы в | +⟩, которые должны быть равны 0 в решении.
Вывод
В этом посте мы пролили свет на математику, лежащую в основе квантовой схемы. Мы узнали о математике квантовой схемы и о том, что это значит.
Оказывается, в маленьких математических символах много смысла. Если вы знаете их все, математика - это краткий способ точного описания схемы. Но если вы не знаете всего этого, одной математики в качестве объяснения недостаточно. Он не подчеркивает важные моменты и не дает подсказок (например, ключевых слов), которые вы могли бы использовать для собственного исследования.
Предлагаемая схема представляет собой структуру известных квантовых алгоритмов, таких как алгоритм Дойча-Йозса и алгоритм Бернштейна-Вазирани.
Разница между обоими алгоритмами заключается в реализации 𝑈𝑓.
Матрица 𝑈𝑓 переворачивает эти кубиты с | +⟩ на | −⟩, которые мы хотим измерить как 1. И они образуют решение проблемы, которую стремится решить алгоритм.
В этом посте вы можете узнать больше о деталях Uf и алгоритме Дойча-Йозса.
Чем больше вы узнаете о квантовых вычислениях, тем больше вы поймете математику. Но вы также увидите, что квантовые вычисления - это не только математика. Тогда вы удивитесь, почему никто не потрудился объяснить вещи нематематическим языком.
Математика должна быть дополнением к объяснению. Тогда читателю будет легче понять формулы. Если она уже понимает концепцию, когда видит формулу, скорее всего, все эти символы имеют какой-либо смысл.
Хотите начать работу с квантовым машинным обучением? Взгляните на статью Практическое квантовое машинное обучение с помощью Python.
Первые три главы получите бесплатно здесь.