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.

Au fait, si ton objectif est d'apprendre le Deep Learning - j’ai préparé pour toi le Plan d’action pour Maîtriser les Réseaux de neurones.

7 jours de conseils gratuits d’un ingénieur spécialisé en Intelligence Artificielle pour apprendre à maîtriser les réseaux de neurones à partir de zéro :

  • Planifie ton apprentissage
  • Structure tes projets
  • Développe tes algorithmes d’Intelligence Artificielle

J’ai basé ce programme sur des faits scientifiques, des approches éprouvées par des chercheurs mais également mes propres techniques que j'ai conçues au fil de mes expériences dans le domaine du Deep Learning.

Pour y accéder, clique ici :

RECEVOIR MON PLAN D'ACTION

RECEVOIR MON PLAN D'ACTION

À présent, on peut revenir à ce que je mentionnais précédemment.

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.

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 :

Un dernier mot, si tu veux aller plus loin et apprendre le Deep Learning - j’ai préparé pour toi le Plan d’action pour Maîtriser les Réseaux de neurones.

7 jours de conseils gratuits d’un ingénieur spécialisé en Intelligence Artificielle pour apprendre à maîtriser les réseaux de neurones à partir de zéro :

  • Planifie ton apprentissage
  • Structure tes projets
  • Développe tes algorithmes d’Intelligence Artificielle

J’ai basé ce programme sur des faits scientifiques, des approches éprouvées par des chercheurs mais également mes propres techniques que j'ai conçues au fil de mes expériences dans le domaine du Deep Learning.

Pour y accéder, clique ici :

RECEVOIR MON PLAN D'ACTION

RECEVOIR MON PLAN D'ACTION

Tom Keldenich
Tom Keldenich

Ingénieur spécialisé en Intelligence Artificielle et passionné de données !

Fondateur du site Inside Machine Learning

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

This page will not stay online forever

Enter your email to receive for free

The PANE method for Deep Learning

* indicates required

 

You will receive one email per day for 7 days – then you will receive my newsletter.
Your information will never be given to third parties.

You can unsubscribe in 1 click from any of my emails.



Entre ton email pour recevoir gratuitement
la méthode PARÉ pour faire du Deep Learning


Tu recevras un email par jour pendant 7 jours - puis tu recevras ma newsletter.
Tes informations ne seront jamais cédées à des tiers.

Tu peux te désinscrire en 1 clic depuis n'importe lequel de mes emails.