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

Un neurone, est composĆ© de plusieurs entrĆ©es, et de son noyau qui transmet une sortie.Ā  Le rĆ©seau de neurones est le branchement de sortie de certains neurones sur les entrĆ©es d’autres neurones pour former un rĆ©seau.
Ā 

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

Une database est une base de donnĆ©e, c’est l’ensemble des donnĆ©es disponibles. Elles peuvent ĆŖtre sous n’importe quelle forme.
Ā 

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

Size signifie taille, shape signifie forme.
Ā 
Dans nos images la size correspond Ć  la taille de nos images, c’est Ć  dire la hauteur et la largeur, combien de pixels composent cette image.
La shape est la forme de nos donnĆ©es, c’est Ć  dire comment ces pixels sont organisĆ©s et comment leurs valeurs reprĆ©sentĆ©es dans la mĆ©moire de l’ordinateur. La shape est gĆ©nĆ©ralement plus complexe que juste la hauteur et la largeur, elle comprend Ć©galement le nombre d’image et le nombre de couleurs.Ā 
On peut changer l’ordre dans lequel on retrouve les grandeurs ou en ajouter avec des reshape : d’abord la hauteur ou la largeur ? combien de couleurs ? ajouter le nombre d’images…

CrĆ©er son modĆØle – les diffĆ©rentes couches

Sequential

Sequential est un type de modèle de réseau de neurones constitué de couches successives.
Ā 
On parle de sĆ©quences car ces couches sont les unes aprĆØs les autres, on peut les ordonner : couche 1, couche 2, couche 3 ,etc. en commenƧant par l’entrĆ©e et en terminant par la sortie.
Ā 
Il existe d’autres types de rĆ©seaux de neurones dans lesquels il peut y avoir plusieurs couches en parallĆØle, plusieurs entrĆ©es, plusieurs sorties …

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

Le paramĆØtre activation permet de dĆ©finir quelle fonction d’activation utiliser pour la couche actuelle.
Ā 
GĆ©nĆ©ralement on utilisera un type de fonction pour les couches intermĆ©diaires qui permet de redresser les valeurs (RELU, Tanh, Sigmoid, etc.), mais essentiellement pour notre couche de sortie, la fonction d’activation va dĆ©pendre de ce que l’on attends en sortie ( pour des problĆØmes de classification on utilise softmax)
Ā 

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

Le compile est l’Ć©tape de compilation du rĆ©seau de neurones.
Ā 
Cette Ć©tape permet de spĆ©cifier les diffĆ©rentes options qui permettrons d’entrainer notre rĆ©seau comme :
  • 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

La loss est l’erreur du rĆ©seau, c’est Ć  dire l’Ć©cart entre la sortie attendue et la sortie obtenue. Son calcul est effectuĆ© selon le type de problĆØme et est prĆ©cisĆ© lors du compile.
L’accuracy permet de savoir si le rĆ©seau Ć  trouvĆ© la bonne rĆ©ponse.
Ā 
Par exemple si on deux catƩgories avec une sortie attendue [1 0] et que le rƩsultat soit [0.8 0.2] il y a une loss de 0.4 (un Ʃcart de 0.2 entre 1 et 0.8 et un Ʃcart de 0.2 entre 0 et 0.2). Par contre la rƩponse est bonne car la valeur majoritaire est la bonne.

Ā 

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.

Retour en haut