He estado interesado en la computación cuántica durante mucho tiempo y escribí programas para computadoras cuánticas IBM Q Experience de 5 y 14 qubits. Hoy hablaré sobre tecnologías que pueden aplicarse en el aprendizaje automático después de que la computación cuántica haya conquistado el mundo. Spoiler de la fecha de los científicos: en el futuro, no podrá lanzar el modelo y dejar de tomar café durante medio día. Una computadora cuántica hace clic en las tareas de aprendizaje automático a la vez, y las excusas como "modelo aprende" ya no funcionan. Será necesario lanzar no un modelo, sino al menos un millón.

Muchos han escuchado que con la ayuda de las computadoras cuánticas, los ciberdelincuentes pueden entrar en los sistemas modernos de cifrado. A diferencia de las computadoras clásicas, para las cuales RSA y algoritmos criptográficos similares son una buena barrera para la piratería, las computadoras cuánticas encuentran factores simples en cuestión de minutos. Esto significa que la información interceptada por los hackers tarde o temprano será descifrada.
Por supuesto, algunas de estas aplicaciones ahuyentan a las computadoras cuánticas. En este artículo, nos centraremos en el lado positivo y consideraremos qué computación cuántica podrá ofrecer una nueva para un área como el aprendizaje automático.
¿Qué es el aprendizaje automático cuántico y cuál es su diferencia con respecto al convencional?
En las computadoras modernas, incluso para el aprendizaje automático, los cálculos se realizan utilizando bits clásicos. En las computadoras cuánticas, que recientemente han ganado popularidad y se están desarrollando activamente, se utilizan bits de un tipo especial: bits cuánticos o qubits abreviados.
Para un bit clásico, hay dos estados: 0 y 1, mientras que para un qubit es posible un número infinito de combinaciones de dos estados: esta es la llamada superposición. Si el gato Schrödinger de un conocido experimento mental, antes de abrirlo, está vivo y muerto al mismo tiempo, entonces el qubit, antes de ser medido, puede estar en superposición, es decir, igual a cero y uno en el mismo momento.
Si se usan varios qubits, entonces el número de estados posibles crece exponencialmente: para dos qubits que están en superposición, el número de estados es cuatro:
Y para tres qubits, ya hay ocho estados:
Estos estados no pueden medirse directamente, pero pueden controlarse. En este caso, el circuito cuántico tiene diferentes probabilidades en varios estados al mismo tiempo, lo que se puede utilizar para la computación paralela.
Los factores con valores de qubit se llaman amplitudes: son números complejos. Si calculamos el módulo de amplitud y lo elevamos al cuadrado, entonces obtenemos la probabilidad del estado. La suma de las probabilidades de todas las combinaciones de estados qubit, como se esperaba, debería ser, en última instancia, igual a la unidad.

Como ejemplos de diferentes estados de un qubit, se puede dar el giro electrónico o la polarización de un fotón, pero también son posibles otras opciones. Lo principal es que los efectos cuánticos también se pueden observar en ellos. Por lo tanto, casi cualquier partícula puede ser un qubit: un electrón, un fotón, un ion, etc.
¿Cómo puede una partícula estar en dos estados simultáneamente y por qué la información sobre uno de los estados se pierde por completo al medir un qubit? Las más comunes son dos interpretaciones:
La interpretación de Copenhague afirma que explicar la posición de una partícula antes de su medición no tiene sentido, ya que la física es una ciencia basada en mediciones precisas, y no debe explicar esos fenómenos que no se pueden observar. Por lo tanto, si aceptamos la interpretación de Copenhague, podemos concluir que no existe una realidad objetiva a nivel micro físico.
Algunos científicos se adhieren a una
interpretación multimundo , según la cual hay un número infinito de universos paralelos, y en alguna fracción de estos universos una partícula puede tomar el estado cero, y en el resto puede tomar un solo estado. La descripción más detallada y la justificación filosófica para una interpretación multimundo se puede encontrar en el libro de David Deutsch, The Structure of Reality.
En cualquier caso, independientemente de cuál de estas interpretaciones prefiera, podemos suponer que al medir un qubit, la función de onda colapsa (es decir, deja de comportarse como una onda y exhibe las propiedades de una partícula), mientras que el qubit toma uno de los estados, luego en realidad se está convirtiendo en un clásico.
En general, los bits clásicos son un subconjunto de qubits, por lo que la informática clásica podría considerarse un subconjunto de la ciencia de la computación cuántica. Como se mencionó anteriormente, cualquier qubit después de la medición se convierte en un bit clásico, que, sin embargo, luego puede transferirse a un estado de superposición.
Para obtener al menos algo de información sobre la superposición de qubit, puede usar un truco de vida bastante simple: cree la misma superposición muchas veces (actúe en el qubit con los mismos operadores) y mida el qubit cada vez. A partir de la distribución de ceros y unos obtenidos durante las mediciones, uno puede tener una idea de las probabilidades, es decir, descubrir a qué pueden ser aproximadamente iguales los módulos de amplitudes de los estados qubit.
¿Cuáles son los beneficios del aprendizaje automático cuántico?
¿Cuáles son las ventajas de la superposición para la informática? Si en una computadora normal, cuando se ejecutan programas de subprocesos múltiples, se requiere un procesador lógico para cada subproceso, entonces, en una computadora cuántica, el número de subprocesos puede crecer exponencialmente a medida que aumenta el número de qubits en el circuito.
Por ejemplo, si 1024 transmisiones en una computadora normal requieren la misma cantidad de procesadores lógicos, en una cuántica solo son 10. Es cierto, solo puede usar estas transmisiones indirectamente, es decir, no podrá monitorear directamente su trabajo.
También debe comprender que los algoritmos que utiliza una computadora cuántica son diferentes de los algoritmos estudiados en las secciones de informática en computadoras clásicas. Por supuesto, no puede transferir el algoritmo clásico a una computadora cuántica sin cambiarlo primero. Además, es poco probable que quede algo significativo del algoritmo original. Lo más probable es que se cambie por completo, de modo que solo quede una idea general (si es que queda algo).
Lo mismo puede decirse sobre el aprendizaje automático. Para las computadoras cuánticas, ya existen análogos de algoritmos clásicos de aprendizaje automático (por ejemplo, Random Forest, KNN, redes neuronales). Pero, en primer lugar, se implementan de una manera diferente, y en segundo lugar, tarde o temprano, aparecerán algoritmos completamente nuevos que aprovecharán al máximo las ventajas de la computación cuántica.
Todos los especialistas en el campo de los grandes datos y la inteligencia artificial son conscientes de las situaciones en que un científico tiene que esperar mucho tiempo para que un modelo aprenda.
Por supuesto, hay modelos simples (como la regresión lineal) que se entrenan en datos pequeños en cuestión de segundos, pero en el caso de modelos más complejos, como las redes neuronales, el entrenamiento puede durar desde unos pocos minutos hasta varias semanas. Para clasificar varias variantes de tales modelos, se requiere una paciencia notable.
También hay modelos que incluso la fecha más paciente del científico se negará a usar. En particular, los modelos con un gran número de pesos o aquellos que requieren una búsqueda exhaustiva de un número de combinaciones exponencialmente creciente. El uso de computadoras cuánticas es adecuado para tales tareas, que pueden reducir el tiempo de cálculo de varios años a varios minutos.
¿Por qué la inteligencia artificial necesita acelerar los algoritmos?
En los últimos dos o tres años, ha habido un rápido desarrollo de las tecnologías de visión por computadora, y en el último año se ha inventado mucho en el procesamiento del lenguaje natural.
En este caso, la formación de modelos complejos dura mucho tiempo. Pero si asumimos que modelos de la misma complejidad o incluso mayores tomarían un orden de magnitud menos tiempo, entonces sería posible probar hipótesis y modelos de prueba mucho más rápido.
En consecuencia, el progreso en estas áreas ocurriría a un ritmo acelerado: en lugar de uno o dos descubrimientos notables por mes, podríamos escuchar sobre eso diariamente. El doble crecimiento exponencial en el progreso de la computación cuántica puede conducir a la misma tasa de progreso en el aprendizaje automático.
Mecanismos de computación cuántica
Un fotón, electrón, ion u otra partícula puede actuar como un qubit. Si este es un electrón, entonces uno puede medir su espín (momento angular apropiado) y así obtener 0 o 1. En la notación de Dirac, estos estados se denotan de la siguiente manera:
El estado de un qubit también se puede expresar usando un vector. Este es el vector de estado de un qubit igual a 0:
Y este es un vector qubit igual a 1:
El operador de Hadamard juega un papel importante en la computación cuántica:
H_1 = \ frac {1} {\ sqrt {2}} \ begin {bmatrix} 1 & 1 \\ 1 & -1 \ end {bmatrix}
Una forma de obtener una superposición es aplicar el operador Hadamard a un qubit que se encuentra en uno de los dos estados básicos. En este caso, obtenemos un estado qubit cuando las probabilidades de obtener 0 o 1 después de la medición son iguales. Así es como se obtendrá la superposición si el estado inicial del qubit es cero:
\\ H_1 \ cdot | 0 \ rangle = \ frac {1} {\ sqrt {2}} \ begin {bmatrix} 1 & 1 \\ 1 & -1 \ end {bmatrix} \ cdot \ begin {bmatrix} 1 \\ 0 \ end {bmatrix} = \ frac {1} {\ sqrt {2}} (| 0 \ rangle + | 1 \ rangle)
Pero tal superposición resultará si el estado inicial es único:
\\ H_1 \ cdot | 1 \ rangle = \ frac {1} {\ sqrt {2}} \ begin {bmatrix} 1 & 1 \\ 1 & -1 \ end {bmatrix} \ cdot \ begin {bmatrix} 0 \\ 1 \ end {bmatrix} = \ frac {1} {\ sqrt {2}} (| 0 \ rangle - | 1 \ rangle)
Otra opción común para trabajar con qubits es el uso de entrelazamiento cuántico, como una interconexión entre dos qubits, cuando incluso cuando están separados en una gran distancia, muestran una correlación del 100 por ciento. En correlación directa, si uno de los qubits después de una medición asume un cierto estado, el otro qubit adquiere exactamente el mismo estado. Con una relación inversa, los qubits toman estados opuestos después de la medición.
¿Cuáles son las posibilidades de la computación cuántica y el aprendizaje automático cuántico?
Todos los especialistas que desean ahorrar tiempo pueden usar la computación cuántica para el aprendizaje automático. Operaciones como la transformación rápida de Fourier, encontrar la matriz inversa, calcular los valores propios y los vectores de matriz en una computadora cuántica ocurren con aceleración exponencial.
Por supuesto, el trabajo que no requiere muchos recursos (por ejemplo, visualización de datos) puede continuar en una computadora normal, pero los algoritmos de aprendizaje automático, o al menos aquellas partes que pueden acelerarse usando qubits, pueden administrarse a una computadora cuántica.
Una de las preguntas que molesta a los especialistas: ¿cómo trabajar con datos en computación cuántica? Imagine la situación en la que tenemos una imagen (para que sea más fácil, que sea en blanco y negro), que queremos enviar a la entrada de una red neuronal cuántica. La imagen tiene un tamaño de 256 por 256 píxeles, un tamaño bastante estándar para el reconocimiento de imágenes.
Para representar esta imagen como números, codificamos cada píxel con un número de coma flotante de 64 bits (de hecho, un número entero de 8 bits sería suficiente, pero en la práctica, la matriz con valores de píxel se escala antes de aplicar a la entrada de la red neuronal, por lo que la matriz se llena con números de 32 o 64 bits). Dicha imagen se puede representar en forma de una matriz de 65536 números, que pesarán 512 kilobytes (la red neuronal recibe una imagen sin comprimir como entrada), es decir, se requerirán 4194304 bits.
Si esta imagen se codifica usando qubits, entonces su número será mucho menor: traduciremos n qubits en una superposición, y el valor de cada píxel se puede representar como la amplitud de cada uno de los estados posibles. El número de tales estados es dos en grado n. Para encontrar n, encontramos el logaritmo binario del número de píxeles.
Como puede ver, las acciones son bastante simples, por lo que ni siquiera tiene que escribir fórmulas. Como resultado, el número n resulta ser 16. Esa es la cantidad de qubits que se necesitan para codificar esta imagen, es decir, 262144 veces menos que cuando se usan bits clásicos.
Si tenemos 66 qubits, luego de traducirlos en una superposición, puede codificar más de un billón de imágenes en color en formato 4K.
Por lo tanto, la codificación cuántica le permite a uno lograr la compresión logarítmica de la información. En consecuencia, la aceleración de los métodos de aprendizaje automático cuando se trabaja con dichos datos puede ser exponencial.
Lenguajes de programación especializados y bibliotecas.
Hoy, muchos lenguajes de programación tienen bibliotecas para la computación cuántica. Algunas de estas bibliotecas funcionan solo con la simulación de la computación cuántica, pero muchas admiten computadoras cuánticas reales, incluidas las de la nube, como back-end.
Si opera directamente con qubits, entonces esto es similar a escribir código de ensamblador de bajo nivel en computadoras clásicas. Por extraño que parezca, uno de estos lenguajes de programación de "bajo nivel" utilizado para programar cálculos en computadoras cuánticas es Python.
Una de las bibliotecas para este lenguaje,
Qiskit , funciona tanto en el simulador como en el backend cuántico, y también permite realizar operaciones en qubits a un nivel bajo. Para la programación de alto nivel, es conveniente usar
PennyLane , una biblioteca para el aprendizaje automático cuántico. El repositorio de esta biblioteca tiene ejemplos de la implementación de algoritmos de aprendizaje automático, incluida una red neuronal cuántica.
Perspectivas para la computación cuántica
En enero de 2019, se lanzó la primera computadora cuántica comercial: la IBM Q System One. También ahora, para la computación cuántica, puede usar sistemas en la nube tanto para investigadores como para empresas comerciales.
Todos pueden ejecutar su algoritmo cuántico en la plataforma en la nube
IBM Q Experience , y ni siquiera necesita saber lenguajes de programación para crear un esquema cuántico, ya que además de ingresar comandos, puede usar la interfaz gráfica llamada Circuit Composer.
En septiembre de 2019, apareció información no oficial de que Google había logrado la superioridad cuántica al resolver uno de los problemas en una computadora cuántica a una velocidad que ni siquiera estaba disponible para la supercomputadora más poderosa. Incluso si la noticia es prematura, dichos informes sugieren que la superioridad cuántica está cerca.
Varios gigantes de TI están buscando inmediatamente las mejores soluciones para computadoras cuánticas. Algunos investigadores predicen que una ley similar a la de Moore se aplicará a las computadoras cuánticas.
Es cierto que la velocidad de desarrollo, a diferencia de las computadoras clásicas, probablemente no sea un exponente simple ordinario, sino doble, por lo que los programadores que trabajan con la computación cuántica tendrán que crear una gran cantidad de programas en el futuro cercano.
En cuanto al ámbito de la publicidad y el marketing, en el que estoy trabajando actualmente, los modelos de aprendizaje automático aplicados deben experimentar una transformación completa. Lo que funciona en las computadoras clásicas será significativamente inferior en términos de velocidad y calidad a los modelos del futuro.
Las últimas tecnologías traerán no menos cambios al proceso de escaneo del público objetivo. Los robots esquivos impulsados por computadoras cuánticas abrirán espacios abiertos de redes sociales, captando los cambios más pequeños en los gustos y estados de ánimo de la audiencia. Quién sabe, tal vez las campañas publicitarias en sí mismas se puedan lanzar solo expresando deseos generales a la computadora sobre sus objetivos.