Vous êtes sur la page 1sur 33

Module 3 : Apprentissage

Profond (Deep Learning)


Machine Learning avec Tensorflow

Co-financé par : Use cases réalisés par les masters :


Introduction à Tensorflow

● Tensorflow : framework de Machine Learning open source développé par Google.


● Il s’agit d’une bibliothèque qu’on peut voir comme une boîte à outils permettant de résoudre des problèmes
plus facilement puisqu’il facilite l’implémentation d’algorithmes.
● Il permet de représenter les calculs sous forme de graphiques.
● Tensorflow regroupe un grand nombre de modèles et algorithmes de Machine Learning et Deep Learning.
● Permet d'entraîner et d’exécuter des réseaux de neurones.
Objectifs du tutoriel

● Charger un jeu de données


● Utiliser Tensorflow pour la prédiction sur ce jeu de données
● Nettoyer les données et les organiser pour l’utilisation de Tensorflow
● Créer un ensemble de test et d’apprentissage
● Créer une fonction d’entrée
● Construire un classificateur
● Construire un modèle
● Prédire la valeur
● Évaluer le modèle
Installation de Tensorflow dans R

● On exécute, dans l’ordre, les commandes suivantes dans R :


Tutoriel : chargement des données

● On visualise les données avec View(). On constate qu’il y a de nombreuses valeurs manquantes NA.
● Les données sont celles de personnes réalisant des dons. L’objectif de ce tutoriel est de prédire la
probabilité du don d’une personne d’après son profil.
● DONOR_IND : Y / N indique si la personne a fait un don ou non (les autres colonnes constituent son
profil et seront donc déterminantes pour notre étude).
● Source : https://analyticsinsights.io/tutoriel-deep-learning-avec-tensorflow-dans-r/
Tutoriel : Nettoyage des données

● Pour ne pas qu’elles nous bloquent, on remplace les valeurs manquantes (NA) avec la fonction suivante :

Source : https://analyticsinsights.io/tutoriel-deep-learning-avec-tensorflow-dans-r/
Tutoriel : Nettoyage des données

● On convertit les variables de type caractères en Factor

Source : https://analyticsinsights.io/tutoriel-deep-learning-avec-tensorflow-dans-r/
Tutoriel : Nettoyage des données

Objectif : Indiquer à Tensorflow les types de colonnes.


1 : Pour les colonnes Factor : spécifier les valeurs contenues dans ces colonnes en utilisant la fonction
column_categorical_with_vocabulary_list.
2 : Puis, on va convertir les valeurs de facteur d’une colonne avec 0 et 1 (codage à chaud) avec la fonction
column_indicator.
Exemple : colonne GENDER, nous avons que deux valeurs possibles: Homme et Femme --> on va créer deux
colonnes: une pour les hommes et l’autre pour les femmes. Chacune de ces colonnes contiendra 0 ou 1 en
fonction de la valeur de données contenue dans la colonne GENDER.

Source : https://analyticsinsights.io/tutoriel-deep-learning-avec-tensorflow-dans-r/
Tutoriel : Nettoyage des données

Source : https://analyticsinsights.io/tutoriel-deep-learning-avec-tensorflow-dans-r/
Tutoriel : Ensembles de test et d’apprentissage

On crée un ensemble de test et un d’apprentissage. Ils vont nous permettre d'entraîner le modèle et de le tester
(sur le reste des données qui n’auront pas servi à l’apprentissage).

Source : https://analyticsinsights.io/tutoriel-deep-learning-avec-tensorflow-dans-r/
Tutoriel : Fonction d’entrée

Objectif : prédire la probabilité du don d’une personne


=> On crée donc une fonction d’entrée avec la liste des variables d’entrée (features) qui vont être les éléments
déterminant le don, ou le non don, et de sortie (response)

Source : https://analyticsinsights.io/tutoriel-deep-learning-avec-tensorflow-dans-r/
Tutoriel : Construction d’un classificateur

On crée ensuite notre classifieur à l’aide de la fonction dnn_classifier() où on passe nos features columns et on
indique qu’on a trois couches cachées avec respectivement 80, 40 et 30 nœuds.

Source : https://analyticsinsights.io/tutoriel-deep-learning-avec-tensorflow-dans-r/
Tutoriel : Construction du modèle

On utilise ici notre classifier, et en input : la fonction d’apprentissage appliquée sur nos données d'entraînement
On utilise la fonction train() qui prend en argument le classifier et en input notre fonction d’entrée appliquée à
nos données
Tutoriel : Prédiction de la valeur

Objectif : Prédire la valeur (on la prédit pour le dataset de test puis sur le complet)
=> On utilise ici : le model, le dataset de test et le dataset complet.
=> La fonction utilisée pour la prédiction est predit() qui prend en argument le classifier et en input notre
fonction d’entrée appliquée à nos données.
Tutoriel : Evaluation du modèle

Objectif : évaluer le modèle


=> On évalue le modèle pour voir sa performance sur les données de test et sur le dataset complet à l’aide de
la fonction evaluate() qui prend en argument : le classifier, et en input notre fonction d’entrée appliquée à nos
données.

evaluation_test <- evaluate( classifier, input_fn =


donor_pred_fn(donor_data_test))
evaluation_all <- evaluate( classifier, input_fn =
donor_pred_fn(donor_data))
b. Google Colab

● Application Web Open Source.


● Service Cloud par Google.
● Utilisation gratuite.
● Basé sur Jupyter Notebook.
● Permet d'entraîner des modèles de Machine Learning directement dans le cloud.
● Permet de créer et partager du code avec Google Drive.
Accès à Google Colab

● Via Google Drive :


● Attention si l’onglet « Google
Colaboratory» n’apparaît pas, il faut
le rechercher à l’aide de « associer
plus d’applications » et cliquer sur
« connecter ».
Accès à Google Colab

● On peut aussi y accéder via ce lien : https://colab.research.google.com

● Puis, on clique sur « nouveau notebook » et une nouvelle fenêtre va s’ouvrir :


Utilisation de Google Colab

● Une fois sur le notebook, il n’y a plus qu’à entrer le code dans l’onglet prévu à cet effet et appuyer sur la
flèche pour l’exécuter

● Sous le code, on peut voir le résultat de l’exécution (ici, on affiche la version de tensorflow).
Utilisation de Google Colab

● Vous pouvez également partager le notebook avec des collaborateurs


c. Installation de tensorflow dans Python

● Pour une installation en local sur votre ordinateur : dans le terminal de votre ordinateur, exécutez la
commande suivante : pip install tensorflow

● Puis, lancez python et importez tensorflow :

● Pour la suite du tutoriel, je vous invite à utiliser l’interface Google Colab


Objectifs du tutoriel

● Charger un jeu de données


● Utiliser tensorflow pour la prédiction sur ce jeu de données
● Afficher les données
● Nettoyer les données
● Créer le modèle d’apprentissage automatique
● Entraîner et évaluer le modèle
Tutoriel : Chargement du jeu de données

● Ici, on va charger le jeu de données MNIST qu’on peut trouver dans tensorflow

MNIST est une base de données de chiffres écrits à la main. C’est un jeu de données très utilisé en
apprentissage automatique.

Source : https://www.tensorflow.org/tutorials/quickstart/beginner?hl=fr
Tutoriel : Chargement du jeu de données

On explore les données chargées et on affiche le 800 ème élément ainsi que son étiquette pour le visualiser.
Cela permet de prendre connaissance des données qu’on va traiter

Source : https://www.tensorflow.org/tutorials/quickstart/beginner?hl=fr
Tutoriel : Les librairies utilisées

● Librairie tensorflow pour pouvoir utiliser tensorflow dans python.


● Librairie Keras : API de prototypage rapide de réseau de neurones artificiel qu’on utilise comme une
surcouche de tensorflow.
● Librairie Numpy qui permet de manipuler des matrices ou tableaux multidimensionnels .
● Librairie Maplotlib qui permet de tracer des graphiques.
● Librairie Keras.datasets qui permet de charger des datasets fournis dans la librairie Keras.
Tutoriel : Affichage des données

● Résultat après avoir exécuté le code : On voit que X_train contient 60k d'exemples. Chaque exemple est
une image 28 x 28. Y_train contient 60k étiquettes.
Tutoriel : Nettoyage des données

● Maintenant qu’on sait à quoi ressemblent nos données, on va les convertir d'entiers en nombres à virgule
flottante

Source : https://www.tensorflow.org/tutorials/quickstart/beginner?hl=fr
Tutoriel : Création du modèle d’apprentissage automatique

● On crée un modèle tf.keras.Sequential en empilant des couches

● Pour chaque exemple, le modèle renvoie un vecteur de scores logits ou log-odds, un pour chaque classe (il
s’agit d’un vecteur de prédictions brutes non normalisées).

Source : https://www.tensorflow.org/tutorials/quickstart/beginner?hl=fr
Tutoriel : Création du modèle d’apprentissage automatique

● On convertit ensuite ces logits en probabilités, pour chaque classe, à l’aide de la fonction tf.nn.softmax :

Source : https://www.tensorflow.org/tutorials/quickstart/beginner?hl=fr
Tutoriel : Création du modèle d’apprentissage automatique

● On définit ensuite une fonction de perte pour l'entraînement à l'aide losses.SparseCategoricalCrossentropy,


qui prend un vecteur de logits et un indice True et renvoie une perte scalaire pour chaque exemple.

● Cette perte est égale à la probabilité logarithmique négative de la vraie classe : la perte est nulle si le
modèle est sûr de la bonne classe.

Source : https://www.tensorflow.org/tutorials/quickstart/beginner?hl=fr
Tutoriel : Création du modèle d’apprentissage automatique

● On configure et compile le modèle à l'aide de Keras Model.compile

Source : https://www.tensorflow.org/tutorials/quickstart/beginner?hl=fr
Tutoriel : Entraînement et évaluation du modèle

● On utilise la méthode Model.fit pour ajuster les paramètres de votre modèle et minimiser la perte

● On utilise la méthode Model.evaluate vérifie les performances des modèles

● Le classificateur d'images est maintenant formé à une précision d'environ 98 % sur cet ensemble de
données.

● Source : https://www.tensorflow.org/tutorials/quickstart/beginner?hl=fr
Références

● Introduction à la programmation en R, Vincent Goulet


https://cran.r-project.org/doc/contrib/Goulet_introduction_programmation_R.pdf
● http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_R.html
● https://www.pierre-giraud.com/python-apprendre-programmer-cours/introduction/
● https://python.doctor/
● https://analyticsinsights.io/tutoriel-deep-learning-avec-tensorflow-dans-r/
● https://www.lebigdata.fr/tensorflow-definition-tout-savoir
● https://www.tensorflow.org/tutorials/quickstart/beginner?hl=fr

Vous aimerez peut-être aussi