Apprentissage automatique quantique : guide du débutant
Traducteur | Bugatti
Critique | Sun Shujuan
Introduction
Bienvenue dans le monde de l'apprentissage automatique quantique ! Ce didacticiel fournit des conseils étape par étape avec le code via un projet d'introduction utilisant un exemple d'ensemble de données. À la fin de ce didacticiel, vous aurez une compréhension de base de la façon d'utiliser un ordinateur quantique pour effectuer des tâches d'apprentissage automatique et vous aiderez à créer votre premier modèle quantique.
Mais avant de nous lancer dans ce didacticiel, comprenons ce qu'est l'apprentissage automatique quantique et pourquoi il est si passionnant.
L'apprentissage automatique quantique est le domaine où se rencontrent l'informatique quantique et l'apprentissage automatique. Il utilise des ordinateurs quantiques pour effectuer des tâches d'apprentissage automatique telles que la classification, la régression et le clustering. Un ordinateur quantique est une machine puissante qui utilise des bits quantiques (qubits) au lieu des bits traditionnels pour stocker et traiter les informations. Cela leur permet d’effectuer certaines tâches beaucoup plus rapidement que les ordinateurs traditionnels, ce qui les rend particulièrement adaptés aux tâches d’apprentissage automatique impliquant de grandes quantités de données.
Commencez le tutoriel maintenant !
Étape 1 : Installez les bibliothèques et dépendances nécessaires.
Nous utiliserons la bibliothèque PennyLane pour l'apprentissage automatique quantique, NumPy pour le calcul numérique et Matplotlib pour la visualisation de données dans ce tutoriel. Vous pouvez installer ces bibliothèques à l'aide de pip en exécutant la commande suivante :
!pip install pennylane !pip install numpy !pip install matplotlib
Étape 2 : Chargez l'exemple d'ensemble de données.
Nous utiliserons l'ensemble de données Iris dans ce didacticiel, qui comprend 150 échantillons de fleurs d'iris avec quatre caractéristiques : longueur des sépales, largeur des sépales, longueur des pétales et largeur des pétales. L'ensemble de données est inclus dans la bibliothèque sklearn, nous pouvons donc le charger en utilisant le code suivant :
from sklearn import datasets # Load the iris dataset iris = datasets.load_iris() X = iris['data'] y = iris['target']
Étape 3 : Divisez l'ensemble de données en ensembles d'entraînement et de test.
Nous utiliserons l'ensemble de formation pour entraîner notre modèle quantique et l'ensemble de test pour évaluer ses performances. Nous pouvons diviser l'ensemble de données à l'aide de la fonction train_test_split du module sklearn.model_selection :
from sklearn.model_selection import train_test_split # Split the dataset into training and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Étape 4 : Prétraiter les données.
Avant de pouvoir utiliser les données pour entraîner un modèle quantique, nous devons prétraiter les données. Une étape de prétraitement courante est la normalisation, qui consiste à ajuster les données afin qu'elles aient une moyenne et une variance unitaire nulles. Nous pouvons utiliser la classe StandardScaler du module sklearn.preprocessing pour effectuer la normalisation :
from sklearn.preprocessing import StandardScaler # Initialize the scaler scaler = StandardScaler() # Fit the scaler to the training data scaler.fit(X_train) # Scale the training and test data X_train_scaled = scaler.transform(X_train) X_test_scaled = scaler.transform(X_test)
Ce code initialise l'objet StandardScaler et l'adapte aux données d'entraînement à l'aide de la méthode d'ajustement. Ensuite, il utilise la méthode de transformation pour ajuster les données de formation et de test.
La normalisation est une étape de pré-traitement importante car elle garantit que toutes les caractéristiques des données sont à la même échelle, ce qui peut améliorer les performances des modèles quantiques.
Étape 5 : Définir le modèle quantique.
Nous sommes maintenant prêts à utiliser la bibliothèque PennyLane pour définir le modèle quantique. La première étape consiste à importer les fonctions nécessaires et à créer le dispositif quantique :
import pennylane as qml # Choose a device (e.g., 'default.qubit') device = qml.device('default.qubit')
Ensuite, nous définirons une fonction quantique qui prend des données en entrée et renvoie une prédiction. Nous utiliserons un simple réseau de neurones quantiques avec une seule couche de neurones quantiques :
@qml.qnode(device) def quantum_neural_net(weights, data): # Initialize the qubits qml.templates.AmplitudeEmbedding(weights, data) # Apply a layer of quantum neurons qml.templates.StronglyEntanglingLayers(weights, data) # Measure the qubits return qml.expval(qml.PauliZ(0))
Cette fonction quantique prend en compte deux variables : les poids (qui sont les paramètres du réseau de neurones quantiques) et les données (qui sont les données d'entrée).
La première ligne initialise le qubit à l'aide du modèle AmplitudeEmbedding de PennyLane. Le modèle mappe les données sur l'amplitude du qubit afin que la distance entre les points de données soit préservée.
La deuxième ligne utilise le modèle StronglyEntanglingLayers pour appliquer une couche de neurones quantiques. Le modèle applique une série d’opérations d’intrication aux qubits, qui peuvent ensuite être utilisés pour mettre en œuvre l’informatique quantique universelle.
Enfin, la dernière ligne mesure le qubit sur la base métrique Pauli-Z et renvoie la valeur attendue.
Étape 6 : Définissez la fonction de coût.
Afin de former un modèle quantique, nous devons définir une fonction de coût pour mesurer les performances du modèle. Pour les besoins de ce tutoriel, nous utiliserons l'erreur quadratique moyenne (MSE) comme fonction de coût :
def cost(weights, data, labels): # Make predictions using the quantum neural network predictions = quantum_neural_net(weights, data) # Calculate the mean squared error mse = qml.mean_squared_error(labels, predictions) return mse
Cette fonction de coût prend en compte trois variables : les poids (qui sont les paramètres du modèle quantique), les données (qui sont les données d'entrée) et les étiquettes (c'est la véritable étiquette des données). Il utilise un réseau neuronal quantique pour effectuer des prédictions basées sur les données d'entrée et calcule le MSE entre les prédictions et les véritables étiquettes.
MSE est une fonction de coût courante dans l'apprentissage automatique qui mesure la différence quadratique moyenne entre la valeur prédite et la valeur réelle. Un MSE plus petit indique que le modèle s'adapte mieux aux données.
Étape 7 : Entraîner le modèle quantique.
Maintenant, nous sommes prêts à entraîner le modèle quantique en utilisant la méthode de descente de gradient. Nous utiliserons la classe AdamOptimizer de PennyLane pour effectuer l'optimisation :
# Initialize the optimizer opt = qml.AdamOptimizer(stepsize=0.01) # Set the number of training steps steps = 100 # Set the initial weights weights = np.random.normal(0, 1, (4, 2)) # Train the model for i in range(steps): # Calculate the gradients gradients = qml.grad(cost, argnum=0)(weights, X_train_scaled, y_train) # Update the weights opt.step(gradients, weights) # Print the cost if (i + 1) % 10 == 0: print(f'Step {i + 1}: cost = {cost(weights, X_train_scaled, y_train):.4f}')
Ce code initialise l'optimiseur avec une taille de pas de 0,01 et définit le nombre d'étapes d'entraînement à 100. Il définit ensuite les poids initiaux du modèle sur des valeurs aléatoires tirées d'une distribution normale de moyenne 0 et d'écart type 1.
A chaque étape d'entraînement, le code utilise la fonction qml.grad pour calculer le gradient de la fonction de coût par rapport aux poids. Il met ensuite à jour les pondérations à l'aide de la méthode opt.step et génère le coût toutes les 10 étapes.
梯度下降法是机器学习中常见的优化算法,它迭代更新模型参数以最小化成本函数。AdamOptimizer是梯度下降的一种变体,它使用自适应学习率,这可以帮助优化更快地收敛。
第8步:评估量子模型。
我们已经训练了量子模型,可以评估它在测试集上的性能。我们可以使用以下代码来测试:
# Make predictions on the test set predictions = quantum_neural_net(weights, X_test_scaled) # Calculate the accuracy accuracy = qml.accuracy(predictions, y_test) print(f'Test accuracy: {accuracy:.2f}')
这段代码使用量子神经网络基于测试集做预测,并使用qml.accuracy 函数计算预测准确性。然后,它输出测试准确性。
第9步:直观显示结果。
最后,我们可以使用Matplotlib直观显示量子模型的结果。比如说,我们可以对照真实标签绘制出测试集的预测结果:
import matplotlib.pyplot as plt # Plot the predictions plt.scatter(y_test, predictions) # Add a diagonal line x = np.linspace(0, 3, 4) plt.plot(x, x, '--r') # Add axis labels and a title plt.xlabel('True labels') plt.ylabel('Predictions') plt.title('Quantum Neural Network') # Show the plot plt.show()
这段代码将对照真实标签创建预测的散点图,增添对角线以表示完美预测。然后它为散点图添加轴线标签和标题,并使用plt.show函数来显示。
现在,我们已成功地构建了一个量子机器学习模型,并在示例数据集上评估了性能。
结果
为了测试量子模型的性能,我们运行了教程中提供的代码,获得了以下结果:
Step 10: cost = 0.5020 Step 20: cost = 0.3677 Step 30: cost = 0.3236 Step 40: cost = 0.3141 Step 50: cost = 0.3111 Step 60: cost = 0.3102 Step 70: cost = 0.3098 Step 80: cost = 0.3095 Step 90: cost = 0.3093 Step 100: cost = 0.3092 Test accuracy: 0.87
这些结果表明,量子模型能够从训练数据中学习,并基于测试集做出准确的预测。在整个训练过程中,成本稳步下降,这表明模型在学习过程中不断改进。最终的测试准确率为0.87,表现相当好,这表明该模型能够正确地分类大部分测试样例。
结论
量子机器学习是一个令人兴奋的领域,有许多潜在的应用,从优化供应链到预测股价,不一而足。我们希望本教程能让您了解量子计算机和机器学习的可能性,并激励您深入了解这个诱人的话题。
原文标题:Quantum Machine Learning: A Beginner’s Guide,作者:SPX
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans les domaines de l’apprentissage automatique et de la science des données, l’interprétabilité des modèles a toujours été au centre des préoccupations des chercheurs et des praticiens. Avec l'application généralisée de modèles complexes tels que l'apprentissage profond et les méthodes d'ensemble, la compréhension du processus décisionnel du modèle est devenue particulièrement importante. Explainable AI|XAI contribue à renforcer la confiance dans les modèles d'apprentissage automatique en augmentant la transparence du modèle. L'amélioration de la transparence des modèles peut être obtenue grâce à des méthodes telles que l'utilisation généralisée de plusieurs modèles complexes, ainsi que les processus décisionnels utilisés pour expliquer les modèles. Ces méthodes incluent l'analyse de l'importance des caractéristiques, l'estimation de l'intervalle de prédiction du modèle, les algorithmes d'interprétabilité locale, etc. L'analyse de l'importance des fonctionnalités peut expliquer le processus de prise de décision du modèle en évaluant le degré d'influence du modèle sur les fonctionnalités d'entrée. Estimation de l’intervalle de prédiction du modèle

Cet article présentera comment identifier efficacement le surajustement et le sous-apprentissage dans les modèles d'apprentissage automatique grâce à des courbes d'apprentissage. Sous-ajustement et surajustement 1. Surajustement Si un modèle est surentraîné sur les données de sorte qu'il en tire du bruit, alors on dit que le modèle est en surajustement. Un modèle surajusté apprend chaque exemple si parfaitement qu'il classera mal un exemple inédit/inédit. Pour un modèle surajusté, nous obtiendrons un score d'ensemble d'entraînement parfait/presque parfait et un score d'ensemble/test de validation épouvantable. Légèrement modifié : "Cause du surajustement : utilisez un modèle complexe pour résoudre un problème simple et extraire le bruit des données. Parce qu'un petit ensemble de données en tant qu'ensemble d'entraînement peut ne pas représenter la représentation correcte de toutes les données."

En termes simples, un modèle d’apprentissage automatique est une fonction mathématique qui mappe les données d’entrée à une sortie prédite. Plus précisément, un modèle d'apprentissage automatique est une fonction mathématique qui ajuste les paramètres du modèle en apprenant à partir des données d'entraînement afin de minimiser l'erreur entre la sortie prédite et la véritable étiquette. Il existe de nombreux modèles dans l'apprentissage automatique, tels que les modèles de régression logistique, les modèles d'arbre de décision, les modèles de machines à vecteurs de support, etc. Chaque modèle a ses types de données et ses types de problèmes applicables. Dans le même temps, il existe de nombreux points communs entre les différents modèles, ou il existe une voie cachée pour l’évolution du modèle. En prenant comme exemple le perceptron connexionniste, en augmentant le nombre de couches cachées du perceptron, nous pouvons le transformer en un réseau neuronal profond. Si une fonction noyau est ajoutée au perceptron, elle peut être convertie en SVM. celui-ci

Dans les années 1950, l’intelligence artificielle (IA) est née. C’est à ce moment-là que les chercheurs ont découvert que les machines pouvaient effectuer des tâches similaires à celles des humains, comme penser. Plus tard, dans les années 1960, le Département américain de la Défense a financé l’intelligence artificielle et créé des laboratoires pour poursuivre son développement. Les chercheurs trouvent des applications à l’intelligence artificielle dans de nombreux domaines, comme l’exploration spatiale et la survie dans des environnements extrêmes. L'exploration spatiale est l'étude de l'univers, qui couvre l'ensemble de l'univers au-delà de la terre. L’espace est classé comme environnement extrême car ses conditions sont différentes de celles de la Terre. Pour survivre dans l’espace, de nombreux facteurs doivent être pris en compte et des précautions doivent être prises. Les scientifiques et les chercheurs pensent qu'explorer l'espace et comprendre l'état actuel de tout peut aider à comprendre le fonctionnement de l'univers et à se préparer à d'éventuelles crises environnementales.

Les défis courants rencontrés par les algorithmes d'apprentissage automatique en C++ incluent la gestion de la mémoire, le multithread, l'optimisation des performances et la maintenabilité. Les solutions incluent l'utilisation de pointeurs intelligents, de bibliothèques de threads modernes, d'instructions SIMD et de bibliothèques tierces, ainsi que le respect des directives de style de codage et l'utilisation d'outils d'automatisation. Des cas pratiques montrent comment utiliser la bibliothèque Eigen pour implémenter des algorithmes de régression linéaire, gérer efficacement la mémoire et utiliser des opérations matricielles hautes performances.

L'apprentissage automatique est une branche importante de l'intelligence artificielle qui donne aux ordinateurs la possibilité d'apprendre à partir de données et d'améliorer leurs capacités sans être explicitement programmés. L'apprentissage automatique a un large éventail d'applications dans divers domaines, de la reconnaissance d'images et du traitement du langage naturel aux systèmes de recommandation et à la détection des fraudes, et il change notre façon de vivre. Il existe de nombreuses méthodes et théories différentes dans le domaine de l'apprentissage automatique, parmi lesquelles les cinq méthodes les plus influentes sont appelées les « Cinq écoles d'apprentissage automatique ». Les cinq grandes écoles sont l’école symbolique, l’école connexionniste, l’école évolutionniste, l’école bayésienne et l’école analogique. 1. Le symbolisme, également connu sous le nom de symbolisme, met l'accent sur l'utilisation de symboles pour le raisonnement logique et l'expression des connaissances. Cette école de pensée estime que l'apprentissage est un processus de déduction inversée, à travers les connaissances existantes.

Traducteur | Revu par Li Rui | Chonglou Les modèles d'intelligence artificielle (IA) et d'apprentissage automatique (ML) deviennent aujourd'hui de plus en plus complexes, et le résultat produit par ces modèles est une boîte noire – impossible à expliquer aux parties prenantes. L'IA explicable (XAI) vise à résoudre ce problème en permettant aux parties prenantes de comprendre comment fonctionnent ces modèles, en s'assurant qu'elles comprennent comment ces modèles prennent réellement des décisions et en garantissant la transparence des systèmes d'IA, la confiance et la responsabilité pour résoudre ce problème. Cet article explore diverses techniques d'intelligence artificielle explicable (XAI) pour illustrer leurs principes sous-jacents. Plusieurs raisons pour lesquelles l’IA explicable est cruciale Confiance et transparence : pour que les systèmes d’IA soient largement acceptés et fiables, les utilisateurs doivent comprendre comment les décisions sont prises

L'ensemble de données ScienceAI Question Answering (QA) joue un rôle essentiel dans la promotion de la recherche sur le traitement du langage naturel (NLP). Des ensembles de données d'assurance qualité de haute qualité peuvent non seulement être utilisés pour affiner les modèles, mais également évaluer efficacement les capacités des grands modèles linguistiques (LLM), en particulier la capacité à comprendre et à raisonner sur les connaissances scientifiques. Bien qu’il existe actuellement de nombreux ensembles de données scientifiques d’assurance qualité couvrant la médecine, la chimie, la biologie et d’autres domaines, ces ensembles de données présentent encore certaines lacunes. Premièrement, le formulaire de données est relativement simple, et la plupart sont des questions à choix multiples. Elles sont faciles à évaluer, mais limitent la plage de sélection des réponses du modèle et ne peuvent pas tester pleinement la capacité du modèle à répondre aux questions scientifiques. En revanche, les questions et réponses ouvertes
