Points de contrôle
Create machine learning models
/ 50
Use the model
/ 50
TensorFlow : Qwik Start
GSP637
Présentation
Dans cet atelier, vous allez apprendre les bases du machine learning (apprentissage automatique) avec un modèle Hello World. Cependant, au lieu de programmer des règles explicites dans un langage comme Java ou C++, vous allez créer un système entraîné à partir de données pour déduire les règles qui déterminent une relation entre des nombres.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Configurer l'environnement de développement dans le notebook Jupyter
- Concevoir un modèle de machine learning
- Entraîner un réseau de neurones
- Tester un modèle
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Introduction
Réfléchissez au problème suivant : vous êtes en train de créer un système capable de reconnaître l'activité pour le suivi de la forme physique. Vous pouvez avoir accès à la vitesse à laquelle une personne se déplace et tenter de déduire son activité à partir de cette donnée à l'aide d'une expression conditionnelle :
- Vous pouvez utiliser ce code pour la course avec une autre condition :
- De la même manière, vous pouvez détecter une activité de cyclisme avec une autre condition :
- Réfléchissez maintenant à ce qui se passe lorsque vous souhaitez inclure une activité comme le golf. Il est tout de suite moins évident de créer une règle pour identifier une telle activité.
Il est extrêmement difficile d'écrire un programme (sous forme de code) qui vous permettra de reconnaître cette activité.
Comment faire ? Vous pouvez utiliser le machine learning pour résoudre le problème.
Qu'est-ce que le machine learning ?
Dans la section précédente, vous avez rencontré un problème lorsque vous avez essayé de déterminer l'activité physique d'un utilisateur. Les résultats que vous pouvez obtenir en ajoutant du code sont limités, car vos conditions doivent être plus complexes pour détecter une activité comme le golf.
Envisagez de créer des applications de façon classique, comme illustré dans le diagramme suivant :
Vous exprimez des règles dans un langage de programmation. Elles agissent sur les données, et votre programme fournit des réponses. Dans le cas de la détection d'activité, les règles (le code que vous avez écrit pour définir les types d'activité) ont pris en compte les données (la vitesse de mouvement de la personne) pour produire une réponse : la valeur renvoyée par la fonction permettant de déterminer l'état de l'activité de l'utilisateur (qu'il soit en train de marcher, de courir, de faire du vélo, etc.).
Le processus permettant de détecter le type d'activité à l'aide du machine learning est très similaire. Seuls les axes sont différents :
Au lieu d'essayer de définir les règles et de les exprimer dans un langage de programmation, vous fournissez les réponses (généralement appelées étiquettes) ainsi que les données. La machine déduit ensuite les règles qui déterminent la relation entre les réponses et les données. Par exemple, votre scénario de détection d'activité peut se présenter comme suit dans un contexte de machine learning :
Vous recueillez un important volume de données auxquelles vous ajoutez des étiquettes indiquant que telle ou telle donnée correspond à un aspect de la marche ou de la course. À partir de ces informations, l'ordinateur peut alors déduire les règles qui déterminent les tendances spécifiques propres à une activité en particulier.
En plus d'être une méthode alternative permettant de programmer ce scénario, cette approche vous donne la possibilité de l'appliquer à de nouveaux cas d'utilisation, par exemple au golf, ce qui n'aurait peut-être pas été possible avec l'approche de programmation classique basée sur des règles.
En programmation classique, votre code est compilé dans un binaire généralement appelé "programme". En machine learning, l'élément que vous créez à partir des données et des étiquettes est appelé "modèle".
Revenons au diagramme ci-dessous :
Considérez le résultat obtenu ci-dessus comme un modèle, qui est utilisé de la façon suivante au moment de l'exécution :
Vous transmettez certaines données au modèle, qui utilise les règles qu'il a déduites de l'entraînement pour effectuer une prédiction, par exemple en associant les données à l'activité de marche ou de cyclisme.
Dans cet atelier, vous allez créer un modèle Hello World très simple composé de blocs de base pouvant être utilisés dans n'importe quel scénario de machine learning.
Tâche 1 : Ouvrir le notebook dans Vertex AI Workbench
-
Dans la console Google Cloud, accédez au menu de navigation et cliquez sur Vertex AI > Workbench.
-
Recherchez l'instance
, puis cliquez sur le bouton Ouvrir JupyterLab.
L'interface JupyterLab de votre instance Workbench s'ouvre dans un nouvel onglet de navigateur.
Installer TensorFlow et des packages supplémentaires
-
Dans le menu de lancement, sous Other (Autre), sélectionnez Terminal.
-
Vérifiez si votre environnement Python est déjà configuré. Copiez et collez la commande ci-dessous dans le terminal :
Exemple de résultat :
- Exécutez la commande ci-dessous pour installer le package TensorFlow :
- Pour mettre à niveau
pip3
, exécutez la commande ci-dessous dans le terminal :
Pylint est un outil qui recherche les erreurs dans le code Python. Il met en évidence les problèmes syntaxiques et stylistiques dans votre code source Python.
- Exécutez la commande ci-dessous pour installer le package
pylint
:
- Installez les packages du fichier
requirements.txt
dont vous avez besoin pour l'atelier :
Votre environnement est désormais configuré.
Tâche 2 : Créer votre premier modèle de machine learning
Considérons les ensembles de nombres suivants. Voyez-vous la relation entre eux ?
x : |
-1 |
0 |
1 |
2 |
3 |
4 |
y : |
-2 |
1 |
4 |
7 |
10 |
13 |
En parcourant le tableau de gauche à droite, vous remarquez que la valeur de x augmente de 1 quand celle de y augmente de 3. Vous estimez alors que y est plus ou moins égal à 3x.
Ensuite, en observant la valeur 0 de x, vous constatez que la valeur de y correspondante est 1.
À partir de ces observations, vous pouvez déterminer que la relation est y=3x+1.
C'est presque exactement de cette façon que vous devez utiliser le code pour entraîner un modèle (ou réseau de neurones) à identifier les tendances dans les données.
Vous vous servez des données pour entraîner le réseau de neurones. Si vous l'alimentez avec des ensembles de x et de y, il devrait parvenir à déterminer la relation entre eux.
Créer un notebook et importer des bibliothèques
-
Cliquez sur l'icône + dans la partie gauche de Workbench pour ouvrir un nouveau menu de lancement.
-
Dans le menu de lancement, sous Notebook, sélectionnez Python3.
Un nouveau notebook Jupyter s'affiche. Consultez la documentation sur les notebooks Jupyter pour savoir comment les utiliser.
- Importez et configurez
logging
etgoogle-cloud-logging
pour Cloud Logging. Dans la première cellule, ajoutez le code suivant :
- Importez
tensorflow
pour entraîner et évaluer le modèle. Pour plus de simplicité, appelez-letf
. Ajoutez le code ci-dessous à la première cellule :
- Importez
numpy
pour analyser les données à des fins de débogage. Pour plus de simplicité, appelez-lenp
. Ajoutez le code ci-dessous à la première cellule :
-
Pour exécuter la cellule, cliquez sur le bouton Exécuter ou appuyez sur Maj+Entrée.
-
Enregistrez le notebook. Cliquez sur Fichier > Enregistrer. Nommez le fichier
model.ipynb
, puis cliquez sur OK.
Préparer les données
Vous allez ensuite préparer les données à partir desquelles votre modèle sera entraîné. Dans cet atelier, vous allez utiliser les six valeurs de x et les six valeurs de y utilisées précédemment :
x : |
-1 |
0 |
1 |
2 |
3 |
4 |
y : |
-2 |
1 |
4 |
7 |
10 |
13 |
Comme vous le voyez, la relation entre les x et les y est y=3x+1. Ainsi, quand x est égal à 1, y est égal à 4, et ainsi de suite.
Une bibliothèque Python appelée numpy
fournit de nombreuses structures de données de type tableau, qui constituent un moyen classique d'ajouter des données. Pour les utiliser, spécifiez les valeurs sous forme de tableau dans numpy
avec np.array([])
.
- Dans la deuxième cellule, ajoutez le code suivant :
Concevoir le modèle
Dans cette section, vous allez concevoir votre modèle à l'aide de TensorFlow.
Vous allez utiliser un algorithme de machine learning appelé "réseau de neurones" pour entraîner votre modèle et créer le réseau de neurones le plus simple possible. Il comporte une couche, qui contient un seul neurone. Les données du réseau de neurones ne peuvent prendre qu'une seule valeur à la fois. C'est pourquoi la forme d'entrée doit être [1].
- Dans la deuxième cellule, ajoutez le code suivant :
Compiler le modèle
Vous allez ensuite écrire le code pour compiler votre réseau de neurones. Pour cela, vous devez spécifier deux fonctions : loss
et optimizer
.
Si vous avez vu de nombreux concepts mathématiques pour le machine learning, c'est ici que vous devriez les appliquer. Cependant, tf.keras
les encapsule dans des fonctions pour vous.
-
D'après ce que vous avez observé précédemment, vous savez que la relation entre les nombres est
y=3x+1
. -
Lorsque l'ordinateur essaie d'apprendre cette relation, il réalise une estimation (
y=10x+10
par exemple). La fonctionloss
mesure les réponses déduites par rapport aux bonnes réponses connues et mesure ses performances.
tf.keras
, consultez la documentation "Module : tf.keras.losses".- Ensuite, le modèle utilise la fonction d'optimiseur pour faire une autre estimation. Le système essaie de réduire au maximum la perte sur la base du résultat de la fonction loss. À ce stade, il peut afficher quelque chose comme
y=5x+5
. Bien que cela soit encore un résultat assez mauvais, il est plus proche du résultat attendu (c'est-à-dire que la perte est moins importante).
tf.keras
, consultez la documentation "Module : tf.keras.optimizers".- Le modèle répète l'opération pour le nombre d'époques que vous spécifiez.
- Ajoutez le code suivant à la deuxième cellule :
Dans l'extrait de code ci-dessus, vous indiquez au modèle d'utiliser mean_squared_error
pour la perte et la descente de gradient stochastique (SGD)
pour l'optimiseur. Vous n'avez pas encore besoin de comprendre ces notions mathématiques, mais vous pouvez voir qu'elles fonctionnent.
Entraîner le réseau de neurones
Pour entraîner le réseau de neurones à apprendre la relation entre les valeurs x et y, vous allez utiliser model.fit
.
Cette fonction entraîne le modèle sous la forme d'une boucle durant laquelle elle effectue une estimation, détermine si elle est bonne ou mauvaise (la perte), utilise l'optimiseur pour faire une autre estimation, etc. Elle répète l'opération selon le nombre d'époques que vous spécifiez, qui est de 500 dans cet atelier.
- Ajoutez le code suivant à la deuxième cellule :
Dans le code ci-dessus, model.fit
entraîne le modèle pour un nombre fixe d'époques.
model.fit
, consultez la section "fit" de la documentation sur tf.keras.Model.Votre fichier devrait se présenter comme suit (veuillez noter que le code sera réparti dans deux cellules) :
Exécuter le code
Votre script est prêt ! Exécutez-le et observez le résultat.
-
Cliquez sur le bouton Exécuter ou appuyez sur Maj+Entrée pour exécuter la deuxième cellule du notebook.
-
Examinez le résultat. Notez que le script affiche la perte pour chaque époque. Le résultat peut être légèrement différent de celui obtenu ici.
e-
est écrit en notation scientifique avec un exposant négatif. Si vous parcourez les époques, vous constatez que la valeur de perte est plutôt élevée au départ, mais qu'elle diminue à chaque étape. Exemple :
À mesure que l'entraînement progresse, la perte devient très faible :
Une fois l'entraînement terminé, la perte est extrêmement faible, ce qui montre que notre modèle excelle dans l'inférence de la relation entre les nombres :
Vous n'aurez probablement pas besoin des 500 époques. C'est pourquoi nous vous conseillons de tester différentes valeurs. Comme vous le voyez dans cet exemple, la perte est très faible après seulement 50 époques. Ce nombre peut donc suffire.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Utiliser le modèle
Vous disposez désormais d'un modèle qui a été entraîné pour apprendre la relation entre x et y.
Vous pouvez utiliser la méthode model.predict
pour déterminer la valeur de y pour une valeur de x que le modèle n'a pas vue pendant l'entraînement. Par exemple, si x = 10, quelle sera la valeur de y ?
- Ajoutez le code suivant à la troisième cellule pour effectuer une prédiction :
cloud_logger
afin de générer des journaux cloud que vous pourrez consulter pour suivre la progression. -
Appuyez sur Ctrl+S ou cliquez sur Fichier > Enregistrer pour enregistrer votre notebook.
-
Pour exécuter la troisième cellule, cliquez sur le bouton Exécuter ou appuyez sur Maj+Entrée.
La valeur de y apparaît après le journal d'entraînement (époques).
Exemple de résultat :
Vous pensiez peut-être que la valeur de y serait de 31, mais elle est au final un peu supérieure (31,005917). À votre avis, pourquoi ?
Réponse : Les réseaux de neurones fonctionnent avec les probabilités. Ils ont donc calculé qu'il est très probable que la relation entre x et y soit y=3x+1. Mais avec seulement six points de données, il est impossible d'affirmer avec certitude que ce résultat est exact. Ainsi, le résultat pour 10 est très proche de 31, mais n'est pas forcément égal à 31.
Lorsque vous utiliserez des réseaux de neurones, cette tendance sera récurrente. Vous aurez toujours affaire à des probabilités, et non à des certitudes. Vous ferez également un peu de codage pour déterminer le résultat sur la base de probabilités, en particulier pour la classification.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Félicitations !
Félicitations ! Dans cet atelier, vous avez créé, entraîné et testé votre propre modèle de machine learning avec TensorFlow.
Étapes suivantes et informations supplémentaires
- Découvrir Vertex AI en détail
- Découvrir l'IA de façon ludique grâce aux expériences avec Google
- En savoir plus sur TensorFlow
- Prédiction du tableau d'un tournoi avec le machine learning de Google
- Premiers pas avec BigQuery ML
- Prédire le prix d'une course en taxi à l'aide d'un modèle de prévision BigQuery ML
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 16 septembre 2024
Dernier test de l'atelier : 16 septembre 2024
Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.