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
: 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 celuici 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.
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:
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.
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.
Comme l'équation d'un
demi-espace délimité par un hyperplan s'écrit
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 à
de la somme
...»
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]
,
,
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