Le Deep Learning Partie 1 : les origines

Premier article de notre dossier « Deep Learning ». Avant toute chose, il est important de connaître l’histoire du Deep Learning, avant de découvrir dans deux autres parties son fonctionnement puis, pour finir, ses perspectives d’avenir.

Le Deep Learning est une terminologie relativement nouvelle, contrairement aux réseaux de neurones profonds, qu’elle désigne. La théorie derrière le Deep Learning n’est donc pas récente, et même si de nouvelles méthodes algorithmiques ont permis de révéler son plein potentiel, ses fondements remontent au milieu du XXe Siècle.

Le neurone artificiel ou neurone formel

C’est au milieu des années 40 qu’a été formalisée l’idée d’un neurone artificiel, qui est une abstraction mathématique très simplifiée d’un neurone du cerveau humain.

Un neurone artificiel (ou formel)

Un neurone artificiel est un outil mathématique qui reçoit des valeurs en entrée, pondère ces valeurs avec des poids (ou coefficients) et retourne une valeur en sortie, en fonction de la somme des valeurs pondérées. La valeur renvoyée par le neurone s’appelle alors une activation. C’est donc bel et bien une abstraction mathématique d’un neurone biologique qui, de façon très simplifiée, reçoit des signaux électriques par ses dendrites, les transforme dans ses synapses et s’active ou non en fonction des signaux reçus. Si un neurone biologique s’active, cela signifie qu’il transmet le signal électrique reçu à d’autres neurones.

Quelques années plus tard, l’idée du neurone artificiel (ou neurone formel) fut appliquée à un problème de classification binaire : l’algorithme obtenu se nomme le perceptron. L’activation d’un neurone dans le cadre d’un perceptron correspond donc à une des deux classes que l’on cherche à prédire. L’apprentissage d’un perceptron correspond à trouver les poids (ou coefficients) du neurone qui permettent de renvoyer la valeur voulue et donc la bonne classe. A l’instar du cerveau humain qui est constitué d’un grand nombre de neurones interconnectés entre eux, on s’est donc vite rendu compte qu’utiliser plusieurs neurones donnait de meilleurs résultats. Cela a donc conduit à des perceptrons avec une couche de neurones et non plus un neurone unique.

A l’époque, les perceptrons permettaient de résoudre des problèmes de classification binaire simples mais étaient limités par leur incapabilité à résoudre certains types de problèmes (comme la fonction XOR ci dessous).

Un perceptron simple ne pourra pas trouver cette frontière de décision entre les éléments bleus et les éléments oranges

Le réseau de neurones multi-couches

Pour résoudre ce problème, il est nécessaire de passer d’un perceptron ayant une couche de neurones, à un réseau de neurones avec plusieurs couches ; le perceptron multi-couches. Cependant, le fait d’ajouter des couches à un perceptron rend l’apprentissage de celui-ci plus difficile.

La méthode pour apprendre ce type de réseaux de neurones, appelée rétropropagation du gradient, fut appliquée à un réseau de neurones avec succès pour la première fois au milieu des années 80. Pour rappel, l’apprentissage d’un perceptron consiste à trouver les valeurs des poids des neurones. L’apprentissage d’un perceptron multi-couches correspond donc à trouver les valeurs des poids de l’ensemble des neurones constituant le réseau, ce qui peut potentiellement faire un nombre de poids très important à trouver.

Cette méthode a permis aux réseaux de neurones d’être vraiment utiles pour la première fois en résolvant des problèmes importants comme la reconnaissance optique de chiffres sur des chèques par exemple.

Cependant, il s’est avéré relativement rapidement que, pour résoudre des problèmes plus complexes, il était nécessaire de multiplier les couches dans les réseaux de neurones. Le problème est que cette complexification des réseaux de neurones entraîne deux difficultés :

  • Plus le réseau a de couches (plus il est profond), plus il faut de puissance de calcul pour pouvoir faire l’apprentissage et l’utiliser.
  • Plus le réseau est profond, moins l’algorithme d’apprentissage (la rétropropagation du gradient) fonctionne correctement.

Ces deux difficultés ont limité l’acceptation et l’utilisation des réseaux de neurones pendant près de deux décennies. En effet, il était fréquent de devoir utiliser des réseaux pour lesquels on ne parvenait pas à faire correctement l’apprentissage.

Le succès des années 2000

La méthode a connu un regain d’intérêt au milieu des années 2000 quand il fut prouvé qu’il était possible de faire un pré-apprentissage des réseaux de neurones profonds grâce à des méthodes non supervisées.

Ce pré-entraînement permettait de réduire les difficultés d’apprentissage connues précédemment sur les réseaux profonds. C’est cette découverte qui a permis de relancer quelque peu la recherche dans le domaine, alors qu’une solution à l’autre problème commençait à apparaître : l’utilisation des cartes graphiques pour faire les calculs.

Les cartes graphiques sont des composants des ordinateurs qui gèrent l’affichage des informations à l’écran. Ces composants sont pensés pour pouvoir effectuer en parallèle un grand nombre de calculs mathématiques simples. Or, il s’avère justement que l’apprentissage et l’utilisation d’un réseau de neurones requiert un très grand nombre de calculs mathématiques très simples, et que ceux-ci peuvent être en grande partie parallélisés. Les cartes graphiques (ou GPU) sont donc des composants bien plus adaptés que les processeurs classiques pour l’apprentissage et l’utilisation des réseaux de neurones.

L’avènement grâce à ImageNet

Cependant, l’événement qui déclencha vraiment le renouveau des réseaux de neurones ainsi que l’apparition du terme Deep Learning fut le concours de reconnaissance et classification d’images ImageNet de 2012. Ce concours, effectué tous les ans, met en compétition des équipes de recherche du monde entier pour classifier automatiquement des images selon 1000 catégories différentes.

En 2012, l’équipe qui l’ emporté l’a fait avec un réseau de neurone profond, une première pour cette compétition. En effet, la grande complexité de la tâche semblait jusque-là trop importante pour pouvoir utiliser des réseaux de neurones. Fait marquant, la solution de cette équipe faisait presque moitié moins d’erreurs que celle de l’équipe en seconde position du concours.

Leur solution se basait sur un réseau de neurones très profond pour l’époque (8 couches). L’apprentissage du réseau fut possible grâce à l’utilisation de GPUs et grâce à un ensemble de nouvelles techniques permettant de faciliter l’utilisation de la rétropropagation du gradient (notamment en changeant la façon dont les neurones retournent leur valeur d’activation).

Architecture d’AlexNet, le réseau de neurones profond qui remporta la compétition ImageNet en 2012

L’année suivante, toutes les meilleures équipes utilisaient des réseaux de neurones et aujourd’hui, plus personne n’utilise de méthodes différentes pour cette compétition.

Les réseaux de neurones profonds (ou Deep Learning, le mot “Deep” faisant référence à la profondeur des réseaux, c’est à dire à leur grand nombre de couches) trouvent donc leurs origines dans des approches relativement anciennes, mais leur exposition actuelle est due à un ensemble de nouvelles avancées technologiques et algorithmiques très récentes.

Pour en apprendre davantage sur le Deep Learning, retrouvez aussi la Partie 2 !



Pouvons-nous utiliser des cookies ?

Nous utilisons sur notre site des cookies. Vous pourrez trouver des explications ci-dessous. Afin d'être conforme avec la nouvelle réglementation en vigueur dans le cadre de la RGPD, merci de cliquer sur "Accepter". Après avoir cliqué, vous ne verrez plus ce message.

En savoir plus sur les traceurs