Deep learning, une brève plongée en apprentissage profond, par Peppino Terpolilli*

L’apprentissage profond, en anglais deep learning, est au cœur des avancées techniques qui justifient la présence si forte de l’intelligence artificielle dans l’actualité. En arrière-plan de décennies d’avancées scientifiques, l’indépassable question du progrès.
*Peppino Terpolilli est mathématicien et ancien chercheur dans le secteur de l’énergie.


Les performances en reconnaissance d’images ou en déchiffrement d’écriture ont fait un bond considérable depuis le début de la décennie, et cela rend aujourd’hui possibles ou en passe de l’être des applications telles que la conduite autonome, le dépistage de cancers, le profilage commercial et publicitaire fin ou encore la victoire de la machine sur l’humain au jeu de go. Cependant, les limites de ces techniques sont aussi soulignées par certains spécialistes1. Deep learning ne serait-il qu’un mot à la mode porteur de la propagande des informaticiens de la Silicon Valley ? Un autre sujet d’inquiétude est la problématique de destruction d’emplois liée à l’introduction de telles techniques dans les entreprises. Un dossier récent de la revue Options2 de l’UGICT-CGT a bien posé ces questions, en particulier à travers des exemples réels.

Qu’est-ce que le deep learning ?
Dès leur construction à partir des années 1940, les ordinateurs ont été utilisés pour résoudre des problèmes qui dépassaient les capacités humaines : résoudre des équations de la physique – d’abord en mécanique des fluides – ou de grands problèmes d’optimisation linéaire, puis non linéaire, pour la gestion, l’économie ou le raffinage pétrolier. Et les programmes de simulation du climat, un exemple plus actuel, permettent aux spécialistes de prévoir l’augmentation des températures terrestres en fonction des émissions de gaz à effet de serre. En forçant un peu le trait, on pourrait dire que la résolution d’équations par ordinateur revient simplement à donner à la machine des règles simples à exécuter. Les mathématiques et l’informatique permettent de trouver une représentation numérique des données. Des langages informatiques efficaces – comme le Fortran ou, plus récemment, le langage C – permettent de traduire les lois physiques dans ces représentations. La puissance calculatoire de la machine fait le reste.
Mais pour des tâches difficiles, telles que reconnaître sans trop d’erreurs une voiture ou un chat sur n’importe quelle image – avec l’immense variété des types, angles de vue ou luminosités –, il est impossible de donner a priori à l’ordinateur des règles suffisantes. Pour ces tâches, le cerveau de l’enfant bat largement l’ordinateur! Tout au moins jusqu’à récemment. L’ambition de créer des machines pouvant raisonner comme les humains remonte aux débuts de l’informatique, et on a très tôt parlé d’intelligence artificielle, IA. Cet objectif s’est maintenu avec des hauts et des bas au long des décennies, et ses tenants se sont divisés en deux courants de pensée : l’un a conduit aux systèmes à base de connaissances manipulant des données symboliques ; l’autre a conduit aux modèles connexionnistes, dont relèvent les programmes de deep learning.

Connexionnisme
Dès les années 1950, des informaticiens se sont inspirés de la structure du cerveau pour imaginer des architectures connexionnistes : à la base, une image informatique du neurone, qui reçoit de l’information et peut la propager. En connectant des neurones numériques, on devait pouvoir construire des architectures distribuées capables de résoudre des problèmes complexes. Une étape significative de ce programme a été réalisée par Frank Rosenblatt en 1957 avec son fameux perceptron (neurone numérique). En combinant plusieurs perceptrons, il a obtenu un programme qui pouvait effectuer des calculs sur les valeurs d’entrée. Une idée clé de Rosenblatt a été d’associer des poids à toutes les connections entre perceptrons, ce qui lui permettait de mieux approximer le résultat cherché. Le système connaissait des limites, non dépassées avant l’introduction au début des années 1980 des réseaux de neurones, qui rassemblent – dans une architecture inspirée par la géométrie du cerveau – des couches de neurones numériques. En entrée, une couche représentant les données et, en sortie, une couche répondant au problème posé ; entre les deux, des couches intermédiaires dites couches cachées. Chaque neurone est connecté à d’autres neurones de la couche précédente, avec un poids et une valeur seuil associés à chaque connexion. Chaque neurone reçoit la somme des valeurs numériques des neurones de la couche précédente auxquels il est connecté, multipliée par les poids de connexion. Cette somme est transmise aux neurones connectés de la couche suivante si la somme est supérieure à la valeur seuil, sinon la transmission sera nulle. Les poids de connexion et valeurs seuils sont les paramètres du réseau de neurones. À chaque choix de ces paramètres correspond une fonction d’ensemble ayant pour variable l’entrée du réseau et pour valeur la couche de sortie. Un théorème d’approximation universelle, démontré par George Cybenko en 1989 et amélioré par Kurt Hornik en 1991, assure sous certaines conditions qu’un réseau de neurones avec une seule couche cachée peut approcher toute fonction régulière, par exemple continue, ayant pour variable l’entrée du réseau et pour valeur la sortie du réseau. Ce résultat, s’il n’est pas constructif (s’il ne donne pas de moyen pour construire l’approximation, c’est-à-dire choisir les bons paramètres), établit quand même le potentiel de ces réseaux de neurones.

Apprentissage
Dans les situations où n’existent pas de simulations possibles avec des modèles, l’IA permet ainsi d’implémenter des stratégies d’apprentissage par l’exemple, à la manière dont un enfant apprend à reconnaître un chat : en regardant des chats, réels ou en image. Pour définir un réseau de neurones, on doit choisir une architecture, autrement dit le nombre de couches cachées, le nombre de neurones de chaque couche puis les connections entre couches, et les paramètres de poids et de seuil. Et pour rendre effectif le choix des paramètres de poids et de seuil, l’idée clé a été d’avoir recours à l’apprentissage à l’aide de données. Un exemple de cette démarche est donné ci-contre. Après quelques succès retentissants à la fin des années 1980, les réseaux de neurones sont tombés en désuétude à cause de difficultés qui seront mieux comprises dans les décennies suivantes.

Deep learning
La fin des années 1990 puis la deuxième décennie 2000 voient une renaissance des réseaux de neurones, et ce grâce d’abord aux progrès des puces informatiques, en particulier les GPU3 et plus récemment les accélérateurs de calcul spécifiques développés avec des moyens financiers très importants par les GAFA. Il faut dire que le développement du Web a mis à disposition de ces derniers une mine de données extraordinaire, indispensable pour constituer de grands échantillons d’apprentissage, et qu’ils ont investi très fortement la recherche sur le deep learning à partir des avancées réalisées par des chercheurs comme Yann Le Cun, Yoshua Bengio ou Geoffrey Hinton. Également cruciaux, les progrès au niveau logiciel. On développe désormais des réseaux profonds avec plusieurs dizaines de couches cachées, qui, appuyés sur de grands échantillons d’apprentissage et de puissantes capacités de calcul dédiées, parviennent à un apprentissage enfin efficace, même avec un nombre de paramètres à calculer qui devient énorme, de l’ordre du million. Et ces capacités nouvelles commencent à rendre possibles des avancées majeures pour la reconnaissance de textes, la classification de photos et vidéos, l’analyse d’imagerie médicale pour la détection précoce de différents cancers.
Parmi les architectures les plus efficaces, en particulier pour la reconnaissance d’image, les réseaux profonds convolutifs, qui implémentent des techniques multiéchelles permettant la capture des caractéristiques importantes des données analysées. Yann Le Cun, responsable deep learning de Facebook et professeur au Collège de France en 2016, les a introduits en fin des années 1990. La Chine fait également partie du paysage de l’IA. Huawei a douze centres de recherche sur le sujet, dont un en France. Les Chinois ont investi plusieurs dizaines de milliards pour développer leurs propres puces informatiques afin de maîtriser toute la chaîne hardware et software, et sont pour l’heure, avec les États- Unis, les seuls à le faire. L’administration états-unienne, qui ne veut pas que la domination américaine dans le numérique soit mise en cause, voit cela d’un mauvais œil, et c’est sans doute un des éléments qui jouent dans les tensions économiques entre les deux pays.

L’apprentissage du progrès
L’apprentissage profond est un domaine de recherche très stimulant, et de nombreuses équipes y travaillent en France. Cependant, les plus grands spécialistes se trouvent dans les équipes des GAFA et d’IBM, à la notable exception de Yoshua Bengio, qui est resté à l’université UQUAM de Montréal, où il a formé une équipe nombreuse et de tout premier plan. Il mentionnait dans un article récent combien avait été important le soutien du gouvernement canadien pour financer les travaux dans ce domaine lors du trou noir des années 1990 et début 2000 qui avait laissé sans perspective de nombreux informaticiens. Une remarque qui souligne l’importance d’un financement de la recherche préservé des effets de mode.
En France, les ambitions affichées dans le rapport Villani, qui sont insuffisantes, resteront lettre morte si les moyens ne suivent pas. Et des actualités comme le déploiement d’IBM Watson au Crédit mutuel, avec les menaces évidentes créées sur l’emploi autant que les risques d’ubérisation associées à l’introduction d’un acteur tiers au coeur de la relation entre la banque mutualiste et ses clients, nous montrent une fois encore que l’appropriation sociale du progrès des sciences et des techniques reste une bataille permanente à mener par les forces progressistes. Car si les avancées de l’IA ces dernières années sont bien réelles, l’écho médiatique donné aux déclarations de certains prophètes de la Silicon Valley ne fait souvent que brouiller notre perception des enjeux. Et empêche nos sociétés d’interroger vraiment les usages de ces technologies.

  1. Jean-Paul Delahaye, « Intelligences artificielles: un apprentissage pas si profond », in Pour la science, no 488, juin 2018.
  2. « Où va l’intelligence artificielle? », in Options, no 641, novembre 2018.
  3. GPU pour graphic processor units, processeurs spécialisés au départ pour des applications graphiques et qui se sont avérés très utiles pour accélérer les calculs informatiques.

 

chat

Appeler un chat un chat, un problème d’optimisation
Considérons un problème de classification : reconnaître parmi de nombreuses images celles qui représentent un chat. L’approche par réseau de neurones consistera à définir une architecture où en entrée on trouve une image pixellisée représentant des animaux, en sortie la reconnaissance d’un chat : l’image d’entrée représente-t-elle oui ou non un chat? Cette sortie sera en réalité un nombre entre 0 et 1 : si ce nombre est suffisamment proche de 1, on estime que l’on a reconnu un chat. Ensuite, on choisit un échantillon d’images préidentifiées, avec ou sans chat, qui va permettre l’apprentissage. À chaque présentation d’image au réseau de neurones, on calcule l’écart de sa sortie avec la vraie réponse. On définit alors une fonction coût qui dépend des paramètres du réseau et qui a pour valeur la somme des carrés des écarts pour l’ensemble des images de l’échantillon d’apprentissage. L’objectif sera alors de trouver des paramètres de poids et de seuil pour lesquels la fonction coût sera nulle, indiquant que les images intégrant un chat ont été identifiées correctement. Pour cela, on emploie des programmes d’optimisation, qui opèrent de manière itérative et modifient automatiquement les paramètres du réseau en suivant la direction opposée au gradient afin de faire tendre la fonction coût vers zéro. Un ingrédient important pour l’efficacité de ces programmes d’optimisation a été la rétropropagation des erreurs pour le calcul du gradient, suivant une technique inspirée de la théorie du contrôle. Et si le problème d’optimisation est de grande taille, on utilise la technique dite du gradient stochastique. Lorsque les paramètres qui sont solutions du problème d’optimisation ont été trouvés, l’efficacité du réseau de neurones se mesure à la capacité de prévision, c’est-à-dire à la reconnaissance des chats dans des images hors de l’échantillon d’apprentissage.


 

Réseaux profonds
Les solutions au problème d’optimisation permettant d’obtenir les paramètres d’un réseau de neurones – points critiques où la dérivée de la fonction coût, et donc le gradient, est nulle – sont souvent des minimas locaux. Avec des réseaux de neurones de petite dimension, les algorithmes sont souvent piégés dans des minimas locaux qui ne sont pas de bons minimums. Mais avec des réseaux profonds les exemples numériques montrent que les points critiques sont souvent des points selles qui ne piègent pas les algorithmes de gradient stochastique. De plus, les minimas locaux très nombreux sont de bonne qualité, avec des valeurs de la fonction coût très proches de l’optimum. Ainsi, avec les réseaux profonds, même si l’on n’est pas à l’optimum, les solutions trouvées sont de bonne qualité. Certains travaux théoriques ont mis en lumière une certaine ressemblance des fonctions coût avec les fonctions d’énergie qui apparaissent dans l’étude de verres de spin en physique.

Un commentaire

  1. Bonjour,

    Je comprends qu’un algorithme de type « deep learning » est mis au point par des techniciens du domaine adéquat grâce à un jeu énorme de données pour affiner ses paramètres de « réglage » et obtenir un taux d’efficacité approchant les 100% , avant de le mettre en service et notamment au service du grand public.

    Puisqu’il n’est pas parfait, l’algorithme mis en oeuvre dans la vraie vie tombe parfois sur des cas de figure soit indécidables, soit où il se trompe et fournit donc une réponse erronée.

    Je fais l’hypothèse qu’un algorithme de ce type mis en circulation n’est plus en apprentissage, agissant seulement en local pour atteindre un temps de réponse minimal, équivalent à celui de l’intelligence humaine: ma question est donc de savoir comment les cas infructueux sont remontés aux techniciens pour qu’ils puissent affiner le paramétrage de leur algorithme et comment ils sont en capacité de diffuser la nouvelle version aux utilisateurs de leur algorithme.

    On peut imaginer que nombre d’algorithmes pour lesquels le risque est inexistant ou d’un niveau extrêmement faible ne sont pas mis à jour ou du moins la mise à jour n’est fournie qu’aux nouveaux utilisateurs.

    D’un autre côté -mais ici selon moi il ne s’agit pas d’un algorithme de type IA, quelle est en moyenne la quantité de données des algorithmes GPS?

    J'aime

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.