Наслаждаясь своим путешествием по изучению мира технологий и науки о данных, я наткнулся на множество вещей, которые пробудили во мне интерес до такой степени, что я твердо верил, что ничто другое не сможет. Есть много вещей, которым вы можете научить компьютер, например, предсказывать будущее и создавать собственное искусство. Это мощные и увлекательные приложения сами по себе. Но есть много сложностей и извилин, связанных с этой великой силой. Я узнал об этом из первых рук. Один из моих любимых проектов, над которым я сейчас работаю, используя генеративную модель, созданную учеными из Массачусетского технологического института. под названием Условная табличная GAN. (Если вас интересуют генеративные модели или CTGAN, прочтите мою другую статью: https://drjariel.medium.com/introduction-to-generative-modeling-d4e321f61474). Мне удалось сгенерировать синтетический набор данных из конкурса Pump it Up: Data Mining the Water Table, организованного Datadriven. Это был набор данных из 59 000 строк. Это был успех! Мне удалось сгенерировать синтетический набор данных из 56 000 строк, который использовался в качестве обучающих данных для классификатора Random Forest. На мой взгляд, модель показала себя хорошо, она смогла достичь точности 71%, самая высокая точность на момент проведения конкурса составляла примерно 82%. Для меня это победа. Но бэкэнд эксперимента проливает свет на знакомую историю с машинным обучением, нейронными сетями и, в частности, с GAN: компьютеру может потребоваться исключительно много времени для обучения модели на наборе данных большого размера. Например, я установил модель, обученную только 1000 эпох, и только на 15000 образцов из 59000 доступных это заняло более 2 часов. Но это очень субъективно, некоторым моделям могут потребоваться месяцы или годы и даже теоретически вечность для обучения и решения некоторых задач, таких как шифрование. Я люблю моделировать, но наши обычные методы несколько примитивны. Это побудило меня попытаться найти новые методы, которые затем я познакомил с квантовыми вычислениями и квантовым машинным обучением.

Квантовые вычисления — это сектор компьютерных наук, который фокусируется на технологиях, основанных на квантовой теории. Квантовая теория была предложена в начале 1900-х годов. Он предполагает, что частицы на субатомном уровне могут двигаться как волны и частицы одновременно. Проще говоря, большинство наук, занимающихся чем-либо «квантовым», имеют дело с субатомным уровнем. Основная цель квантовых вычислений — обрабатывать и делать вещи быстрее, чем наши классические компьютеры. А теория квантового машинного обучения берет теорию классического машинного обучения и рассматривает ее с точки зрения квантовых вычислений. В этой статье я надеюсь поделиться некоторыми основами удивительного мира квантовых вычислений и квантового машинного обучения.

Лучше всего начать со строительных блоков традиционных компьютеров, а также квантовых компьютеров. Наиболее фундаментальные строительные блоки компьютеров, вероятно, неизвестны многим в мире. «Бит» — наш основной источник связи с нашими классическими компьютерами. Идея заключается в том, что данные могут храниться в единицах и нулях, и именно так работают классические компьютеры. Его можно представить как транзистор, где высокое напряжение соответствует единицам, а низкое — нулям. Так работает почти все на классическом компьютере, от сообщений до мультимедиа, квантовые компьютеры работают по тому же принципу. «Кубит» является основой для квантовых вычислений, что означает «квантовая двоичная цифра». Там, где кубит отличается от бита, бит может быть только 1 или 0, где кубит может занимать все позиции одновременно: 1 и 0, 1 и 1, 0 и 0, 0 и 1 (это будет обсуждаться в более подробно позже). Это связано с тем, что кубит действует и как частица, и как волна. Волновое распределение хранит много данных по сравнению с частицей (или битом).

Теперь, когда у вас есть некоторые знания о том, как работают как классические компьютеры, так и квантовые компьютеры, самое время обсудить некоторые различия более высокого уровня между классическим машинным обучением и квантовым машинным обучением. Хотя некоторые механизмы схожи в обеих формах машинного обучения, есть один определяющий аспект, который их разделяет. Ближе к концу классического процесса машинного обучения функция потерь используется для проверки точности модели. Во время обучения модель обязательно будет ошибаться в прогнозах, и функция потерь — это способ отслеживать это. Квантовый компьютер также направлен на уменьшение функции потерь. У него есть свойство, называемое квантовым туннелированием, которое просматривает все пространство функции потерь и находит значение, где потери минимальны и, следовательно, где алгоритм будет работать лучше всего и с очень высокой скоростью. Это один из многих аспектов, которые разделяют их.

Основы квантовых вычислений

Чтобы продолжить ваше обучение квантовому машинному обучению эффективно, есть некоторая терминология, которую мы должны рассмотреть.

Обозначения скобок и линейная алгебра

К моему удивлению (не уверен, почему я был удивлен), квантовые вычисления — это в основном линейная алгебра. То, как вы манипулируете кубитами, в значительной степени похоже на манипулирование матрицами. Но даже для того, чтобы начать понимать математический аспект, вы должны знать язык, на котором написана эта конкретная математика. Это называется нотация Бракета или нотация Дирака, и она используется для написания уравнений. Это очень важно для новичков в квантовой науке, потому что академические статьи изобилуют обозначениями Бракета.

Нотация Bra-ket использует угловые скобки 〈〉 и вертикальную черту ⎢ для построения «лифчиков» и «кетов».

Далее следует основа линейной алгебры.

«Кет» выглядит так |v〉. Математически это обозначает вектор v в комплексном векторном пространстве V. Векторное пространство — это место, где живут все векторы.

«Бюстгальтер» выглядит так: 〈f|. В математике он обозначает линейную функцию f: V ➝ C, например, линейную карту, которая отображает каждый векторв V в число в комплексной плоскости C.

Допуская такую ​​линейную функцию: 〈f| действовать на вектор |v〉 обозначается как:

〈f|v〉⍷ C

Квантовые состояния, такие как волновые функции, могут быть представлены в виде векторов в комплексном состоянии с использованием нотации Бракета. Термин «квантовая суперпозиция» также может быть обозначен с использованием этой записи.

Кубиты и суперпозиция

В отличие от бита классического компьютера, в квантовых вычислениях мы используем «кубит», как указано выше. Напомним, бит может занимать только одну из двух позиций, 1 или 0. В отличие от кубита, который может занимать все позиции одновременно. Да, поначалу для меня это была сложная идея, и я думаю, что пример послужит лучшим способом пояснения. Скажем, мы проводим эксперимент, в котором мы проверяем, сможете ли вы угадать, в какой руке я держу долларовую купюру. Прежде чем сделать выбор, можете ли вы узнать, какая рука правильная? Нет, пока вы не выберете руку, есть вероятность, что она может быть в обеих руках. Так обстоит дело с кубитами. Это называется суперпозицией двух состояний. Это показывает, что вероятность измерения 1 или 0 перед принятием решения обычно не равна ни 0,0, ни 1,0. Кроме того, это показывает, что существует вероятность того, что кубит находится в разных состояниях одновременно. В случае нашего эксперимента, когда вы выбираете руку, суперпозиция рушится, потому что теперь мы знаем.

Сфера Блоха

Блочная сфера — это математическое представление кубита. Это помогает представить состояние кубита двумерным вектором. Этот вектор состоит из двух элементов: действительного числа α и комплексного числа β. Кубиты можно рассматривать как суперпозицию двух состояний и обозначать следующим образом:

|ψ〉 = α |0〉 + β |1〉

Квантовая запутанность

Идея квантовой запутанности относится к идее, что если мы возьмем два кубита, они всегда будут находиться в суперпозиции двух состояний. Вот классический пример. Скажем, у нас есть коробка с парой перчаток внутри. Наугад вас просят взять одну из перчаток из коробки. Затем коробку переносят в другое место. Вынутая перчатка оказалась левосторонней, поэтому мы автоматически знаем, что другая перчатка — правосторонняя. То же самое и с кубитами. Если один находится в положении вращения вверх, то другой автоматически находится в положении вращения вниз. Не существует сценария, в котором оба кубита находятся в одном и том же состоянии. Другими словами, они всегда запутаны. Это известно как квантовая запутанность.

Квантовое ускорение

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

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