Há muito tempo que me interesso pela computação quântica e escrevo programas para computadores quânticos IBM Q Experience de 5 e 14 qubit. Hoje vou falar sobre tecnologias que podem ser aplicadas no aprendizado de máquina depois que a computação quântica conquistou o mundo. Spoiler para a data dos cientistas: no futuro, você não poderá lançar o modelo e sair para tomar café por meio dia. Um computador quântico clica nas tarefas de aprendizado de máquina de uma só vez e desculpas como "modelo aprende" não funcionam mais. Será necessário lançar não um modelo, mas pelo menos um milhão.

Muitos ouviram dizer que, com a ajuda de computadores quânticos, os cibercriminosos podem invadir os sistemas modernos de criptografia. Ao contrário dos computadores clássicos, para os quais o RSA e algoritmos criptográficos semelhantes são uma boa barreira ao hacking, os computadores quânticos encontram fatores simples em questão de minutos. Isso significa que as informações interceptadas por hackers serão decifradas, mais cedo ou mais tarde.
Obviamente, alguns desses aplicativos assustam os computadores quânticos. Neste artigo, focaremos o lado positivo e consideraremos o que a computação quântica poderá dar para uma nova em uma área como o aprendizado de máquina.
O que é aprendizado de máquina quântico e qual a diferença do convencional
Nos computadores modernos, inclusive para aprendizado de máquina, os cálculos são realizados usando bits clássicos. Nos computadores quânticos, que recentemente ganharam popularidade e estão se desenvolvendo ativamente, são usados bits de um tipo especial - bits quânticos ou qubits abreviados.
Para um bit clássico, existem dois estados - 0 e 1, enquanto que para um qubit é possível um número infinito de combinações de dois estados - essa é a chamada superposição. Se o gato Schrödinger de um conhecido experimento mental, antes de ser aberto, estiver vivo e morto ao mesmo tempo, o qubit, antes de ser medido, poderá estar em superposição, ou seja, igual a zero e um no mesmo momento.
Se vários qubits forem usados, o número de estados possíveis aumentará exponencialmente: para dois qubits em superposição, o número de estados é quatro:
E para três qubits, já existem oito estados:
Esses estados não podem ser medidos diretamente, mas podem ser controlados. Nesse caso, o circuito quântico tem uma probabilidade diferente em vários estados ao mesmo tempo, o que pode ser usado para computação paralela.
Fatores com valores de qubit são chamados de amplitudes - esses são números complexos. Se calcularmos o módulo de amplitude e o quadrarmos, obteremos a probabilidade do estado. A soma das probabilidades de todas as combinações de estados de qubit, como esperado, deve finalmente ser igual à unidade.

Como exemplos de diferentes estados de um qubit, pode-se dar a rotação do elétron ou a polarização de um fóton, mas outras opções também são possíveis. O principal é que os efeitos quânticos também podem ser observados neles. Assim, quase qualquer partícula pode ser um qubit: um elétron, um fóton, um íon e assim por diante.
Como uma partícula pode estar em dois estados simultaneamente e por que as informações sobre um dos estados são completamente perdidas ao medir um qubit? As mais comuns são duas interpretações:
A interpretação de Copenhague afirma que explicar a posição de uma partícula antes de sua medição não faz sentido, uma vez que a física é uma ciência baseada em medições precisas e não deve explicar os fenômenos que não podem ser observados. Assim, se aceitarmos a interpretação de Copenhague, podemos concluir que não há realidade objetiva no nível micro físico.
Alguns cientistas aderem a uma
interpretação de vários mundos , segundo a qual existe um número infinito de universos paralelos, e em alguma fração desses universos uma partícula pode assumir o estado zero e, no restante, um único estado. A descrição mais detalhada e a justificativa filosófica para uma interpretação de vários mundos podem ser encontradas no livro de David Deutsch, The Structure of Reality.
Em qualquer caso, independentemente de qual dessas interpretações você preferir, podemos assumir que, ao medir um qubit, a função de onda entra em colapso (isto é, deixa de se comportar como uma onda e exibe as propriedades de uma partícula), enquanto o qubit assume um dos estados, está realmente se tornando um pouco clássico.
Em geral, os bits clássicos são um subconjunto de qubits; portanto, a Ciência da Computação clássica pode ser considerada um subconjunto da ciência da computação quântica. Como mencionado acima, qualquer qubit após a medição se torna um bit clássico, que, no entanto, pode ser transferido posteriormente para um estado de superposição.
Para obter pelo menos algumas informações sobre a superposição de qubit, você pode usar um truque de vida bastante simples: crie a mesma superposição várias vezes (atue no qubit com os mesmos operadores) e meça o qubit todas as vezes. A partir da distribuição de zeros e os obtidos durante as medições, pode-se ter uma idéia das probabilidades, ou seja, descobrir quais os módulos de amplitudes dos estados de qubit podem ser aproximadamente iguais.
Quais são os benefícios do aprendizado de máquina quântico
Quais são as vantagens da superposição para a computação? Se em um computador comum, ao executar programas multithread, um processador lógico é necessário para cada thread, em um computador quântico, o número de threads pode crescer exponencialmente à medida que o número de qubits no circuito aumenta.
Por exemplo, se 1024 fluxos em um computador comum exigirem o mesmo número de processadores lógicos, em um quantum será apenas 10. É verdade que você só poderá usar esses fluxos indiretamente, ou seja, não poderá monitorar diretamente o trabalho deles.
Você também deve entender que os algoritmos que um computador quântico usa são diferentes dos algoritmos estudados nas seções de Ciência da Computação em computadores clássicos. Obviamente, você não pode transferir o algoritmo clássico para um computador quântico sem primeiro alterá-lo. Além disso, é improvável que algo significativo permaneça do algoritmo original. Provavelmente, ela será completamente alterada, de modo que apenas uma idéia geral dela permanecerá (se ainda houver algo).
O mesmo pode ser dito sobre o aprendizado de máquina. Para computadores quânticos, já existem análogos de algoritmos clássicos de aprendizado de máquina (por exemplo, Random Forest, KNN, redes neurais). Mas, em primeiro lugar, eles são implementados de uma maneira diferente e, em segundo lugar, mais cedo ou mais tarde, aparecerão algoritmos completamente novos que tirarão o máximo proveito das vantagens da computação quântica.
Todos os especialistas no campo de big data e inteligência artificial estão cientes de situações em que um cientista precisa esperar muito tempo para que um modelo aprenda.
É claro que existem modelos simples (como regressão linear) que treinam em pequenos dados em questão de segundos, mas no caso de modelos mais complexos, como redes neurais, o treinamento pode durar de alguns minutos a várias semanas. Para classificar várias variantes desses modelos, é necessária uma paciência extraordinária.
Também existem modelos que até a data mais paciente do cientista se recusará a usar. Em particular, modelos com um grande número de pesos ou aqueles que exigem uma pesquisa exaustiva por um número exponencialmente crescente de combinações. O uso de computadores quânticos é adequado para essas tarefas, o que pode reduzir o tempo de computação de vários anos para vários minutos.
Por que a inteligência artificial precisa acelerar os algoritmos
Nos últimos dois ou três anos, houve um rápido desenvolvimento de tecnologias de visão computacional e, durante o ano passado, muita coisa foi inventada no processamento da linguagem natural.
Nesse caso, o treinamento de modelos complexos dura muito tempo. Mas se supusermos que modelos de complexidade igual ou até maior levariam uma ordem de magnitude menos tempo, seria possível testar hipóteses e modelos de teste muito mais rapidamente.
Consequentemente, o progresso nessas áreas ocorreria em um ritmo acelerado: em vez de uma ou duas descobertas notáveis por mês, podíamos ouvir sobre isso diariamente. O duplo crescimento exponencial no progresso da computação quântica pode levar à mesma taxa de progresso no aprendizado de máquina.
Mecanismos de computação quântica
Um fóton, elétron, íon ou alguma outra partícula pode atuar como um qubit. Se este é um elétron, pode-se medir seu giro (momento angular adequado) e, assim, obter 0 ou 1. Na notação Dirac, esses estados são indicados da seguinte forma:
O estado de um qubit também pode ser expresso usando um vetor. Este é o vetor de estado de um qubit igual a 0:
E este é um vetor qubit igual a 1:
Um papel importante na computação quântica é desempenhado pelo operador Hadamard:
H_1 = \ frac {1} {\ sqrt {2}} \ begin {bmatrix} 1 e 1 \\ 1 & -1 \ end {bmatrix}
Uma maneira de obter uma superposição é aplicar o operador Hadamard a um qubit que esteja em um dos dois estados básicos. Nesse caso, obtemos um estado de qubit quando as probabilidades de obter 0 ou 1 após a medição são iguais. É assim que a superposição será obtida se o estado inicial do qubit for zero:
\\ H_1 \ cdot | 0 \ rangle = \ frac {1} {\ sqrt {2}} \ begin {bmatrix} 1 e 1 \\ 1 & -1 \ end {bmatrix} \ cdot \ begin {bmatrix} 1 \\ 0 \ end {bmatrix} = \ frac {1} {\ sqrt {2}} (| 0 \ rangle + | 1 \ rangle)
Mas essa superposição resultará se o estado inicial for único:
\\ H_1 \ cdot | 1 \ rangle = \ frac {1} {\ sqrt {2}} \ begin {bmatrix} 1 e 1 \\ 1 & -1 \ end {bmatrix} \ cdot \ begin {bmatrix} 0 \\ 1 \ end {bmatrix} = \ frac {1} {\ sqrt {2}} (| 0 \ rangle - | 1 \ rangle)
Outra opção comum para trabalhar com qubits é o uso de entrelaçamento quântico - uma interconexão entre dois qubits, quando mesmo quando separados por uma grande distância, eles mostram uma correlação de 100%. Na correlação direta, se um dos qubits após uma medição assume um determinado estado, o outro qubit adquire exatamente o mesmo estado. Com uma relação inversa, os qubits assumem estados opostos após a medição.
Quais são as possibilidades da computação quântica e do aprendizado de máquina quântica?
Todos os especialistas que desejam economizar tempo podem usar a computação quântica para aprendizado de máquina. Operações como a transformada rápida de Fourier, encontrando a matriz inversa, calculando os valores próprios e os vetores de matriz em um computador quântico, ocorrem com aceleração exponencial.
Obviamente, o trabalho que não consome muitos recursos (por exemplo, visualização de dados) pode continuar sendo realizado em um computador comum, mas algoritmos de aprendizado de máquina, ou pelo menos as partes que podem ser aceleradas usando qubits, podem ser entregues a um computador quântico.
Uma das perguntas que incomoda os especialistas: como trabalhar com dados na computação quântica? Imagine a situação em que temos uma imagem (para facilitar, seja em preto e branco), que queremos submeter à entrada de uma rede neural quântica. A imagem tem um tamanho de 256 por 256 pixels - um tamanho bastante padrão para reconhecimento de imagem.
Para representar esta imagem como números, codificamos cada pixel com um número de ponto flutuante de 64 bits (na verdade, um número inteiro de 8 bits seria suficiente, mas, na prática, a matriz com valores de pixel é dimensionada antes de aplicar à entrada da rede neural, portanto a matriz é preenchida com números de 32 ou 64 bits). Essa imagem pode ser representada na forma de uma matriz de 65536 números, que pesará 512 kilobytes (a rede neural recebe uma imagem não compactada como entrada), ou seja, serão necessários 4194304 bits.
Se essa imagem for codificada usando qubits, seu número será significativamente menor: traduziremos n qubits em uma superposição e o valor de cada pixel poderá ser representado como a amplitude de cada um dos estados possíveis. O número de tais estados é dois no grau n. Para encontrar n, encontramos o logaritmo binário do número de pixels.
Como você pode ver, as ações são bastante simples, então você nem precisa escrever fórmulas. Como resultado, o número n passa a ser 16. Isso é quantos qubits são necessários para codificar esta imagem, ou seja, 262144 vezes menos do que quando se usa bits clássicos.
Se tivermos 66 qubits e depois os traduzirmos em uma superposição, você poderá codificar mais de um trilhão de imagens coloridas no formato 4K.
Assim, a codificação quântica permite alcançar a compressão logarítmica da informação. Consequentemente, a aceleração dos métodos de aprendizado de máquina ao trabalhar com esses dados pode ser exponencial.
Bibliotecas e linguagens de programação especializadas
Hoje, muitas linguagens de programação possuem bibliotecas para computação quântica. Algumas dessas bibliotecas funcionam apenas com simulação da computação quântica, mas muitas suportam computadores quânticos reais, incluindo computadores em nuvem, como back-end.
Se você opera diretamente com qubits, isso é semelhante à gravação de código assembler de baixo nível em computadores clássicos. Curiosamente, uma dessas linguagens de programação de "baixo nível" usadas para programar cálculos em computadores quânticos é o Python.
Uma das bibliotecas dessa linguagem -
Qiskit - funciona tanto no simulador quanto no back-end quântico, e também permite executar operações em qubits em um nível baixo. Para programação de nível superior, é conveniente usar o
PennyLane , uma biblioteca para aprendizado de máquina quântico. O repositório desta biblioteca possui exemplos da implementação de algoritmos de aprendizado de máquina, incluindo uma rede neural quântica.
Perspectivas para a computação quântica
Em janeiro de 2019, o primeiro computador quântico comercial foi lançado - o IBM Q System One. Agora também, para a computação quântica, você pode usar sistemas em nuvem para pesquisadores e empresas comerciais.
Todos podem executar seu algoritmo quântico na plataforma de nuvem
IBM Q Experience , e você nem precisa conhecer linguagens de programação para criar um esquema quântico, pois além de inserir comandos, é possível usar a interface gráfica chamada Circuit Composer.
Em setembro de 2019, informações não oficiais pareciam que o Google havia alcançado superioridade quântica resolvendo um dos problemas em um computador quântico a uma velocidade que não estava disponível nem mesmo para o supercomputador mais poderoso. Mesmo que as notícias sejam prematuras, esses relatórios sugerem que a superioridade quântica está próxima.
Vários gigantes de TI estão imediatamente procurando as melhores soluções para computadores quânticos. Alguns pesquisadores prevêem que uma lei semelhante à de Moore será aplicada a computadores quânticos.
É verdade que a velocidade de desenvolvimento, diferentemente dos computadores clássicos, provavelmente não é um expoente comum comum, mas é o dobro, então os programadores que trabalham com computação quântica precisarão criar um grande número de programas em um futuro próximo.
Quanto à esfera da publicidade e marketing, na qual estou trabalhando atualmente, os modelos de aprendizado de máquina aplicados devem passar por uma transformação completa. O que funciona em computadores clássicos será significativamente inferior em termos de velocidade e qualidade aos modelos do futuro.
As tecnologias mais recentes não trarão menos alterações ao processo de digitalização do público-alvo. Bots indescritíveis movidos por computadores quânticos abrirão espaços abertos nas redes sociais, capturando as menores mudanças nos gostos e no humor da platéia. Quem sabe, talvez as próprias campanhas publicitárias possam ser lançadas apenas expressando desejos gerais ao computador sobre seus objetivos.