1- Pourquoi est-ce révolutionnaire ?
Depuis les années 2010, le deep learning a révolutionné le domaine de l'intelligence artificielle. Mais pourquoi cette méthode a-t-elle complètement bouleversé ce domaine
Pour résoudre un problème à l'aide d'une Intelligence artificielle dite "classique", on doit coder à la main tout le comportement d'un algorithme, en prenant soin de prévoir tous les cas particuliers.
En revanche, dans le deep learning, on utilise un réseau de neurones artificiels qui a pour but d'apprendre seul à résoudre le problème, à l'aide d'une base de données.
Pour que le machine learning fonctionne bien, il est nécessaire de lui donner des données pré-traitées. Dans le cas de la reconnaissance d’images, par exemple, il est nécessaire d’utiliser un programme qui décompose les images en formes simples, qui seront ensuite données au réseau de neurones artificiels afin qu’il tente de les reconnaître.
On s’est aperçu qu’en empilant plusieurs réseaux de neurones, les premières couches traversées par les données faisaient ce travail de préparation des données pour les couches plus profondes.
C’est d’ailleurs cette utilisation de plusieurs couches de réseaux de neurones qui a donné son nom au “Deep learning” (“apprentissage profond”).
2- Quel est le principe ?
L'idée fondatrice du deep learning est de s'inspirer du fonctionnement de notre cerveau et de son architecture.
Le cerveau humain est en effet composé de 100 milliards de neurones qui communiquent entre eux pour accomplir des tâches complexes comme écrire ou résoudre un problème de maths.
Pour résoudre un problème complexe comme rattraper une balle qu’on nous lance, notre cerveau n’utilise pas une formule tenant compte de la gravité exercée sur la balle, sa vitesse, l’équation de sa trajectoire, le frottement de l’air etc…
Nous essayons plusieurs fois de rattraper cette balle et c’est en comparant les mouvements effectués avec les résultats (balle effectivement attrapée ou pas) que notre cerveau apprend à attraper des balles. Plus on effectuera d’essais, plus on sera performant en rattrapage de balles.
Le même entraînement est nécessaire en machine learning et il faut beaucoup de données (big data) pour entraîner un algorithme.
Cependant, la comparaison s'arrête là car le "deep learning" utilise des neurones artificiels, c'est-à-dire des agents interconnectés qui font transiter des données afin d'obtenir un résultat au bout de la chaîne.
3- Comment ça marche ?
Pour comprendre le fonctionnement de ce réseau de neurones artificiels, il faut déjà expliquer le fonctionnement d'un seul de ces neurones appelé perceptron.
Un perceptron est un algorithme qui sert à classifier des données. Pour y parvenir, il fait un calcul mathématique en appliquant une fonction d'activation sur la somme de ses entrées multipliée par leur poids correspondant.
Il s’agit d’une somme pondérée, car on applique un poids spécifique à chacune des entrées avant de les additionner. Le résultat est ensuite comparé à un seuil : au-dessous, le neurone est éteint et au-dessus, il est allumé.
Concrètement, pour apprendre à un ensemble de perceptrons à résoudre un problème, il faut leur fournir une base de données contenant le plus d'exemples possible.
Il faut aussi corriger le modèle à chaque fois qu'il commet des erreurs, en modifiant les poids appliqué aux données de la somme pondérée. En deep learning, la marge d'erreur est appelée "le coût" et plus celui-ci se rapproche de zéro, plus le modèle est précis et fiable.
La formule de calcul du coût est la suivante : coût = résultat désiré - prédiction
On répète ce processus, en ajustant les poids, jusqu'à ce que le coût soit le plus proche possible de zéro.
Une fois l'apprentissage terminé, le réseau de perceptrons est capable de résoudre le problème pour lequel on l'a entraîné, avec une marge d'erreur proche de zéro.
4- A quoi ça sert ?
Tout l'intérêt du deep learning est de construire un réseau de perceptrons qui vont permettre de résoudre des problèmes autrement plus complexes (par exemple : permettre à un ordinateur de reconnaître des formes sur des photos ou des chiffres écrits à la main).
Pour accomplir ce type de tâches, on utilise un réseau de perceptrons multicouches, avec plusieurs couches de neurones artificiels et de très nombreuses connexions entre eux.
On va ensuite entraîner ce réseau en utilisant une base de données, selon le principe décrit plus haut. Le principe de cet apprentissage reste le même : appliquer des corrections successives sur les connexions qui relient les perceptrons entre eux afin de minimiser le coût (la marge d'erreur).
Dans les années 1990, Yann LeCun (l'un des pères du deep learning moderne) a mis au point une technologie encore plus efficace : celle du convolutional neural network.
Cette technologie utilise toujours un réseau de neurones, mais tous ces neurones ne sont pas interconnectés comme dans un réseau de perceptrons multicouches.
Le convolutional neural network relie les neurones entre eux d’une manière inspirée par le cortex visuel des animaux. Grâce à cette technologie, le calcul est plus rapide et le résultat (par exemple de reconnaissance des formes sur des images complexes) est plutôt bluffant.
5- Pourquoi cet essor actuel ?
Vous l'aurez compris, les travaux sur le "deep learning" ne sont pas nouveaux, mais ils sont en plein essor depuis moins de dix ans.
Ce Boom a été rendu possible grâce aux sources de données à disposition plus importantes (big data) pour effectuer de meilleurs apprentissages et aux capacités de calcul des cartes graphiques.
Ces dernières ont une architecture particulière qui les rend plus efficaces que les processeurs pour effectuer des calculs en parallèle, c'est-à-dire faire plein de petits calculs en même temps.
Les cartes graphiques sont donc très utiles en deep learning où la majorité des calculs sont indépendants les uns des autres et se résument à une combinaison d'additions et de multiplications.
Grâce à la puissance des cartes graphiques, on a pu construire des réseaux de neurones plus gros, avec plus de couches, d'où l'essor actuel de ce domaine de recherches.
Aujourd'hui, les chercheurs expérimentent différents types de réseaux de neurones, qui commencent à être capables de résoudre des problèmes de classification et d'optimisation beaucoup plus complexes qu'avant.
6- Quelles sont les dernières avancées dans ce domaine ?
Le deep learning commence à se démocratiser grâce à des outils qui évitent de tout coder à la main, par exemple Pytorch, TensorFlow ou Keras.
Parallèlement, la recherche fait des avancées rapides. Pour éviter d'avoir à établir systématiquement une base de données, les chercheurs utilisent un processus de sélection naturelle reposant sur des croisements et des mutations d'algorithmes, comme en biologie.
Désormais, les intelligences artificielles évoluent pour s'adapter au problème à résoudre et ça fonctionne plutôt bien. On parle dans ce cas d'apprentissage non supervisé.
Une des techniques les plus prometteuses dans ce domaine est le Deep Q Learning. Il permet à une IA de "se souvenir" des actions à entreprendre dans une situation donnée pour maximiser ses résultats (par exemple son score dans un jeu vidéo).
On utilise d'ailleurs de plus en plus les environnements virtuels comme les jeux vidéo pour évaluer l'efficacité d'un modèle et les limites du "deep learning".
Combinée à la robotique, l'intelligence artificielle laisse entrevoir un futur où beaucoup de tâches seront automatisées. Cela peut faire rêver ou effrayer...
Si cette présentation vous a donné envie d'en savoir plus sur le Deep Learning, je vous invite à regarder la vidéo ci-dessous qui a servi de source au présent article :