
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create machine learning models
/ 50
Use the model
/ 50
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.
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
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 les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
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 :
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.
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.
Dans la console Google Cloud, accédez au menu de navigation () et cliquez sur Vertex AI > Workbench.
Recherchez l'instance
L'interface JupyterLab de votre instance Workbench s'ouvre dans un nouvel onglet de navigateur.
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 :
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.
pylint
:requirements.txt
dont vous avez besoin pour l'atelier :Votre environnement est désormais configuré.
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.
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.
logging
et google-cloud-logging
pour Cloud Logging. Dans la première cellule, ajoutez le code suivant :tensorflow
pour entraîner et évaluer le modèle. Pour plus de simplicité, appelez-le tf
. Ajoutez le code ci-dessous à la première cellule :numpy
pour analyser les données à des fins de débogage. Pour plus de simplicité, appelez-le np
. 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.
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 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].
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 fonction loss
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".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".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.
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.
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) :
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.
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 ?
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 ! Dans cet atelier, vous avez créé, entraîné et testé votre propre modèle de machine learning avec TensorFlow.
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 2025 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.
Ce contenu n'est pas disponible pour le moment
Nous vous préviendrons par e-mail lorsqu'il sera disponible
Parfait !
Nous vous contacterons par e-mail s'il devient disponible
One lab at a time
Confirm to end all existing labs and start this one