[formule] L'apprentissage automatique

L'apprentissage est avant tout une opération de programmation, cachée certes, dans le cas qui nous interesse, mais une opération de programmation.
Dans le cas d'un apprenti de l'espèce Homo-Sapiens, cela consiste à fournir à un certain nombre de capteurs («les 5 sens») une démonstration des différentes étapes d'un processus (préparation du pain, permanentage d'une coiffure, vidange...) et en corriger la répétition par des signaux suffisamments clair (cris, coups, primes, retenues sur salaire...). À l'issue de cette étape, un programme, cablé sous forme de connexions synapsiques nouvelles ou renforcées dans le cortex cérébral de l'apprenti, lui permet d'effectuer correctement l'opération souhaitée.
La programmation explicite.
Le degré zéro de l'apprentissage, c'est la programmation explicite. Par exemple, l'ingénieur qui à programmé le microprocesseur de votre machine à laver pour qu'il réagisse au contact de votre doigt sur un bouton en une longue séquence du type : envoyer du courant sur l'electrode de fermeture du verrou du hublot, attendre le contact du témoin de fermeture, activer l'electroaimant de la valve d'entrée d'eau... eh bien en quelque sorte cet ingénieur à appris à votre machine à laver du linge.
Il est possible que le même type de microprocesseur gère votre chaîne HiFi, ou l'antibloquage des freins de votre voiture.
Noter que ce type d'apprentissage suppose la présence d'une mémoire (dite de programme) modifiable «à l'atelier» mais pas vraiment sur place. Un dispositif sans mémoire (comme une ancienne machine à laver à «programmateur mécanique», genre celle de votre grand-mère, qui fait «tictac» pendant la lessive, ou dans le domaine biologique la pluspart des insectes) ne sont pas programmables, ils sont construit pour une tâche donnée un point c'est tout. Il est absolument impossible de dresser une puce, simplement car une puce n'a pas de mémoire !
L'adaptation, une forme d'apprentissage
Dans les exemples précédents, on ne pouvait pas parler d'apprentissage [formule] : Quand votre BMW est «rappelée par le constructeur pour un problème d'ABS», que vous «téléchargez une mise à jour de votre téléphone portable», que vous «flashez le BIOS de votre PC» ou que vous «installez un driver Windows pour la carte SuperGraphiX7000BlastIII» on ne peut pas vraiment dire que ça se fait tout seul...
L'étape suivante, c'est que le microprocesseur exécute un programme d'adaptation (programmé lui de façon classique par, encore lui, un ingénieur, mais celui­ci est généralement plus gradé, donc moins payé que le premier) qui va modifier le programme principal (en général, seulement ses paramètres, mais pas nécessairement, voir plus bas) en fonction des données ou de mesures lues de façon à l'adapter à un objectif visé.
La boucle de contrôle adaptatif est composée d'un modèle paramétrique du «monde» géré par l'appareil (ce monde peut être très petit, pour une machine à laver, c'est quelques points dans un volume de quelques mètres cubes), d'un ensemble de capteurs (pression, température, vitesse de rotation) et d'un ensemble d'actionneurs (electrovalves, moteurs...) reliés eux au monde «réel».
Le programme d'adaptation, compare des prédictions obtenues par le modèle en fonction des commandes envoyées aux actionneurs avec les niveaux fournis par les capteurs, détecte une différence, évalue une erreur de modélisation (de paramètres) qui est ensuite introduite dans le modèle... et on recommence.
[formule]La boucle de contrôle adaptatif.
Ce type de contrôleur est pour l'instant plutôt réservé à des applications «difficiles» demandant une réaction rapide, et pour lesquels l'intervention manuelle n'est pas souhaitable ou possible. À ma connaissance, c'est utilisé pour la régulation des réacteurs nucléaires (car on ne connaît pas forcement toutes les conditions de fonctionnement possibles, et l'expérimentation n'est pas conseillées... voir ce qui est arrivé, il y a quelques années en Ukraine, suite à un essai malheureux!), le pilotage de missiles antiaériens et de véhicules spatiaux dans leurs rentrée atmosphérique. C'est aussi beaucoup utilisé par les usines minéralurgiques (pour adapter le traitement aux variations de la qualité du minerai dans le gisement), par certains constructeurs automobiles pour adapter le véhicule au conducteur (et le réveiller si l'on pense qu'il s'endort) et il se peut que certaines machines à laver séchantes «haut de gamme» adaptent leurs opérations en fonction des réactions inertielles du tambour avant et après introduction de l'eau de lavage qui serait lié au type de linge introduit.
pour en savoir plus : petites considération sur le vieillissement des systèmes de contrôle adaptatif [note] , références [note] .
l'apprentissage supervisé/non supervisé
Les problèmes résolubles par une boucle de controle adaptatif sont limités à des objectifs (la flèche à droite sur le schéma) simples, quoique parfois critiques, comme «obtenir une température donnée dans le réacteur tout en restant du côté décroissant du pic d'absorption des neutrons en fonction de la température», «obtenir un sortie des concasseurs une granulométrie X pour la bouillie de minerai».
De nombreux problèmes n'ont pas des objectifs si simples, par exemple si vous apprenez votre voix au programme ViaVoice de votre ordinateur, ou à votre téléphone portable (au resto, dictez négligeamment le numéro de votre correspondant à votre portable, lancez lui quelques répliques lapidaires et raccrochez en repliant l'inutile clavier d'une chiquenaude... succés assuré !)
Derrière ces très importantes fonctionnalités, il y a généralement une opération de classification en phonèmes d'un ensemble de caractéristiques des signaux sonores que vous produisez. Pour un son donné, l'ensemble des valeurs de ces caractéristiques représentent un point dans un espace avec un nombre de dimensions élevées. Les phonèmes forment une partition de cet espace, et toute la difficulté est que les frontières entre les régions dépendent du locuteur.
Dans certains cas, le nombre de régions n'est pas connu a priori (par exemple, on ne sait pas combien il y a de types de comportement électoraux, mais on peut quand même essayer de définir des classes de comportement proches pour extrapoler de précises prédictions à partir d'un sondage sur une faible population...)
L'apprentissage des frontières est un processus lourd. Dans le premier exemple, (l'apprentissage de votre voix) vous avez du lire devant votre micro une litanie roborative de lettres administratives type, de suites de nombres aléatoires etc. Dans ce cas, on parle d'apprentissage supervisé, car le programme dispose pour chaque mesure de l'ensemble d'apprentissage (tous les phonèmes que vous avez prononcés) de la «vérité» c'est-à-dire le texte affiché à l'écran et que vous lisiez.
Dans le second cas, on parle d'apprentissage non supervisé, et on continue l'apprentissage tant que les résultats ne sont pas satisfaisant. (contrairement à ce que pourrait laisser croîre mon exemple, parfois cette technique marche très bien. Les fonds de cartes aéronautiques de l'IGN sont obtenus par classification non supervisée d'images obtenues par les satellites LANDSAT et elles sont très satisfaisantes.)
Plus de détails sur la classification automatique [note]
Réseaux de neurones, logique floue, algorithmes génétiques
Bon je n'ai pas donné de détails sur la manière dont un modèle ou une classification est obtenu ou adapté aux mesures, voici donc un petit lexiques des techniques à la mode pour briller dans les salons:
[formule] Dans les classifications, on peut au lieu de définir des frontières tranchées, dire qu'au voisinage de la frontière entre deux classes la probabilité d'appartenir à la région d'un côté est de X% et de (100-X)% pour celle d'appartenir à l'autre région.
[formule] Si les régions sont séparées par des plans («hyperplans» fait plus chic en dimension>3) et définies par des intersections d'unions de demi-espaces, on parlera alors de «logique floue», l'opérateur ET (dans «j'appartiens à l'ensemble X ET à l'ensemble Y») devient le produit des probabilités d'appartenir à chacun des ensembles X et Y.
[formule] Comme l'équation d'un demi-espace délimité par un hyperplan s'écrit [formule] des informaticiens n'ayant jamais parlé à un neurobiologistes (mais ayant entendu parler des couches du cortex visuel) ont eu l'idée géniale d'appeler «neurone» la fonction «seuil à [symbol 98] de la somme [symbol 83]...» de les brancher les uns aux autres en couches successives et d'adapter les paramètres à partir de la dernière couche en remontant (dites «rétropropagation du gradient» avec un air blasé, ça vous pose un homme!).
En fait, c'est un moyen assez inefficace d'effectuer la classification supervisée, mais c'est très amusant quand ça marche (et ceux qui font cela sont une espèce de encore plus gradée en encore moins bien payé que les ingénieurs cités ci-dessus et donc, 1° il faut bien les motiver avec autre chose que leur feuille de paye et 2° comme ça ne marche jamais à tout les coups, on aura de nouveau besoin d'eux la fois suivante...)
Pour en savoir plus: le mode d'emploi d'un système de neurones [note]
[formule], [formule], [formule] toute une série de techniques permettant de modifier non seulement les paramètres mais aussi le «code» du programme. Dans tous les cas, il s'agit de lancer pleins de petits programmes en parallèle et de sélectionner les meilleurs, de les perturber (dans l'ordre on dit «muter», «agiter», «agiter thermiquement») puis resélectionner les meilleurs, puis retouiller (mais un peu moins fort) etc. de temps en temps, on retouille plus fort (catastrophe écologique, recuit etc...)pour décoller les grumeaux, puis on baisse le feu. A la fin, on a un très bon algorithme au fond de la marmite. C'est très gai et en plus ça marche!.
attention: «recuit simulé» se dit «simulated anealing» en franglais, si vous traduisez par «simulated quenching» vous êtes définitivement catégorié «blaireau intégral» et ça va être très dur d'emballer cette charmante informaticienne rencontrée sur la plage... Enfin, plus sérieusement, cette méthode, quoique heuristique, est une bonne réponse à une classe de problèmes très difficiles (appelés «Non déterministes Polynomiaux» ou «NP» en court) qui avant cette invention étaient impossibles à résoudre en pratique.
Plus d'informations sur le recuit simulé [note] les filtrages particulaires [note] , les algorithmes génétiques [note]
return to Hubert M.J. Cantalloube homepage