Descripción general de Qiskit Machine Learning#
Descripción general#
Qiskit Machine Learning presenta bloques de construcción computacionales fundamentales, como Quantum Kernels y Quantum Neural Networks, que se utilizan en diferentes aplicaciones, incluidas la clasificación y la regresión. Por un lado, este diseño es muy fácil de usar y permite a los usuarios prototipar rápidamente un primer modelo sin conocimientos profundos de computación cuántica. Por otro lado, Qiskit Machine Learning es muy flexible y los usuarios pueden extenderlo fácilmente para respaldar la investigación de machine learning cuántico de vanguardia.
Qiskit Machine Learning proporciona la clase FidelityQuantumKernel
que hace uso del algoritmo BaseStateFidelity
introducido en Qiskit y se puede usar fácilmente para calcular directamente las matrices del kernel para conjuntos de datos dados o se puede pasar a un Clasificador Cuántico de Vectores de Soporte (Quantum Support Vector Classifier) (QSVC
) o Regresor Cuántico de Vectores de Soporte (Quantum Support Vector Regressor) (QSVR
) para empezar a resolver rápidamente problemas de clasificación o regresión. También se puede utilizar con muchos otros algoritmos de machine learning basados en kernels existentes en frameworks clásicos establecidos.
Qiskit Machine Learning define una interfaz genérica para redes neuronales que es implementada por diferentes redes neuronales cuánticas. Se proporcionan dos implementaciones principales listas para usarse, como la EstimatorQNN
y la SamplerQNN
. La EstimatorQNN
aprovecha la primitiva BaseEstimator
de Qiskit y permite a los usuarios combinar circuitos cuánticos parametrizados con observables mecánicos cuánticos. Los circuitos se pueden construir usando, por ejemplo, bloques de construcción de la biblioteca de circuitos de Qiskit, y la salida de la QNN viene dada por el valor esperado del observable. La SamplerQNN
aprovecha otra primitiva introducida en Qiskit, la primitiva BaseSampler
. Esta red neuronal traduce cuasi-probabilidades de cadenas de bits estimadas por la primitiva en una salida deseada. Este paso de traducción se puede usar para interpretar una cadena de bits dada en un contexto particular, por ejemplo, traduciéndolo a un conjunto de clases.
Las redes neuronales incluyen la funcionalidad para evaluarlas para una entrada determinada, así como para calcular los gradientes correspondientes, lo cual es importante para un entrenamiento eficiente. Para entrenar y usar redes neuronales, Qiskit Machine Learning proporciona una variedad de algoritmos de aprendizaje como la clase NeuralNetworkClassifier
y NeuralNetworkRegressor
. Ambas toman una QNN como entrada y luego la utilizan en un contexto de clasificación o regresión. Para permitir un comienzo fácil, se proporcionan dos implementaciones convenientes: el Clasificador Cuántico Variacional (VQC
) así como el Regresor Cuántico Variacional (VQR
). Ambos toman solo un mapa de características y un ansatz y construyen la QNN subyacente automáticamente.
Además de los modelos provistos directamente en Qiskit Machine Learning, se tiene la clase TorchConnector
, que permite a los usuarios integrar todas nuestras redes neuronales cuánticas directamente en la biblioteca de machine learning de código abierto PyTorch. Gracias los algoritmos de gradiente de Qiskit Algorithm, esto incluye la diferenciación automática, los gradientes generales calculados por PyTorch durante la retropropagación también toman en cuenta las redes neuronales cuánticas. El diseño flexible también permite la construcción de conectores a otros paquetes en el futuro.