Наверняка вы знакомы с понятием матрицы. Матрица — это таблица со столбцами и строками. Представьте, что у вас есть кубическая таблица: помимо двух столбцов и строчек, то есть двух измерений, есть еще другое измерение, третье. Тогда у вас получится трехмерная таблица. Она будет описываться тремя индексами: один показывает номер столбца, другой — номер строки, а третий — глубину, на которую мы с вами продвинулись. Срезами этого тензора будут являться матрицы. Теперь можно представить себе ситуацию, когда у вас не три индекса, а четыре. Изобразить это в нашем евклидовом трехмерном пространстве я не могу, но это можно сделать. Когда у вас большие данные, то зачастую у вас тензоры очень большого ранга. Ранг — это как раз количество индексов. То есть у вас может быть n-мерная таблица, где n — это число разных направлений, вдоль которых ходят индексы этой таблицы. Это и есть тензор.

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

Рекомендуем по этой теме:
6607
Квантовые измерения

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

В квантовой теории аналогичная задача встает для описания многочастичных состояний. Когда мы работаем с многочастичной квантовой системой, то мы должны работать в гильбертовом пространстве тензорного произведения пространств каждой частицы. Если у нас есть n квантовых битов, то пространство состояний каждого бита имеет размерность 2, а пространство состояний всей этой цепочки из n кубитов имеет размерность 2n. Получается, что мы имеем n ножек у нашего тензора, который описывает квантовые состояния системы. Встает задача описания этого квантового состояния. Понятно, что хранить в памяти экспоненциально большое 2n число компонент очень сложно. Однако бывают ситуации, когда можно квантовое состояние представить в виде некоторой тензорной сети, то есть в виде свертки маленьких тензоров. И каждый из этих тензоров будет описывать конкретный кубит. Также нужен вспомогательный индекс, который используется для свертки с другим тензором. Это вспомогательное пространство не наблюдаемо физически, мы его используем формально для описания корреляций между кубитами. Если бы корреляции не было, то не было бы и необходимости в этой промежуточной связке. А когда у вас есть корреляция, то связка тензоров обеспечивает описание этих корреляций.

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

Есть такое понятие, как MERA (multiscale entanglement renormalization Ansatz). Эта идея заключается в том, что мы будем строить тензорную сеть более сложного вида. Она строится таким образом, что имеются ножки физических кубитов — это те размерности, которые мы видим. А дальше выстраивается пирамида, где корреляционные свойства этих кубитов все глубже проникают к вершине пирамиды. Получается, что тензорная сеть имеет вид треугольника, и она описывает корреляции между удаленными частями этой схемы. В отличие от предыдущего описания, где у нас был поезд из маленьких тензоров, треугольная конструкция описывает корреляции, которые существуют на длинных расстояниях между кубитами. Эта идея в настоящее время нашла применение и для классических систем. То есть идет прогресс в обратную сторону — от квантовой механики к классической, к классическим задачам. Эта конструкция может использоваться для сжатия данных, поскольку, если вы отсечете верхушку этого треугольника, на ней останется небольшое число индексов, которые будут содержать основную информацию об объекте в основании пирамиды.

С помощью такой тензорной сети мы извлекаем существенную информацию о квантовом состоянии. Если же вы эту усеченную пирамиду инвертируете, перевернете ее другим образом, то есть получится трапеция в обратную сторону, и на вход поставите некоторые данные, то тогда результатом действия этой обратной трапеции будет типичное состояние с корреляциями. То есть это будет типичный объект с заданными свойствами. Если мы соединим одну трапецию и другую трапецию, то мы получим автоэнкодер — это объект, который пытается восстановить все существенные признаки объекта. Интересное сочетание квантово-механических подходов к описанию коррелированных систем и классического подхода к сжатию данных и выделению основных элементов из этих данных — это очень интересная тема.

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