Vocabulaire de l'IA
Dans cette page, tu dƩcouvriras le vocabulaire liƩ au machine learning organisƩ par grandes thƩmatiques:
Notions gƩnƩrales
RƩseau de neurone
Un rĆ©seau de neurone est un approximateur universel de fonction, cela signifie qu’il peut apprendre le lien entre une entrĆ©e et une sortie quel qu’il soit Ć partir du moment où il existe une relation logique entre ces valeurs.
EntrĆ©e – Input
C’est les donnĆ©es que l’on va fournir Ć notre rĆ©seau de neurones Ć partir desquelles on lui demande de faire quelque chose.
Sortie – Output
C’est le rĆ©sultat de notre rĆ©seau de neurone Ć partir d’une entrĆ©e spĆ©cifique.
Couches – Layer
Une couche est un ensemble de neurones que l’on peut rattacher Ć une ou plusieurs couches en entrĆ©e et une ou plusieurs couches en sorties
On parle souvent de couches intermĆ©diaires pour parler de toutes les couches entre la couche d’entrĆ©e et la couche de sortie, on parle Ć©galement de couche cachĆ©e ou hidden layer.
L’existence de plusieurs couches cachĆ©es est ce qui caractĆ©rise le Deep Learning, l’apprentissage profond, sur plusieurs couches.
Fonctionnement d’un neurone
Pour chacune des entrĆ©es le neurone a un poids rattachĆ© qui permet de rĆ©gler l’importance de cette entrĆ©e pour le neurone. Le noyau du neurone fait la somme de toutes ces entrĆ©es. On applique un biais Ć cette somme qui retransmet cette somme de maniĆØre plus ou moins forte.
Enfin on peut ajouter une fonction d’activation.
Fonction d’activation
Cette fonction sert à modifier la sortie de manière non linéaire en appliquant une fonction à cette sortie.
Par exemple, la fonction RELU transforme les valeurs nĆ©gatives en 0, les sigmoides s’assure que toutes les valeurs soient entre -1 et 1, etc…
Dataset vs Database
Un dataset est la partie utile de cette base de donnée, celle qui va servir à entrainer notre réseau de neurones une fois préparé. Dans notre dataset on a les entrées (X) et les sorties (Y) qui serviront à notre entrainement.
Les grandes Ć©tapes d’un projet de machine learning
PrƩparer son dataset
X_train
C’est le nom de variable que l’on donne aux donnĆ©es dāapprentissage qui servent d’entrĆ©e Ć notre rĆ©seau de neurone.
C’est grĆ¢ce Ć ces donnĆ©es qu’il va s’entrainer.
Y_train
C’est le nom de variable que l’on donne aux donnĆ©es dāapprentissage que l’on attend en sortie de notre rĆ©seau de neurones. C’est ce qu’on attend qu’il prĆ©dise lors de l’entrainement.
X_test
C’est le nom de variable que l’on donne aux donnĆ©es de test qui servent d’entrĆ©e Ć notre rĆ©seau de neurones.
On utilise ces données pour évaluer la capacité du réseau à généraliser sur de nouvelles données.
Y_test
C’est le nom de variable que l’on donne aux donnĆ©es de test que l’on attend en sortie de notre rĆ©seau de neurones.
Size vs Shape
CrĆ©er son modĆØle – les diffĆ©rentes couches
Sequential
input_shape
L’input shape est la forme de nos entrĆ©es.
GĆ©nĆ©ralement on ajoute ce paramĆØtre Ć la premiĆØre couche de notre rĆ©seau de neurone pour spĆ©cifier la forme et s’assurer que les donnĆ©es aient la bonne forme.
activation
Dense
Une couche Dense est une couche dont tous les neurones ont pour entrĆ©e toutes les sorties de la couche prĆ©cĆ©dentes et dont les sorties sont reliĆ©es Ć toutes les entrĆ©es de la couche suivante. On parle Ć©galement de couche pleinement connectĆ©esĀ – fully connected, pour exprimer que tous ces neurones sont connectĆ©s.
Dropout
Le dropout est un paramĆØtre qui permet de couper une partie des connexions entre deux couches.
Cela permet d’endormir une partie du rĆ©seau Ć chaque apprentissage pour forcer la multiplication des chemins d’apprentissage afin de pouvoir gĆ©nĆ©raliser.
Entraîner son modèle
compile
- l’optimizer : qui permet de gĆ©rer lāapprentissage du rĆ©seau de neurones et comment il arrive Ć corriger ses erreurs, ce implĆ©mente un outil mathĆ©matique, la descente de gradient. GĆ©nĆ©ralement nous utilisons Adam
- Ā la loss permet de calculer l’erreur du rĆ©seau de neurone, c’est Ć dire Ć quel point il y a un Ć©cart entre la sortie attendue et la sortie obtenue. Selon le type de problĆØme que l’on cherche Ć rĆ©soudre on aura des calculs de loss diffĆ©rents. Par exemple :
- categorical_crossentropy pour des projets de classification
- binary_crossentropy pour une rƩponse binaire (oui/non avec un seul neurone en sortie)
- le metrics permettent d’ajouter d’autres Ć©lĆ©ments Ć afficher pendant l’apprentissage pour visualiser l’apprentissage. GĆ©nĆ©ralement nous ajoutons l’accuracy qui permet d’afficher est-ce que le rĆ©seau Ć la bonne rĆ©ponse
fit
Le fit est l’Ć©tape d’entrainement du rĆ©seau de neurones.
On peut faire plusieurs fit diffĆ©rents sur des donnĆ©es diffĆ©rentes avec plus ou moins d’Ć©pochs et relancer l’entrainement tout en gardant l’Ć©tat prĆ©alable du rĆ©seau.
Pour l’entrainement on doit prĆ©ciser :
- les donnĆ©es d’entrainement : les entrĆ©es et les sorties (X_train et Y_train)
- le batch_size : l’entrainement ne se fait pas sur l’intĆ©gralitĆ© des donnĆ©es en une fois, on dĆ©coupe ces donnĆ©es en plusieurs lots. La batch_size dĆ©finit la taille de se lot.Ā L’intĆ©rĆŖt est que le rĆ©seau prends l’intĆ©gralitĆ© d’un lot et essaye de se corriger sur toutes les donnĆ©es de ce lot afin d’avoir le meilleur rĆ©glage possible.
- l’epochs : dĆ©finit le nombre de passage sur l’intĆ©gralitĆ© des donnĆ©es, combien de fois le rĆ©seau de neurones s’entraine sur toutes ces donnĆ©es.
- les validation_data : sont les donnĆ©es qui seront utilisĆ©es pour tester le rĆ©seau (X_train et Y_train). Pendant ce test, le rĆ©seau n’apprends plus, il teste juste ses rĆ©glages actuels sur des donnĆ©es qu’il ne connait pas.
Analyser l’apprentissage – lire le fit
loss vs accuracy
Ā
val_loss VS loss & val_acc VS accuracy
La val_acc et la val_loss sont les valeurs d’accuracy et de loss mais pour les donnĆ©es de validation. Cela permet de comparer les valeurs d’apprentissage et de test.
Overfiting
L‘overfiting est un sur apprentisage du rĆ©seau de neurones.
Cela signifie que le rĆ©seau de neurones n’est pas capable de gĆ©nĆ©raliser, voir apprends par cÅur. Cela se carractĆ©rise par une accuracy trĆØs forte et une loss trĆØs faible, ce qui laisserais croire que le rĆ©seau apprends bien, mais de l’autre cĆ“tĆ© on a une val_accuracy bien plus faible et une val_loss assez forte.
Underfiting
L’underfiting est un sous apprentissage du rĆ©seau.
Cela signifie que le rĆ©seau de neurones n’arrive pas Ć apprendre, quelque soit le nombre d’Ć©pochs, on garde une loss/val_loss forte et une accuracy/val_acc faible qui n’Ć©volue pas.
