Path: blob/master/site/es-419/quantum/tutorials/quantum_data.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Datos cuánticos
Partiendo de las comparaciones hechas en el tutorial sobre MNIST, se explora el trabajo reciente de Huang et al. que muestra de qué manera los diferentes conjuntos de datos afectan a las comparaciones sobre el desempeño. En el trabajo, los autores procuran entender cómo y cuándo los modelos de aprendizaje automático pueden aprender igual o mejor que los modelos cuánticos. El trabajo también presenta, a través de un conjunto de datos minuciosamente elaborado, una separación empírica del desempeño entre el modelo de aprendizaje automático clásico y el cuántico. Haremos lo siguiente:
Preparar una dimensión reducida del conjunto de datos Fashion-MNIST.
Usar circuitos cuánticos para volver a etiquetar el conjunto de datos y calcular las características del núcleo cuántico proyectado (PQK).
Entrenar una red neuronal clásica con el conjunto de datos reetiquetado y comparar el desempeño con un modelo que tiene acceso a las características PQK.
Preparación
1. Preparación de los datos
Empezaremos por preparar el conjunto de datos fashion-MNIST para ejecutarlo en una computadora cuántica.
1.1 Descarga de fashion-MNIST
El primer paso es obtener el conjunto de datos fashion-mnist tradicional. Lo podemos hacer utilizando el módulo tf.keras.datasets
.
Filtramos el conjunto de datos para conservar solamente los tops, las camisetas y los vestidos, y eliminar las otras clases. Al mismo tiempo, convertimos la etiqueta y
al booleano: verdadero para 0 and falso para 3.
1.2 Reducción de las imágenes a escala
Al igual que con el ejemplo de MNIST, deberá reducir a escala estas imágenes para estar dentro de los límites admitidos para las computadoras cuánticas actuales. Esta vez, sin embargo, usará una transformación PCA para reducir las dimensiones, en vez de usar una operación tf.image.resize
.
El último paso consiste en reducir el tamaño del conjunto de datos a solamente 1000 puntos de datos de entrenamiento y 200 puntos de datos de prueba.
2. Reetiquetado y cálculo de las características del PQK
Ahora, prepararemos un conjunto de datos cuánticos "artificiales" mediante la incorporación de componentes cuánticos y el reetiquetado del conjunto de datos fashion-MNIST modificado que hemos creado arriba. Para obtener la mayor separación entre los métodos clásico y cuántico, primero, prepararemos las características de PQK y luego, reetiquetaremos las salidas según sus valores.
2.1 Codificación cuántica y características de PQK
Crearemos un conjunto nuevo de características, basado en x_train
, y_train
, x_test
y y_test
que está definido para ser el 1-RDM en todos los bits cuánticos de lo siguiente:
Donde es una pared de rotaciones de un solo bit cuántico y
Primero, podemos generar la pared de rotaciones de un solo bit cuántico:
Se puede verificar rápidamente observando el circuito:
A continuación, podemos preparar con la ayuda de tfq.util.exponential
que puede elevar exponencialmente cualquier objeto cirq.PauliSum
que conmute:
Este circuito podría ser un poco complicado de verificar solamente con la observación, pero aún es posible examinar un caso de dos bits cuánticos para ver qué está sucediendo:
Ahora que tenemos todas las piezas del rompecabezas, debemos reunir a todos los circuitos de codificación completos:
Elijamos algunos bits cuánticos y preparemos los circuitos de codificación:
A continuación, calculemos las funciones PQK según el 1-RDM de los circuitos del conjunto de datos anterior y almacenemos los resultados en rdm
, a tf.Tensor
con la forma [n_points, n_qubits, 3]
. Las entradas en rdm[i][j][k]
= donde i
indexa sobre puntos de datos; j
, sobre bits cuánticos y k
, sobre .
2.2 Reetiquetado basado en características del PQK
Ahora, que ya contamos con estas características generadas cuánticamente en x_train_pqk
y x_test_pqk
, es hora de reetiquetar el conjunto de datos. Para lograr la separación entre el desempeño clásico y el cuántico, podemos reetiquetar el conjunto de datos basándonos en la información del espectro, encontrada en x_train_pqk
and x_test_pqk
.
Nota: Esta preparación del conjunto de datos para maximizar explícitamente la separación del desempeño entre los modelos clásico y cuántico puede parecer engañosa, pero es muy importante, ya que prueba la existencia de conjuntos de datos que son complicados para computadoras clásicas y sencillos para que las computadoras cuánticas los modelen. No tendría sentido buscar una ventaja cuántica en el aprendizaje automático cuántico (QML) si, primero, no se pudiera crear algo como esto para demostrar la ventaja que ofrece.
Ahora tenemos todo lo necesario para reetiquetar el conjunto de datos. Podemos consultar el diagrama de flujo para entender mejor cómo maximizar la separación entre desempeños al reetiquetar el conjunto de datos:
A fin de maximizar la separación entre los modelos clásico y cuántico, intentaremos ampliar la diferencia geométrica entre el conjunto de datos original y las matrices de núcleos de características del PQK con S_pqk, V_pqk
y S_original, V_original
. Un valor grande de garantiza que, inicialmente, nos moviéramos a la derecha en el diagrama de flujo, hacia abajo y en dirección a la ventaja de predicción del caso cuántico.
Nota: El cálculo de las cantidades para y también es muy útil cuando buscamos entender mejor las separaciones entre desempeños. En este caso, asegurándonos de que un valor será suficiente para ver la separación entre los rendimientos.
3. Comparación de los modelos
Ya hemos preparado el conjunto de datos y llegó la hora de comparar el desempeño de los modelos. Crearemos dos redes neuronales prealimentadas pequeñas y compararemos el desempeño cuando se les otorgue acceso a las características del PQK que se encuentran en x_train_pqk
.
3.1 Creación del modelo mejorad del PQK
Con las características de la biblioteca tf.keras
estándar, ahora se puede crear y entrenar un modelo sobre los puntos de datos x_train_pqk
y y_train_new
:
3.2 Creación de un modelo clásico
Similar a lo que sucede con el código anterior, también se puede crear un modelo clásico que no tiene acceso a las características del PQK del conjunto de datos artificial. Este modelo se puede entrenar con x_train
y y_label_new
.
3.3 Comparación del desempeño
Ahora que ya hemos entrenado los dos modelos podemos graficar rápidamente las brechas de desempeño entre los datos de validación de dichos modelos. Por lo común, ambos modelos alcanzarán una precisión > 0.9 en los datos de entrenamiento. Sin embargo, para los datos de validación se hace evidente que solamente la información hallada en las características del PQK no es suficiente para generalizar bien el modelo para instancias no vistas.
Excelente. Hemos logrado concebir un conjunto de datos cuántico artificial que derrota intencionalmente a los modelos clásicos en un entorno equilibrado (pero forzado). Intente comparar los resultados con los de otros tipos de modelos clásicos. El paso siguiente consiste en intentar y ver si se pueden hallar nuevos conjuntos de datos interesantes que puedan superar a los modelos clásicos sin necesidad de modificarlos.
4. Conclusiones importantes
Se pueden sacar muchas conclusiones importantes a partir de este experimento y del llevado a cabo con MNIST:
Es bastante improbable que los modelos cuánticos de hoy en día tengan un mejor desempeño que los modelos clásicos con datos clásicos. Especialmente, con los conjuntos de datos clásicos actuales, que pueden tener más de un millón de puntos de datos.
El hecho de que los datos posiblemente provengan de un circuito cuántico difícil de simular como clásico, no significa necesariamente que los datos sean difíciles de aprender para un modelo clásico.
Hay conjuntos de datos (en última instancia, de naturaleza cuántica) que son fáciles de aprender para los modelos cuánticos y difíciles para los clásicos, independientemente de la arquitectura del modelo o de los algoritmos de entrenamiento que se utilicen.