Le Dropout c’est quoi ? Deep Learning Explication Rapide

L’overfitting est un problème fréquent lors de l’entraînement d’un modèle de Deep Learning, mais une technique existe pour le contrer : le Dropout.

C’est une méthode de Regularization expliquée dans un papier de recherche en 2014.

La Regularization est un ensemble de méthode qui permet à la fois d’optimiser l’apprentissage d’un modèle de Deep Learning et de contrer l’overfitting (manque de généralisation).

Une de ces méthodes s’appelle la L2 Regularization expliquée dans cet article.

Aujourd’hui, on se penche sur la technique du Dropout !

Qu’est-ce que le Dropout ?

Le Dropout est une technique permettant de réduire l’overfitting lors de l’entraînement du modèle.

Le terme  » Dropout  » fait référence à la suppression de neurones dans les couches d’un modèle de Deep Learning.

En fait, on désactive temporairement certains neurones dans le réseau, ainsi que toutes ses connexions entrantes et sortantes :

Réseau de Neurones Standard
Après avoir appliqué le Dropout

Le choix des neurones à désactiver est aléatoire. On attribue une probabilité p à tous les neurones qui détermine leur activation.

Lorsque p = 0.1, chaque neurone a une chance sur 10 d’être désactivé.

À chaque epoch, on applique cette désactivation aléatoire. C’est-à-dire qu’à chaque passe (forward propagation) le modèle apprendra avec une configuration de neurones différentes, les neurones s’activant et se désactivant aléatoirement.

Cette procédure génère effectivement des modèles légèrement différents avec des configurations de neurones différentes à chaque itération.

L’idée est de perturber les caractéristiques apprises par le modèle. Habituellement, l’apprentissage du modèle repose sur la synchronicité des neurones… avec le Dropout, le modèle doit exploiter chaque neurone individuellement, ses voisins pouvant être désactivés aléatoirement à tout instant.

Attention : le Dropout est actif uniquement durant l’entraînement du modèle. Lors des tests, chaque neurone reste actif et son poids est multiplié par la probabilité p.


CRÉER TON APPLICATION IA !

Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !

Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres ! Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !). En bonus, tu recevras notre Guide Ultime du Deep Learning !


Photo by Andy Kelly on Unsplash

Comment utiliser le Dropout ?

Sur Keras & Tensorflow

Son utilisation est vraiment simple sur l’ensemble des librairies.

Avec Keras & Tensorflow il suffit d’ajouter une couche Dropout est d’indiquer la probabilité de désactivation souhaitée.

La probabilité par défaut est de 0.5, ici on prend 0.2 :

tf.keras.layers.Dropout(0.2)

Il est à utiliser comme une couche du réseau de neurones, c’est à dire qu’après (ou avant) chaque couche on peut ajouter un Dropout qui va désactiver certains neurones.

Sur PyTorch

Sur PyTorch, l’utilisation est tout aussi rapide :

torch.nn.Dropout(p=0.2)

Ici aussi la valeur par défaut est de 0.5.

Essayons concrètement cette couche !

Prenons un tenseur avec des valeurs aléatoires :

import torch
input = torch.randn(3, 2)

Créons notre couche de Dropout :

import torch.nn as nn

drop = nn.Dropout(p=0.2)

Et appliquons-la à notre tenseur :

drop(input)

Essayez sur votre environnement de développement et vous verrez le résultat !

Vous devriez avoir certaines valeurs de votre tenseur qui se sont désactivées (transformées en zéro) suite au Dropout.

C’est tout pour cet article ! Si vous voulez continuer à voir des méthodes de Regularization c’est par ici.

Photo by Leon Ephraïm on Unsplash

source :


CRÉER TON APPLICATION IA !

Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !

Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres ! Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !). En bonus, tu recevras notre Guide Ultime du Deep Learning !


Tom Keldenich
Tom Keldenich

Data Engineer & passionné d'Intelligence Artificielle !

Fondateur du site Inside Machine Learning

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.