Apprentissage profond et réseaux neuronaux
Les études de l’intelligence artificielle avec ses premières réalisations pratiques remontent à une cinquantaine d’années. Ce développement fut très irrégulier, avec des périodes d’enthousiasme suivies de longues marches dans le désert. L’intelligence artificielle (IA) se définit plus facilement que l’intelligence humaine. On y trouve un ensemble de techniques permettant à des machines d’accomplir des tâches et de résoudre des problèmes normalement réservés aux humains.
Dans les années 70, pour construire un système intelligent, on écrivait un programme à la main, en mettant en équation les recommandations d’un expert humain, comme on le fit pour les premières applications médicales. A la fin des années 80, plusieurs chercheurs introduisaient le concept d’apprentissage en faisant la simple remarque qu’un système intelligent peut améliorer ses performances avec l’expérience. Les progrès en neuroscience et en informatique permettaient d’envisager la mise en fonction de programmes d’apprentissage par ordinateur, comme la reconnaissance d’objets. Ceci évitait la tâche, presque impossible, d’écrire un programme rigide dont les instructions fonctionneraient dans toutes les situations.
Les réseaux neuronaux (“Neural Networks”) naissent alors des efforts de créer un système intelligent inspiré par la biologie. Il faudra cependant attendre encore une vingtaine d’années pour en saisir toutes les possibilités. Yann LeCun, pionnier dans le développement de l’IA, auteur d’une remarquable “leçon inaugurale” au collège de France en 2016, retient 2011-2012 comme date de départ du développement exponentiel des réseaux et de ses applications. Ce sont ces réseaux d’apprentissage qui animent les systèmes de toutes les grandes entreprises d’Internet.
Pour répondre à une forte demande d’initiation à l’IA, et permettre de comprendre les articles de presse,souvent de qualité contestable, les grandes universités américaines proposent des cours dans leur programme d’éducation continue. “Artificial Intelligence: An Introduction to Neural Networks and Deep Learning”est le titre du cours du professeur Ronjon Nag que j’ai suivi à l’université de Stanford. La situation de Stanford au centre de la Silicon Valley permet à l’université d’être très active avec les Google, Facebook, Apple, etc., et d’offrir un programme qui reflète bien les tendances actuelles.
L’IA est divisée en trois disciplines :
• le “symbolic processing”, basé sur un système de règles qui a besoin d’un expert,
• l’apprentissage machine (“machine learning”), basé sur les analyses statistiques,
• l’apprentissage profond (“deep learning”), basé sur les “Data”, qui domine et rassemble la majeure partie des activités IA, d’où sa place prépondérante dans l’enseignement.
Nous avons largement emprunté au cours du professeur Nag, et nous proposons d’examiner successivement :
• l’architecture et le fonctionnement des réseaux neuronaux, la clé de voûte de l’apprentissage profond,
• les développements actuels dans l’architecture de ces réseaux et certaines applications pratiques,
• l’avenir de IA.
Architecture et fonctionnement des réseaux neuronaux
Le concept de base de ces réseaux trouve sa source dans une imitation simplifiée du fonctionnement du cerveau. Le cerveau humain contient quelque 86 milliards de neurones. Le neurone est l’unité de base du cerveau, une cellule spécialisée pour transférer l’information aux cellules, muscles ou glandes. En théorie, l’apprentissage et la connaissance se situent aux jonctions synaptiques. Le neurone contient un récepteur d’information avec l’existence d’un seuil d’excitation. Si le nombre de neurones chez l’homme lui permet d’accomplir ce que l’on sait, d’autres animaux, comme l’escargot, avec 11 000 neurones, arrivent à se nourrir, communiquer, etc., et ce chiffre est très inférieur à la capacité des ordinateurs. Les personnes intéressées par l’IA avaient remarqué dans le passé que le cerveau humain distingue sans difficulté des objets, mais est limité dans sa capacité à traiter de longues opérations numériques. Pour l’ordinateur, c’est l’inverse. L’apprentissage des machines devra donc privilégier leur capacité à traiter du numérique.
Des neurones artificiels sont créés avec la capacité d’additionner les informations reçues, puis de les moduler avec une équation de courbe en S1 . Ces neurones sont organisés en un réseau avec un rang vertical de réception des données et un rang de sortie comportant le même nombre de neurones. Il y a des liaisons entre les neurones et, en général, la complexité du modèle oblige à avoir des rangs intermédiaires.
La figure 1 représente un réseau simple comportant 9 neurones répartis en trois rangs et trois colonnes. Le but est d’enseigner au réseau à reconnaître les données introduites dans la colonne de gauche. Les résultats attendus et connus sont dans la colonne de droite. Il faut que la machine, après un “apprentissage supervisé”, reconnaisse les données pour retrouver les bonnes réponses. Chaque neurone communique avec, dans notre cas, les trois neurones avals, ces derniers font un calcul pondéré des informations reçues en les modulant par l’intermédiaire de la fonction en S. L’apprentissage s’effectue de façon simple : on commence à utiliser des nombres au hasard pour pondérer la répartition des informations, un résultat est obtenu en sortie qui comporte des erreurs par rapport au résultat attendu. Un calcul d’erreurs est effectué par la méthode de rétropropagation, et tous les paramètres de chaque module sont ajustés de manière à rapprocher la sortie produite par le système de la sortie désirée. Le calcul matriciel permet d’effectuer rapidement ces opérations. Dans notre exemple, la valeur attribuée à chaque neurone du rang intermédiaire est le résultat du produit de la matrice des données multipliée par la matrice de la pondération. Lors du calcul de rétropropagation, il suffit d’utiliser l’inverse de la matrice du premier calcul. Un langage comme celui de Python (langage de programmation objet dit « Open Source » c’est-à-dire en logiciel libre, originellement développé pour le calcul numérique et aujourd’hui particulièrement efficace pour la construction des algorithmes d’apprentissage) permet d’effectuer ces opérations rapidement.
Il est évident que nous sommes partis d’un modèle simple. La reconnaissance d’images, de sons ou d’un large ensemble de données, nécessite des systèmes à multiple rangs et colonnes, et sans doute des architectures plus élaborées. C’est ce que nous nous proposons d’examiner maintenant.
Développements actuels dans l’architecture des réseaux neuronaux, et applications pratiques
Yann LeCun retient les années 2011-2012 comme départ de l’explosion de la recherche, du développement et des applications de l’apprentissage profond. Trois événements ont soudainement facilité le travail :
• le GPU (“Graphics Processing Unit”) devient disponible à des prix compétitifs,
• les expériences menées par Google et autres montrent que les réseaux neuronaux divisent par deux le taux d’erreurs pour la reconnaissance vocale,
• enfin la victoire éclatante de l’équipe de Toronto qui, en découvrant les réseaux convolutifs en 1989, montra la voie de la reconnaissance d’objets.
Une découverte passée importante dans le mécanisme de la vision chez les chats et le fonctionnement du cortex est réexaminée. En 1959, David Hubel et Torsten Wiesel avaient déjà découvert le processus de vision chez les chats et le fonctionnement du cortex. Ils révélaient notamment que certains neurones sont sensibles aux lignes verticales, d’autres aux lignes horizontales ou obliques. Hubel et Wiesel furent récompensés par le prix Nobel en 1981.
L’équipe de Toronto s’inspirait de cette découverte en simulant le cortex, et limitant le nombre de connexions des éléments à leurs voisins. Ce système, largement utilisé pour la lecture des chèques, fut abandonné à cause d’une mise en œuvre difficile avec les ordinateurs de l’époque. En plus l’ensemble des réseaux convolutifs, et les réseaux neuronaux plus généralement, furent délaissés entre 1997 et 2012.
Les réseaux convolutifs sont maintenant de retour et parmi les plus utilisés. Le principe est d’ajouter un filtre entre l’image en entrée (l’ordinateur ne voit qu’un tableau de pixels) et le classificateur, puis de recalculer les valeurs en sortie. Des coefficients de pondération, utilisés dans le filtre, sont d’abord des nombres au hasard, puis sont ajustés par des cycles d’apprentissage. La figure 2 donne un exemple de calcul. Différentes techniques permettent de réduire la dimension du modèle et d’éviter trop de précision dans le but de diminuer les coûts de calcul. Facebook utilise de tels réseaux pour son algorithme de reconnaissance automatique, Google pour sa recherche de photos, Amazon pour leur recommandation de produits, etc. Ces réseaux supposent toutefois que toutes les données d’entrée sont indépendantes, ce qui n’est pas toujours le cas, d’où la nécessité d’avoir d’autres outils.
Une nouvelle forme de réseaux, les réseaux récurrents (RNN ou “Recurrent Neural Networks”), sont utilisés pour résoudre les problèmes de temps et de chronologie. Normalement, nous comprenons les mots grâce au contexte passé. Les réseaux décrits précédemment ne peuvent pas prendre en compte le temps, car ils n’ont pas de mémoire. Les réseaux récurrents sont utiles pour résoudre des problèmes de traduction, de reconnaissance de parole, ou de traitement du langage. Ils sont capables de trouver le prochain mot dans une phrase avec l’aide des mots précédents.
Si les réseaux récurrents traitent les séquences à court terme, une variante permet de résoudre les problèmes de long terme. La technique est connue sous le nom de LSTM (“Long Short Term Memory Model”). Ces réseaux apprennent les relations entre les “data” dans le temps et comprennent une chaîne de modules répétitifs. Ces réseaux sont utilisés par Google pour les reconnaissances de voix sur les “smart phones”.
D’importantes ressources, tant en capital qu’en personnel, sont inversties actuellement dans l’ apprentissage profond, ce qui donne naissance à la création de modèles tous plus sophistiqués les uns que les autres. Les principaux sont les GAN (“Generative Adversarial Networks”) et les “Capsnet”.
Cette analyse succincte des différentes architectures de réseaux nous donne une idée de l’orientation que l’on doit prendre suivant le problème à traiter :
• Un simple problème d’accord de prêt pour une banque sera traité par un réseau classique ;
• Un traitement d’image fera appel à un réseau convolutif ;
• Une étude avec des variables séquentielles sensibles au temps(comme la parole, la traduction, l’étude de texte) utilisera des réseaux récurrents RNN ou LSTM.
L’avenir de l’IA
Depuis 2010, d’après François Chollet, un des leaders en IA chez Google, l’apprentissage profond a fait des progrès spectaculaires dans les domaines suivants, jusqu’à concurrencer les capacités humaines :
• Classement des images • Reconnaissance de voix
• Décodage de l’écriture
• Traduction de langues
• Conversion texte-voix améliorée
• Assistants numériques, comme “Google Now” et “Amazon Alexa”
• Pilotage automatique des voitures
• Ciblage publicitaire
• Moteurs de recherche améliorés
• Réponse aux questions en langage naturel
Le monde des chercheurs en apprentissage profond est partagé sur l’avenir et les orientations qui doivent être prises. Les pessimistes pensent que les réseaux neuronaux actuels ont besoin d’une nouvelle approche. En effet, quelques handicaps sont liés à l’algorithme utilisé, notamment :
• les relations causales ne peuvent pas être prises en compte ;
• les idées abstraites restent un défi car elles sont non mesurables ;
• l’apprentissage supervisé limite les champs d’application.
En effet tous les systèmes décrits précédemment sont à apprentissage supervisé. Il existe deux autres sortes d’apprentissage, celui par renforcement et celui non supervisé. Dans l’apprentissage par renforcement, la machine reçoit un signalsi elle a la réponse juste. C’est le domaine privilégié des jeux. L’apprentissage non supervisé est le mode principal utilisé par les humains. C’est ce que Yann LeCun appelle le sens commun. Différentes pistes sont à l’étude, dont celle de l’apprentissage prédictif, mais nous sommes encore très loin d’une solution viable.
Pourtant un jeune enfant apprend à parler par lui-même en observant le monde et en agissant dans un mélange de supervisé et non supervisé. De nombreux chercheurs travaillent sur une solution imitative. Les optimistes pensent pouvoir résoudre ce problème, mais un nouveau paradigme semble nécessaire. On peut imaginer de nouvelles cellules neuro-morphiques, de nouveaux systèmes de calcul, comme l’informatique quantique (“Quantum Computing”), des éléments bio-électroniques.
D’une manière plus générale, il existe un débat pour savoir si l’on doit travailler à partir du cerveau ou à partir du modèle des ordinateurs. Aux États-Unis, une initiative au nom de BRAIN (“Brain Research through Advancing Innovative Neurotechnology”) existe, ayant l’objectif de produire une image dynamique du cerveau qui doit afficher comment les neurones individuels et les systèmes neuronaux agissent dans le temps et l’espace. Ce travail est toutefois loin d’être complet.
François Chollet voit l’avenir plus simplement dans une évolution des modèles, bien qu’il reconnaisse que l’industrie est entrée dans une phase plus difficile. Il envisage que :
• Les modèles seront plus proches de ceux qu’utilisent les humains.
• Ils mélangeront des modules d’algorithmes permettant d’introduire une capacité d’abstraction. AlphaGo est un exemple pour les modèles à venir.
• Ces modèles se développeront automatiquement en utilisant une bibliothèque globale de sous-programmes.
• Cette bibliothèque globale, et les modèles associés de croissance, seront capables de donner une réponse de forme plus humaine.
• Ce modèle idéal, capable de s’auto-enrichir, pourrait être considéré comme une “intelligence artificielle générale”.
Si des modèles d’IA générale peuvent être construits, ils soulèveront de nombreuses questions. Une machine peut-elle être consciente ? Comment imposer des règles d’éthique ? Existe-t-il un danger comme dans les films de fiction (voir “2001, l’Odyssée de l’espace”), etc. ? Une réflexion éthique, epistémologique et sociétale s’impose. ■
1 La fonction sigmoïde (dite aussi courbe en s) est définie par la formule : f(x) = 1/(1+e-x)
Aucun commentaire
Vous devez être connecté pour laisser un commentaire. Connectez-vous.