Vous êtes sur la page 1sur 51

Intelligence

Artificielle
I RI S I – S 4 . F S TG M A RRA KECH.
P R. M ERI EM BENH A DDI .
Précédemment
Projet Deep Learning
Projet Deep Learning
Bien définir le problème
Projet Deep Learning
La base de données : quel format ?
La base de données : quel format ?
La base de données : quel format ?
La base de données : si je n’ai pas
beaucoup de données ?
La base de données : si je n’ai pas
beaucoup de données ?
Exemple : user de :
ØRotation,
ØTranslation,
ØRetournement,
ØRedimensionnement,
ØEclaircissement,
ØAssombrissement,
ØMixe avec du bruit
La base de données : si je n’ai pas
beaucoup de données ?
La base de données : le découpage
Appelé aussi
Développement
set
Projet Deep Learning

Voir séance
précédente
Projet Deep Learning
Le problème de l’overfitting

La principale raison pour laquelle le overfitting se produit est que le modèle apprend même les
moindres détails présents dans les données. Ainsi, après avoir appris tous les patterns possibles
qu'il peut trouver, le modèle a tendance à très bien fonctionner sur le training set, mais ne
produit pas de bons résultats sur les validation set et test set. Il échoue face à des données
jamais vues auparavant.
Adapter l’apprentissage : early stopping
Adapter l’apprentissage : early stopping

Keras:
early_stopping = EarlyStopping(monitor = "val_loss",patience = 10,restore_best_weights=True)
Projet Deep Learning
Régularisation : Intérêts
Régularisation : Définition
ØL’overfitting se produit parce que le modèle apprend même les moindres détails présents (tous
les patterns) dans les données du training set. Le modèle fonctionne bien sur le training set,
mais échoue sur les validation set et test set.
ØLa régularisation est le processus consistant à faire en sorte que la fonction de prédiction
s'adapte moins bien aux données d'apprentissage dans l'espoir qu'elle généralise mieux les
nouvelles données (objectif : diminuer la variance du modèle).
ØDivers techniques :
ØL1 & L2
ØDropout
ØBatchNorm
Régularisation : L1 (Lasso) & L2 (Ridge)
•La Regularization Weight Decay, en français Diminution des Poids permet d’améliorer la
généralisation lors de l’apprentissage du modèle : Le but du Weight Decay est de diminuer la valeur
des poids trop important.
•C’est une sorte de handicap que l’on donne au poids qui augmentent trop vite. Grâce à cet handicap,
le modèle doit performer ailleurs que sur les neurones associés à ces poids. Ainsi, d’autres poids vont
pouvoir progresser pour transmettre de l’information.
•Exemple : si un joueur de tennis est ultra-performant pour envoyer la balle avec son coup droit mais
qu’il n’est pas bon sur son revers. Eh bien l’idée de la Regularization serait de lui interdire d’utiliser
son coup droit pendant l’entraînement de tel sorte qu’il soit obligé d’améliorer son revers pour
atteindre son objectif : battre son adversaire.
•Cette technique lui permet au tennisman de généraliser son apprentissage, de tel sorte qu’il pourra
jouer les balles venant de sa gauche aussi bien que celle venant sur sa droite.
•De la même manière, cette technique permet au modèle de mieux généraliser son apprentissage et
donc améliore ses performances sur les données non observées.
Régularisation : L1 (Lasso) & L2 (Ridge)
•En pratique, la Regularization s’effectue après avoir calculé la loss function. On applique la fonction
de régularisation qui :
• pour la L1-Regularization la somme des poids en valeur absolue multiplié par une constante α
• pour la L2-Regularization la somme des poids au carré multiplié par une constante α
•Écrit sous forme mathématique :
Régularisation : L1 (Lasso) & L2 (Ridge)
Empêcher l’overfitting en ajoutant une valeur pénalisante à la fonction de loss.

est le paramètre de régularisation.


Régularisation : L1 (Lasso) & L2 (Ridge)
ØLa régularisation L1 ou L2 permet de réduire la complexité du modèle.
ØSi le paramètre de régularisation a une valeur élevée, la décroissance des poids lors de la mise
à jour de la descente de gradient sera plus importante. Par conséquent, les poids de la plupart
des unités cachées seront proches de zéro. Les poids étant négligeables, le modèle n'apprendra
pas grand chose de ces unités. Cela finira par simplifier le réseau et ainsi réduire l’overfitting :
Régularisation : dropout
Si un joueur de tennis est ultra-performant pour envoyer la balle avec son coup droit mais qu’il
n’est pas bon sur son revers. Eh bien l’idée du Dropout serait de lui interdire d’utiliser son coup
droit pendant l’entraînement de tel sorte qu’il soit obligé d’améliorer son revers pour atteindre
son objectif : battre son adversaire.
Cette technique lui permet au tennisman de généraliser son apprentissage, de tel sorte qu’il
pourra jouer les balles venant de sa gauche aussi bien que celle venant sur sa droite.
De la même manière, cette technique permet au modèle de ne pas compter toujours sur les
mêmes neurones, de mieux généraliser son apprentissage et donc améliore ses
performances sur les données non observées.
Régularisation : dropout

Durant chaque itération, les neurones à éliminer de chaque couche sont choisis aléatoirement.
Stratégie de Dropout
Régularisation : dropout
Régularisation : batch-normalization
Rappel :
Régularisation : batch-normalization
•La normalisation c’est le fait de modifier les données d’entrée d’un réseau de neurones de telle
sorte que la moyenne soit nulle et l’écart-type égale à un.
•En fait cela permet d’avoir des données plus stables car appartenant à une même échelle. Par
conséquent le réseau de neurones a plus de facilité à s’entraîner.
•La normalisation c’est donc le fait de formater ses données d’entrée pour faciliter le processus de
Machine Learning.
•La Batch Normalization, elle, survient dans le contexte du Deep Learning où l’on a un empilement
successif de couches et de fonctions d’activation.
•De même que la normalisation en entrée facilite l’apprentissage, la normalisation après chaque
couche (donc à l’entrée de chaque nouvelle couche) permet, elle aussi, un meilleur apprentissage.
•Normaliser la sortie d’une couche, c’est ce qu’on appelle la Batch Normalization !
Régularisation : batch-normalization

Normalisation
des inputs

Normalisation des sorties de chaque couche


Régularisation : batch-normalization
Régularisation : batch-normalization
ØLes résultats des opérations de chaque neurone changent à chaque fois que les paramètres
des couches précédentes changent. Par conséquent, nous voyons beaucoup de changement
dans les valeurs d'activation. La norme du batch réduit la quantité de décalage de la distribution
de ces valeurs unitaires cachées.

ØDe plus, il s'avère que la norme du batch a également un effet de régularisation :


ØChaque mini-batch est normalisé à l'aide de la moyenne/variance calculée uniquement sur ce
mini-batch. Cela ajoute du bruit dans ce mini batch, ce qui est similaire à l'effet de dropout.
Batch-Norm : Algorithme
Régularisation : batch-normalization
•Batch Normalization : bénéfices important
•Stabilisation du réseau de neurones : pour chaque batch, le réseau doit s’adapter à une seule
plage de données normalisées.
•Cela permet au modèle d’avoir une vision d’ensemble du problème à résoudre et des données à
traiter. En fait, cela permet au modèle de mieux généraliser et donc de réduire l’overfitting.
•Dans certain cas, cela réduit voir anéantit le besoin d’utiliser le Dropout : Apprentissage plus
rapide, meilleur généralisation et en plus de ça, des résultats qui dépassent les précédents
algorithmes les plus performants !
•C’est ce qui fait de la Batch Normalization une technique de base à connaître en Deep Learning !
Projet Deep Learning
Étude des performances : diagnostic
Étude des performances : diagnostic
Étude des performances : diagnostic
Mauvaise distribution des données

è
Appliquer le Shuffling aux données

Shuffle
Shuffling des données
Pour résumer

Vous aimerez peut-être aussi