# Inteligencia Artificial Cuántica

La Inteligencia Artificial Cuántica es un campo interdisciplinar que se enfoca en construir algoritmos cuánticos para mejorar las tareas computacionales dentro de la inteligencia artificial (IA), incluyendo subcampos como el aprendizaje automático. Existen evidencias que muestran una posible ventaja cuadrática cuántica en operaciones fundamentales de la IA.
Los fenómenos de la mecánica cuántica como la superposición, el entrelazamiento y la interferencia permiten que la computación cuántica realice cálculos con posible ventaja cuántica frente a los algoritmos clásicos de IA utilizados en la visión por computadora, el procesamiento del lenguaje natural y la robótica. Todo el concepto de algoritmos de IA mejorada cuánticamente se encuentra todavía en el dominio de la investigación conceptual, debido a que la computación cuántica todavía no está muy desarrollada experimentalmente. Partiendo de propuestas teóricas recientes, estudios prácticos iniciales sugieren que estos conceptos tienen la posibilidad de ser implementados en el laboratorio, bajo condiciones estrictamente controladas.

## Ventajas cuánticas

Una de las principales ventajas que proporciona la mecánica cuántica es la posibilidad de generar números verdaderamente aleatorios, lo cual no es posible para un ordenador clásico. Así, procesos de optimización como métodos Monte Carlo, paseo aleatorio o el recocido simulado se pueden beneficiar de ello.
Para producir un número aleatorio se aplican la puertas cuánticas Hadamard sobre una cadena de N cúbits en el estado |0>, produciendo una superposición de 2$^N$ estados. Al medir sobre la base computacional se obtiene una cadena de N bits que codifica un número aleatorio entre 0 y 2$^N$-1. Repitiendo el proceso sobre la misma cadena se pueden concatenar resultados obteniendo números aleatorios más grandes.
Por otra parte, la computación cuántica ofrece algoritmos de búsqueda sobre superposiciones de estados que reducen la complejidad en tiempo polinomial, utilizando algoritmos similares al de búsqueda de Grover. Otros algoritmos como el paseo cuántico ha demostrado ser exponencialmente más rápido que su análogo clásico, el paseo aleatorio, permitiendo solucionar problemas NP-completos. A veces el algoritmo de Grover se combina con el paseo cuántico para mejorar el rendimiento.
Hoy en día se intentan replicar muchas técnicas de inteligencia artificial en su versión cuántica, aunque todavía es pronto para poder implementarlos de forma que se obtenga una mejora frente a la versión clásica.

## Algoritmo de Grover

Uno de los problemas básicos de la ciencia computacional es la búsqueda de un elemento en una lista desordenada de N elementos. Clásicamente la búsqueda consume un tiempo del orden de N, debido a que debe iterar elemento a elemento, y por tanto se vuelve muy difícil cuando la lista aumenta mucho de tamaño. Cuánticamente Grover propuso un algoritmo que mejora el rendimiento, tardando un tiempo proporcional a ${\sqrt {N}}$, es decir, tiene una ventaja cuadrática.
El algoritmo parte de una cadena de cúbits conteniendo una superposición uniforme de todos los elementos de la lista, que se construye con la aplicación de la puerta cuántica Hadamard sobre cada uno de los cúbits. Después, se aplica un operador unitario llamado oráculo que cambia el signo al estado buscado dentro de la combinación lineal, marcándolo. Posteriormente, se aplica otra operación conocida como inversión sobre la media, que aumenta la amplitud de probabilidad para el estado marcado. La aplicación del oráculo y de la inversión sobre la media se aplican varias veces hasta que la probabilidad de que al medir se obtenga el estado deseado sea máxima.
Modificaciones del algoritmo de Grover permiten buscar elementos en cualquier superposición lineal, teniendo aplicaciones en reconocimiento de voz, de cara, de huella dactilar, minado de datos, etc.
También se puede emplear el algoritmo para problemas de minimización como en aprendizaje automático, buscando un elemento menor que uno definido previamente. Para ello el oráculo determina si cada elemento de la lista es menor o no que el predefinido.

## Paseo cuántico

Uno de los problemas que se plantean en inteligencia artificial es el muestreo en distribuciones de probabilidad de alta dimensión, por ejemplo para calcular promedios sobre distribuciones de Boltzmann. Clásicamente se emplean algoritmos con paseo aleatorio para recorrer la distribución. En estos algoritmos, se parte de un punto de la distribución, y aleatoriamente se va moviendo en cada iteración a puntos vecinos, teniendo además en cuenta la propia distribución de probabilidad para ver si es favorable cambiar de punto o no.
El equivalente cuántico se llama paseo cuántico. En este caso tenemos un sistema con unos cúbits para guardar los estados de la distribución, y otros con función de moneda cuántica que darán aleatoriedad a los movimientos. Para ello, en cada iteración se aplica un operador de moneda como Hadamard sobre estos últimos cúbits para producir una superposición, y posteriormente otro operador modifica el estado del sistema en función del estado de la moneda. Si no se mide sobre los cúbits de moneda, al final se acaba teniendo una superposición de todos los estados a los que puede llegar el sistema, dando una muestra representativa de la distribución de probabilidad.
El operador de moneda se puede modificar de tal manera que durante el paseo cuántico también se aplique una búsqueda de Grover, amplificando la amplitud de un estado deseado.
Recocido cuántico
Una técnica clásica relacionada con el paseo aleatorio es el recocido simulado, que sirve para encontrar el mínimo global de una función. Este algoritmo es útil en inteligencia artificial por ejemplo para mejorar los resultados del gradiente descendiente, que se queda en mínimos locales. El proceso consiste en realizar los pasos aleatorios de acuerdo a una distribución térmica, cuyo parámetro de temperatura inicialmente es alto y se reduce progresivamente. Así, al principio cuando la temperatura es alta el sistema puede evadir mínimos locales, y según se enfría alcanza el mínimo global.
El recocido cuántico utiliza un parámetro de fluctuación cuántica en lugar de la temperatura, de modo que se puede realizar con un ordenador cuántico sin necesidad de simularlo. Debido a la fluctuación cuántica, el sistema puede escapar de mínimos locales a través de efecto túnel.
Los computadores cuánticos basados en recocido cuántico utilizan computación cuántica adiabática, partiendo de un sistema que evoluciona en el tiempo según la ecuación de Schrödinger. No se corresponden a máquinas de Turing universales, sino que más bien están relacionados con computadores analógicos.

## Algoritmos genéticos

Los algoritmos genéticos son unos algoritmos robustos que permiten optimizar problemas codificables en una cadena de datos, basándose en la evolución y selección natural del ADN. Una vez codificada la cadena, esta es sometida a procesos de reproducción, mutación, recombinación, etc., seguida de una selección de aquella cadena que obtiene el mejor rendimiento para un problema dado. Así, de forma iterativa se puede encontrar una cadena óptima para el problema.
La versión cuántica de los algoritmos genéticos consiste en codificar la secuencia en una cadena de cúbits. A diferencia de su análogo clásico, esta cadena de cúbits puede estar en superposición cuántica, de manera que codifica múltiples secuencias de manera simultánea. Cada secuencia clásica se denomina un individual de modo que el equivalente individual clásico se trata de una combinación de varios individuales clásicos.
El estado del individual cuántico se entrelaza con otra cadena de cúbits que contiene la respuesta de la función que se quiere optimizar. Al tener el individual con una superposición, la respuesta de la función también está en superposición. Al medir la respuesta se consigue entonces tener en el individual solamente en superposición los estados que producen la respuesta medida.
Entonces, el algoritmo es el siguiente:
* Se genera una población de individuales cuánticos totalmente mezclados (cada uno siendo una superposición de todos los posibles individuales clásicos).
* Se calcula la respuesta de los individuales.
* Se mide la respuesta, colapsando los individuales a superposiciones de estados que tengan la respuesta concreta medida.
* Se selecciona el individual con la mejor respuesta.
* Se realizan mutaciones y entrecruzamiento en los individuales (de manera que ahora los estados de una misma superposición ya no tendrán la misma respuesta).
* Se repite el proceso desde el paso 2, hasta obtener una respuesta óptima.
Un gran problema de los algoritmos genéticos clásicos es que el proceso de optimización puede caer en un mínimo (o máximo) local, ya que parte de un individual concreto y mediante la selección no se explora todo el espacio de soluciones. Sin embargo, el algoritmo cuántico trata con superposiciones de individuales clásicos que comparten la misma respuesta, pudiendo estar muy separados en el espacio de soluciones, y por tanto el algoritmo de optimización podrá explorar todo el espacio en busca del óptimo global. Además, si surge un individual con buenas propiedades, mientras que en el caso clásico es probable que se pierda durante las recombinaciones, en el caso cuántico es menos probable pues se recombinan con varios estados al estar en superposición.
Un impedimento para realizar la reproducción de los individuales es la imposibilidad de la mecánica cuántica de clonar estados (véase Teorema de no clonación). Sin embargo, sí es posible copiar de forma inexacta, cuyos errores pueden considerarse mutaciones naturales, lo que puede ser una ventaja para algoritmos basados en mutaciones.

## Aprendizaje automático cuántico

Al igual que su análogo clásico, el aprendizaje automático cuántico utiliza los datos y la experiencia para aprender, utilizando en este caso las reglas de la mecánica cuántica. De forma análoga al aprendizaje clásico, podemos separar los algoritmos en aprendizaje supervisado, no supervisado, y por refuerzo.
Dentro del aprendizaje automático supervisado, los computadores cuánticos intentan aprender de unos datos previamente etiquetados. Actualmente se están intentando implementar redes neuronales cuánticas, aunque existen problemas en su implementación debido a la linealidad de la mecánica cuántica. Otros casos en los que la mecánica cuántica juega un papel, es en el aprendizaje de modelos lineales, mediante la resolución del sistema de ecuaciones para el ajuste utilizando la mecánica cuántica.
Los métodos de aprendizaje cuántico no supervisado buscan aprender patrones en unos datos no clasificados previamente. Ejemplos de estos son algoritmos cuánticos de agrupamiento y métodos K-nn, que calculan la distancia entre datos. Para implementarlo cuánticamente, se ha propuesto utilizar la superposición de dos funciones de onda como medida de distancia.
En cuanto al aprendizaje por refuerzo cuántico, la superposición de la mecánica cuántica permite evaluar la recompensa de varias acciones simultáneas sobre el estado, y con un algoritmo como el de Grover encontrar aquella acción que da una recompensa óptima.

## Métodos híbridos

Actualmente muchos de lo algoritmos de inteligencia artificial cuántica mezclan cálculos clásicos y cuánticos, debido a las limitaciones de los computadores cuánticos experimentales. Entonces, la mayor parte de los cálculos se realizan clásicamente, mientras que se utiliza un dispositivo cuántico para cálculos concretos en que se ha demostrado una ventaja cuántica.
Por ejemplo, en redes neuronales cuánticas convolucionales, se han realizado modelos en los que se reemplazan algunas capas convolucionales por capas cuánticas, mejorando el rendimiento.

## Aplicaciones de la inteligencia artificial cuántica

Una aplicación de la inteligencia artificial cuántica es el procesamiento del lenguaje natural. La superposición cuántica mejora la capacidad de almacenamiento, al poder guardar varias cadenas de texto en un mismo estado. A su vez, también mejora el procesamiento al poder realizarlo paralelamente. Benioff estudió cómo introducir cadenas de texto en estado físicos. Por otra parte, los autores de han entrenado con éxito una red neuronal cuántica para Memoria a corto plazo.
La inteligencia artificial cuántica ha sido estudiada también para la toma de decisiones en la teoría del juego cuántico.
Otra de sus aplicaciones es el estudio de potenciales efectos cuánticos en el cerebro.
Las redes neuronales cuánticas basadas en aprendizaje de circuitos cuánticos tienen el potencial de representar funciones más complejas que su contraparte clásica. Esto se debe a que la red neuronal se sustituye por un circuito cuántico, el cual a la entrada codifica la información en estados cuánticos que matemáticamente pasan a formar productos tensoriales entre sí, gracias a ello estos estados de entrada tienen un número exponencialmente grande de funciones independientes con respecto a la cantidad de qubits, los cuales representan el grado del polinomio que espera modelar la función del profesor (función que se desea aprender), en resumen se tiene un número exponencial de funciones independientes para modelar al profesor, lo cual es inextricable en un computador clásico.