IACOGNITO – EP04 – Le Deep Learning

Dans l’épisode précédent, nous nous intéressions au Machine Learning, une grande branche de l’IA répertoriant de multiples méthodes d’analyse des données qui automatisent la création de modèles analytiques. Le Machine Learning est donc un vaste domaine et ces dernières années, une méthode particulière d’apprentissage a littéralement explosé : le Deep Learning. Un terme dont vous avez certainement entendu parler, et si ce n’était pas le cas, c’est désormais chose faite.

Aujourd’hui, nous mettons donc en lumière le Deep Learning – “petit frère” du Machine Learning. Nous tâcherons de vous expliquer son fonctionnement, ses applications mais également ses avantages et inconvénients. Parce que, comme vous le savez, il n’y a pas de bonne ou de mauvaise situation.

Du Machine Learning au Deep Learning

Dans les discussions concernant le deep learning, il existe de nombreuses confusions autour de ce terme. On va parfois entendre que le deep learning et le machine learning sont des catégories distinctes. Ou que le deep learning c’est du machine learning plus poussé.

En vérité, le deep learning est un type particulier de machine learning basé sur des réseaux de neurones profonds.

Introduction et naissance des réseaux de neurones

Avant de comprendre le Deep Learning en profondeur, il faut donc expliquer ce que sont les réseaux de neurones.

Le concept de réseaux de neurones n’est pas nouveau, loin de là. Il fut inventé par deux chercheurs de l’Université de Chicago. Un mathématicien, Walter Pitts, et un physicien Warren McCullough publient ainsi un article dans Brain Theory présentant leur théorie sur l’activation des neurones.

A l’origine, les réseaux de neurones sont des systèmes dont la conception s’inspire du fonctionnement des neurones biologiques. Il ne s’agit donc pas de biomimétisme mais de bioinspiration. Les réseaux de neurones, c’est, grosso modo, une architecture inspirée du cerveau humain, de manière très schématique, et qui reprend l’idée de neurones, de liaisons entre eux et d’activation neuronale.

Suite à cette théorisation, ce n’est qu’en 1957 que nous passons à la pratique avec la naissance du Perceptron. Un algorithme qui sera notamment appliqué aux tâches de reconnaissance d’objets.

Pour résumer, un réseau de neurones est constitué de couches successives de neurones, l’information circulant entre les neurones par le biais de leurs connexions. Chaque neurone prend l’information qu’il reçoit en entrée, effectue des calculs dessus puis s’active ou non en fonction du résultat de ces calculs.

Dans les années 90, et bien que limités, les réseaux de neurones permettaient de réaliser quelques tâches de manière efficace. Il s’agissait alors d’une certaine méthode de machine learning. Par exemple, Yann LeCun créa un réseau de neurones capables de reconnaître les codes postaux manuscrits. Un réseau de neurones que l’équivalent de La Poste américaine utilisa pour accélérer le tri postal.

Qu’est ce que le Deep Learning ?

Nous venons de voir ce que sont les réseaux de neurones mais est-ce cela que nous appelons le Deep Learning ? Pas tout à fait.

On va parler de deep learning lorsque les réseaux de neurones utilisés sont profonds, la profondeur du réseau étant déterminée par son nombre de couches. Il n’existe pas réellement de valeur précise de profondeur à partir de laquelle un réseau devient profond. Si la plupart des réseaux de neurones profonds dépassent largement la dizaine de couches, on peut néanmoins considérer qu’un réseau de neurones est profond au-delà de cinq couches.

Comment ça marche ?

De base, un réseau de neurones simple peut être considéré comme un approximateur universel, c’est-à-dire qu’il peut reproduire n’importe quelle fonction mathématique. Un réseau de neurones profond lui va étendre les capacités d’abstraction d’un réseau classique. C’est-à-dire que, à mesure qu’on rajoute des couches, le réseau va être capable de s’éloigner des spécificités des données d’entrée pour en tirer une compréhension plus générale. Ceci permet donc aux réseaux de neurones profonds de mieux généraliser, leur donnant ainsi des performances bien meilleures.

Surtout, parce que la multiplication des couches permet au réseau d’apprendre lui-même à s’abstraire de ses entrées, il est possible de lui fournir des données avec le minimum de traitement humain. On a parlé dans l’épisode précédent du besoin d’extraire des caractéristiques pertinentes des données. Avec le deep learning, on compte sur le réseau pour apprendre à faire ça lui-même.

Ce qui ne veut pas dire que la création d’un réseau de neurones profond n’est pas technique. Il existe de nombreuses architectures en fonction des données utilisées et des objectifs attendus. Présenter chaque architecture en détail n’est ni l’objectif ni dans l’intérêt de ce podcast mais on peut par exemple rapidement parler des réseaux convolutionnels. Ceux-ci sont en effet parmi les plus connus car ils ont permis d’accroître de manière très importante les performances en reconnaissance d’images. Ces réseaux sont basés sur des couches de convolution. On peut les imaginer comme des filtres qui vont être passés sur l’ensemble d’une image pour en retirer une information importante. De la même manière que des filtres de couleurs vont colorer différemment (à nos yeux) une image, les filtres des réseaux de convolution vont extraire des caractéristiques différentes de l’image. L’idée derrière les réseaux convolutionnels est qu’on utilise une multitude de ces filtres qui sont appris par le réseau pour extraire les informations les plus pertinentes des images.

Depuis quand ça marche ?

Mais alors, le Deep Learning, comment ça marche?
Si le Deep Learning est un buzzword actuel, le principe des réseaux de neurones profonds, et donc du deep learning, n’est pas récent. Il a été en effet assez vite clair que de meilleures performances pourraient être obtenues avec l’augmentation du nombre de couches.

Dans les années 90, de nombreux chercheurs travaillaient à l’entraînement et l’utilisation de réseaux de neurones profonds, avec, comme nous l’avons vu, quelques réussites notables telles que la reconnaissance de codes postaux. Néanmoins, pendant longtemps, le deep learning était jugé comme trop coûteux pour des résultats qui n’étaient pas aussi bons que des méthodes plus traditionnelles.

Ce paradigme a changé vers la fin des années 90 et au début des années 2000 notamment par le biais de chercheurs comme Geoffrey Hinton ou Yann LeCun. Si les avancées successives de nombreuses années de recherches ont permis au deep learning son succès actuel, on peut, pour simplifier, imputer cet essor à trois facteurs : le pré-entraînement, les données et la puissance de calcul.

Pourquoi ça marche ?

Le pré-entraînement, c’est l’idée que l’on va entraîner un réseau – ou même seulement une partie de ce réseau – sur une tâche et/ou des données différentes de l’utilisation finale. Ceci a permis de développer les premiers réseaux de neurones profonds capables de battre les méthodes à l’état de l’art sur de nombreuses tâches (notamment de vision). De nos jours, le pré-entraînement est fréquemment utilisé pour réduire le temps nécessaire à l’apprentissage.

On utilise ainsi un réseau pré-entraîné sur un très grand nombre de données qui est ensuite spécialisé sur une tâche précise avec de nouvelles données. En effet, il est plus simple et plus rapide pour un réseau d’apprendre à reconnaître une hyène lorsqu’il sait déjà reconnaître des chiens et des chats que de commencer à 0. On parie ainsi sur la capacité des réseaux de neurones profonds à extraire des caractéristiques générales depuis leurs données.

De nos jours, ce pré-apprentissage est généralement effectué sur de très grandes bases de données. On peut par exemple citer ImageNet, une immense base de données d’images qui sert aux pré-entraînement de nombreux réseaux pour des tâches liées à la vision. L’accès à ces grandes bases de données est donc un facteur essentiel à l’avènement d’un Deep Learning aussi performant. Pour généraliser efficacement, ces réseaux ont besoin d’une très grosse masse de données. Avec l’essor d’internet, des quantités de données qui n’étaient jusqu’alors pas envisageables ont été disponibles et ont permis d’entraîner des réseaux toujours plus gros.

Une dernière avancée importante vient des puissances de calcul. Ces dernières années ont vu le développement de cartes graphiques de plus en plus performantes et de plus en plus accessibles. Or, les processeurs graphiques sont très bien adaptés aux calculs effectués par les réseaux de neurones profonds. Ceci a permis d’accélérer grandement l’entraînement et de mettre cette technique à disposition de bien plus de monde.

Les principales applications du Deep Learning

Aujourd’hui, le deep learning est donc massivement utilisé en IA pour les raisons que nous venons d’évoquer. Mais cela s’explique également par la grande diversité de domaines d’application sur lesquels le Deep Learning peut être utilisé.

La vision

Le premier qui vient en tête est sans doute la vision. C’est en effet un des premiers domaines où le deep learning a permis de dépasser de manière significative les performances des méthodes à l’état de l’art. Et qui, de part ses cas d’application variés et très parlant, a permis de populariser aujourd’hui le deep learning.

On peut essentiellement distinguer 4 tâches qui concernent la vision : la classification, la détection, la segmentation et la reconstruction. Comme son nom l’indique, le but de la classification est de classer des images (2D, 3D ou même vidéo) dans des catégories. Ce sont nos exemples précédents de reconnaissance d’animaux.

Dans le cas de la détection, on veut trouver la position d’un objet (au sens large) dans une image ou une vidéo. C’est par exemple le cas lorsque l’on veut détecter des visages ou des personnes. Pour ce qui est de la segmentation, on veut aller encore plus loin en trouvant exactement quelle partie de l’image correspond à ce qu’on recherche. Par exemple, là où dans la détection on cherche à dessiner une boîte autour de ce qu’on recherche, dans le cas de la segmentation on cherche très précisément la silhouette de l’objet. C’est une tâche très courante dans le domaine médical.

Enfin, la reconstruction consiste à déduire d’une (ou plusieurs) images 2D la représentation en 3 dimensions d’un objet. Ceci peut notamment être utilisé pour estimer le volume d’un objet pris en photo.

Le langage

Outre la vision, le domaine du langage (ou plus généralement du TAL pour Traitement Automatique du Langage ou NLP en anglais) est une discipline pour laquelle le deep learning produit en ce moment-même de très grandes avancées.

De la même manière que les réseaux convolutionnels ont permis de dépasser l’état de l’art en vision par ordinateur, du côté du TAL ce sont ce qu’on appelle les transformers qui ont permis un bond des performances.

Les plus gros modèles utilisés aujourd’hui en deep learning le sont pour le traitement du langage, visant des applications variées comme la traduction automatique, la génération de texte ou la compréhension de la langue.

L’analyse prédictive

Enfin, le deep learning est aussi largement utilisé en analyse prédictive. En effet, puisqu’on entraîne le réseau à extraire lui-même les caractéristiques pertinentes de données brutes, le deep learning est très bien adapté pour réunir des données de natures très différentes et effectuer des prédictions complexes.

L’analyse prédictive se prête à de nombreux domaines différents (le commerce, la santé, l’énergie) et sous des modalités très variées. Et s’il est nécessaire d’être prudent des conclusions que l’on peut parfois tirer des capacités prédictives de ces modèles ainsi que des applications potentiellement peu éthiques, le deep learning ouvre tout de même de vastes possibilités en terme d’analyse prédictive.

Vous le comprenez donc, les applications du Deep Learning sont très larges et variés, ce qui explique en partie l’engouement des experts de l’IA.

Avantages

Mais il existe d’autres raisons qui expliquent pourquoi le Deep Learning a le vent en poupe.

Pour mieux comprendre quels sont les avantages du Deep Learning, il est nécessaire de comparer ces méthodes récentes aux méthodes plus classiques de machine learning.

Nous pouvons ainsi identifier plusieurs avantages : une automatisation poussée, une plus grande capacité de traitement de données et de très bonnes performances.

Extraction de features automatisée

Si vous vous souvenez bien de l’épisode précédent, nous vous avions parlé d’extraction de features, ou caractéristiques. Il s’agit d’un élément très important pour l’apprentissage, qui se basera en grande partie sur ces dernières.

Avec les méthodes traditionnelles de Machine Learning, l’extraction de features se faisait manuellement par un data scientist en utilisant différentes techniques, appelées feature extractors (extracteurs de caractéristiques) qu’il fallait donc paramétrer. Cette étape était aussi technique que nécessaire pour pouvoir lancer un apprentissage de qualité.

Avec le deep learning, cette étape n’est plus nécessaire.Les réseaux de neurones profonds sont constitués de plusieurs couches qui forcent le modèle à “simplifier” l’information et à la rendre plus abstraite. Ceci implique que le réseau extrait lui-même les caractéristiques pertinentes. Puisque les caractéristiques ne sont plus extraites par un humain, elles ne sont compréhensibles que par l’algorithme. Mais cela veut aussi dire qu’elles sont plus adaptées puisqu’elles sont apprises selon les besoins du modèle. Pour faire simple, le Deep Learning apprend seul à définir les règles lui permettant de réaliser une tâche donnée.

Traitement de très grands volumes de données déstructurées

Un autre avantage du Deep Learning réside dans sa capacité à traiter de grands volumes de données non-structurées.

Comme nous vous l’expliquions précédemment, pour utiliser du Machine Learning, nous avons besoin de données très bien structurées et contrôlées. Ce travail de structuration peut s’avérer long et rébarbatif. Bonne nouvelle, le Deep Learning s’en affranchit en bonne partie puisque, comme nous venons de le voir, le système va identifier seul les règles et caractéristiques importantes.

Il faut ajouter à cela l’impressionnant volume de données que le Deep Learning peut traiter. Les méthodes de Deep Learning tirent d’ailleurs leurs performances de ces grands volumes. Pour faire simple : plus il y a de données, mieux c’est.

Un algorithme de Deep Learning sera capable de traiter des millions de données. Ce n’est donc pas une coïncidence si l’avènement du Deep Learning concorde avec celle du Big Data.

Performances

Troisième avantage, qui n’est pas des moindres, le gain de performances. Eh oui, on pouvait s’en douter. En identifiant les meilleures features sur d’énormes volumes de données, le Deep Learning supplante logiquement les algorithmes de Machine Learning classiques et donc en partie l’humain.

Un constat devenu réalité dès 2012 avec la victoire d’un réseau de neurones au Visual Recognition Challenge.

En effet, un modèle de Deep Learning voit et apprend sur une base de données beaucoup plus grande mais aussi bien mieux caractérisée. Par analogie, un humain sera bien plus calé sur un sujet s’il lit 100 livres extrêmement détaillés plutôt que 2 moins bien sourcés.

Néanmoins, et nous en parlerons plus en détail juste après, ces performances viennent avec leur lot de désagréments puisque le Deep Learning demande plus de ressources (données, puissance de calcul). Il est donc important de calculer le rapport performance / besoin en ressources.

Quoiqu’il en soit, ce gain de performances va de paire avec le boom de l’IA que nous connaissons depuis le début des années 2010. Depuis, les réseaux de neurones profonds n’ont cessé de connaître des avancées, des améliorations mais ils ont aussi vu leurs domaines d’application s’élargir.

Dans quels cas utiliser le Deep Learning ?

Le Deep Learning regorge donc d’avantages que nous venons d’expliciter. Or, vous le savez aussi, les performances du Deep Learning trouvent leur source dans de grands ensembles de données. Cela signifie donc que le Deep Learning ne sera donc pas adapté à toutes les tâches. Mais alors, dans quel cas l’utiliser ?

Il semblerait qu’en présence de données en quantité suffisante, toutes les tâches accomplies grâce au Machine Learning puissent être traitées avec du Deep Learning. Les deux méthodes ne sont donc pas forcément en opposition.

Simplement, pour chaque tâche il convient de se demander quelle méthode semble la plus adaptée. En l’occurrence, le choix s’avère plus facile à faire quand nous connaissons les avantages du Deep Learning.

Il faudra ainsi se tourner vers le Deep Learning lorsque l’apprentissage doit se faire sur des grands jeux de données variées, difficilement explicables ou que nous avons du mal à caractériser simplement.

Le Deep Learning s’avère particulièrement pertinent pour les tâches liées au NLP comme la traduction automatique. Il en va de même pour la reconnaissance vocale permettant de contrôler certains appareils.
Le Deep Learning est également très efficace pour les tâches dites génératives, comme la génération de texte, la génération d’images, la génération de molécules. Toutes ces tâches ne sauraient être traitées aussi facilement avec du Machine Learning plus classique.
De la même façon, extraire une information sémantique précise est une tâche complexe sur laquelle le Machine Learning classique se révèle peu efficace.
Enfin, le Deep Learning s’avère très intéressant pour des tâches de détection, de classification et de segmentation sur des images. L’analyse de comportements humains, la conduite autonome de véhicule ou encore la reconnaissance d’émotions deviennent accessibles grâce aux nouvelles techniques de Deep Learning.
En somme, moins les données et l’environnement sont contrôlés et explicables grâce à des règles, plus le recours au Deep Learning sera légitime.

Inconvénients

Toutefois, le deep learning ne présente bien sûr pas que des avantages, et ce n’est pas non plus une méthode qui se substitue à toutes les autres. Nous allons nous intéresser ici aux désavantages techniques liés au deep learning plutôt qu’aux questionnements éthiques liés à ses applications, ceux-ci étant déjà abordés dans l’épisode 2 d’IA Cognito.

Une boîte noire

Il est fréquent d’entendre dire que le deep learning ou les réseaux de neurones plus généralement sont une boîte noire. Ce que l’on veut dire par là c’est qu’on ne comprend pas ce qu’il s’y passe. On fournit des entrées au réseau, par exemple une image, et le réseau prédit quelque chose mais on ne comprend pas ce qui l’a amené à prendre cette décision. Si c’est un peu gênant lorsque le réseau se trompe sur l’animal présent dans une image, cela peut vite devenir problématique lorsqu’une intelligence artificielle conduit votre voiture. C’est pourquoi ce sujet est important à aborder.

D’un point de vue technique, il est vrai que les réseaux de neurones sont des boîtes noires. Si le fonctionnement d’un neurone seul est très simple à comprendre, l’intrication de millions d’entre eux rend la compréhension du processus de décision extrêmement complexe. Si un réseau se trompe, il est très difficile de trouver pourquoi il s’est trompé et donc comment empêcher ça dans le futur.

Néanmoins, parce que c’est une problématique technique très importante, ce sujet est bien abordé par la communauté. De nombreux articles scientifiques tentent de fournir des méthodes permettant d’améliorer l’explicabilité des réseaux de neurones. Certaines sont des outils utilisés pour essayer de comprendre le fonctionnement et le raisonnement d’un réseau déjà entraîné. D’autres sont intégrées dès l’entraînement du réseau, dans son architecture, dans l’idée de créer un réseau dont l’explicabilité fait partie du fonctionnement.

Un entraînement énergivore

Autre inconvénient qui, comme expliqué précédemment, a longtemps empêché leur développement : la puissance de calcul nécessaire à l’entraînement des réseaux. On vous en a parlé plus tôt : entraîner un réseau de neurones profond coûte cher. Or les réseaux sont de plus en plus profonds.

Ceci pose des problèmes bien plus importants que le “simple” fait qu’un entraînement prend du temps. Pour commencer, il y a évidemment un enjeu économique important. Pour pouvoir réaliser ces entraînements en des temps raisonnables, il faut posséder des machines puissantes avec des cartes graphiques dernière génération. Ceci coûte cher et limite donc l’accès à cette technologie. Ainsi, il est plus simple pour une grosse société comme Google ou Facebook de développer du deep learning que des laboratoires publics. Ces derniers n’auront en effet pas forcément les moyens de s’équiper de manière appropriée.

Il existe des services en ligne permettant de louer des machines pour l’apprentissage de réseaux de neurones tels qu’AWS. Si cela permet d’éviter un investissement important, en contrepartie cela crée une dépendance à des entreprises privées (Amazon dans le cas de AWS).

Il y a aussi un enjeu écologique conséquent. Nous l’avions abordé dans notre podcast sur l’IA et l’éthique mais l’entraînement complet d’un réseau BERT (un modèle utilisé en NLP) a le même impact environnemental en termes d’émission de CO2 qu’un aller retour New York – San Francisco en avion. Il est donc nécessaire de s’interroger sur la nécessité d’utiliser du deep learning à tout va.

Une grande quantité de données

Enfin, et ceci a aussi été abordé avant, les réseaux de neurones profonds ont besoin de très grosses quantités de données. Surtout, la quantité seule n’est pas suffisante : les données doivent présenter une variabilité capable de refléter le réel si l’on souhaite que le réseau puisse suffisamment généraliser. Satisfaire ces deux critères peut parfois rendre l’utilisation du deep learning impossible pour des organisations qui ne sont pas Google, Amazon ou Facebook.

De plus, pour utiliser de l’apprentissage supervisé, ces données doivent être annotées. C’est-à-dire qu’il faut les qualifier en rajoutant en plus de l’information utilisable par l’algorithme. Cette tâche majoritairement manuelle est longue, coûteuse et peu gratifiante. Ce besoin en données annotées a mené à l’utilisation de plateformes de crowdsourcing qui engagent des ouvriers pour faire ce travail d’annotation. Ces derniers, indépendants, sont bien souvent mal payés (à la tâche) et sans protection sociale.

Cet inconvénient va néanmoins en s’améliorant avec le développement de techniques tels que le few-shot learning qui permet d’effectuer un apprentissage sur des bases de données de petite voire très petite taille.

Comme vous avez pu le voir, le Deep Learning a donc ses avantages mais ils viennent également avec leur lot d’inconvénients. Il convient donc de peser le pour et le contre avant de définir la méthode d’apprentissage la plus pertinente pour résoudre sa problématique.

Validez les connaissances acquises avec notre quizz !

LANCER LE QUIZZ
Mathieu Poissard
No Comments

Post a Comment

Neovision © 2021