Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

18/02/2017

Les nombres de couches

Vers 2012, il n'y a pas si longtemps, une méthode d'apprentissage dite "multi couches" ou "profonde" fut enfin considérée, preuves à l'appui, comme très efficace. Toute l'Intelligence artificielle sorti alors de son long hiver (30 ans) et se mit à exulter de joie: l'homme va être remplacé, enfin.

Entre temps, Marvin Minsky et Seymour Papert avaient en 1969 démontré les limites intrinsèques du perceptron ce qui avait drainé tout l'argent destiné aux neurones vers les approches symboliques, elles même ruinées avec l'effondrement du marché de la LISP machine en 1987. L'hiver de AI commençait. 

Evidemment, il s'agit en fait pour l'instant de reconnaître automatiquement les amis d'un utilisateur de facebook qui publie bêtement les photos de ses "soirées", même si cela sert aussi à conduire les voitures de Google. Yann Le Cun, éminent chercheur français, honneur des universités américaines dans lesquelles il a mené toute sa carrière, vient de s'y faire embaucher ciao (chief intelligence artificielle officer, pardon, aucune machine ne pourra jamais faire ça). Il nous explique tout cela depuis le collège de france. 

 https://www.college-de-france.fr/site/yann-lecun/course-2016-02-12-14h30.htm

D'abord, il s'agit de reconnaitre, tout est là et la reconnaissance des formes, d'abord une théorie de l'analyse des images, est la préoccupation première. Notons que cette reconnaissance, qui porte d'abord sur des champs de bits à 1 et à zéro (plus les couleurs), est aussi celle que l'on cherche à faire dans n'importe quel ensemble de données: les formes sont aussi des regroupements dans des résultats d'élections selon les catégories socio professionnelles par exemple. On distingue ainsi les régressions (sur les nombres) des classifications (sur les objets) mais cela revient au même: on veut reconnaitre et cela plus vite qu'en énumérant les fameuses bases de données de cas déjà résolus constituées par des professeurs humains. 

On en vient donc à la différence entre apprentissage supervisé et non supervisé.L'apprentissage non supervisé consiste à classifier la base d'entrée en en exploitant les différences présentes tout seul comme un grand. C'est évidemment l'avenir, mais dans un premier temps c'est plutôt difficile et il sembla dans un premier temps que cela ne servait pas à grande chose, l'apprentissage supervisé étant tout à fait suffisant.  

La supervision consiste ainsi à tenter d'établir une machine, un programme, une boite,  qui résout tout de suite par calcul une collection de cas déjà traités et qui peut AUSSI répondre à des questions portant sur les cas intermédiaires. Comme si dans l'ensemble des cas possibles, on avait trouvé l'équation d'une surface qui séparait exactement les différents regroupements d'objets similaires. Est ce une femme nue ? 

C'est la grande affirmation de Le Cun: il ne pourra pas y avoir d'intelligence, au moins au niveau d'un animal, sans apprentissage non supervisé. Et il se trouve qu'on en est très loin. Au passage, on considérera aussi l'apprentissage "par renforcement" qui se contente d'utiliser une récompense attribué de temps en temps. La rétro propagation ne fonctionne pas dans ce cas et ce type d'apprentissage est terriblement lent. Par contre, ça marche dans certains cas, en particulier dans les jeux et Deep Mind, qui joue au GO a été entrainé de cette manière. Quand la récompense est un click sur une pub, cela marche aussi et c'est mis en oeuvre dans les régies publicitaires: le nombre de récompenses devenant très grand. 

Mais revenons au problème. 

Quelques précisions d'abord. Il n'y a de classification que sur des objets déjà identifiés. La chaine de traitement est donc formée de 2 modules au moins: un extracteur de caractéristiques et un classifieur. Ce principe est totalement général: on n'élabore rien sur du sable, ou de l'eau. Il faut d'abord faire des tas, ou des tasses et après on commence à comparer ou a choisir. Toutes les techniques d'apprentissages ne concernent que les extracteurs, et il importe de comprendre pourquoi. D'abord, une classification ne peut être que linéaire, c'est à dire qu'elle consiste à diviser un espace d'objets en zones distinctes séparées par des plans. De part et d'autre on trouve des zones qui ne contiennent QUE des points identiques du point de vue de la classification, du moins c'est ce qu'on a calculé en "apprenant" à partir d'un nombre fini d'exemples.  Un nouveau point, le "truc" à reconnaitre se positionne dans l'espace au dessus ou au dessus du fameux plan et se trouve donc "reconnu". 

Quand le problème impose des surfaces de séparations convoluées et non linéaires, on ne peut presque rien faire. Pour obtenir des séparations linéaires, il faut ajouter des dimensions et chercher des projections dans d'autres espaces, plus commodes à découper. 

Le Cun n'en fait pas mystère: on a des espaces de grande dimensions, et la surface en question est un un espace de dimension inférieure inclus dans le premier. Car il y a autant de dimensions que de variations possibles, par exemple une image de 1 méga pixels donne bien un ensemble de 1 million de dimensions, chacun de ses axes ayant 24 degrés. Un autre exemple, saisissant est celui des ensembles de visages soumis à Facebook: le nombre de dimensions serait le nombre de muscles du visage humain (on oublie les cheveux et les orientations de la tête). Environ 50, avec des variations continues de leur contractions. Reconnaitre c'est isoler les régions qui se ressemblent. Un voile tortillé partage cet espace là, une surface impossible mais calculable. LA surface, si on savait la construire, permettrait de tout faire... 

Pour parvenir à tout ça, on commence par le perceptron. Inventé en 1957 par Franck Rosenblatt, il est une sorte de rétine artificielle qui répond oui ou non après qu'on ait agencé ses bits de vision répartis sur une surface. Plus exactement la machine fait une somme pondérée des valeurs de ses bits, un jeu de poids particuliers qualifiant un état donné du perceptron. 

Les systèmes à deux couches sont prouvés, et suffisent à tout modéliser. C'est un théorème, qui prouvant (existentiellement bien sur, et seulement) qu'on a -toujours- une solution se permet de considérer acceptable celles qui sont vraiment compliquées: des centaines voire des centaines de milliards de dimensions et de paramètres à introduire, bref, en général c'est l'horreur. Ces espaces gigantesques furent à l'origine d'un long mépris: le perceptron, comme énumération fastidieuse n'était qu'un immense réseau de "if", inintéressant et stérile et surtout totalement impuissant.

On passa alors au multicouches, en fait à plusieurs modules en série qui chacun transforment leur entrées avec leurs propres "poids". Chaque niveau a donc sa matrice de coefficients de transformation. Ce sont ces coefficients qu'on sélectionne et qu'on ajuste lors de la comparaison du résultat global avec ce qu'on veut voir deviner. Ce qu'on appelle la "rétropropagation du gradient" consiste à modifier les poids d'un module d'autant plus qu'ils contribuent à l'erreur. L'algorithme est itératif, bien sur, on corrige progressivement, exemple par exemple en supervisant donc l'évolution des différents modules et au bout d'un certain temps, le système se stabilise, le réseau multicouches a "appris". Un point intéressant est que le test du système "global", bien sur capable de reconnaitre les exemples qu'on lui a soumis pendant l'entrainement (c'est bien le moins) doit aussi être capable de reconnaitre des ensembles de tests particulier, mais ceux "nouveaux" pour lui... Pour le reste: inch Allah ! La voiture se débrouillera... 

Mis au point en 85/86 et en particulier par Le Cun lui même la méthode fonctionne bien, voire même très bien. Elle fut d'autant plus utilisée que vers 2012, on se mit à utiliser les processeurs graphiques des PC "gamers" indispensables aux jeux vidéos, pour accélérer la chose. Les fameux GPU se mirent à calculer autre chose que les lapins crétins: hardware dédiés au calcul parallèle de multiplications entre matrices, ils permirent des facteurs mille d'augmentation des performances. Par contre, un point intéressant: il n'y a pas de résultats mathématiques qui expliquent ou justifient le fait que les systèmes "profonds" soient aussi efficaces. Seul un robot supérieur à l'homme pourra prouver la chose, sans doute, en tout cas bien des gens sont sur sur le coup en ce moment. 

Mais il y a encore mieux ou plus ! Les réseaux convolutifs. Il s'agit d'une application aux plans de neurones de la technique de convolution, qui consiste à isoler des petites portions d'espace et de leur appliquer un traitement particulier, toujours le même. De proche en proche, on recouvre finalement tout le plan. Tout se passe comme si chaque tuile était un réseau particulier avec son ensemble de poids. Tous les ensembles de poids sont identiques (c'est ça la convolution) et chaque tuile produit un résultat (elle a un neurone associé). Cette technique, inventée par Le Cun s'est trouvé très efficace, par exemple pour lire des chèques (on ne se lassera pourtant jamais de trouver qu'écrire un chèque à la main est particulièrement idiot). La chaine de traitement multicouches de 1987 fut reprise à l'identique vingt cinq ans après, et après améliorations se mit à faire des merveilles. 

Allez, on en rajoute une ? 

Il y a une célèbre maxime qui permet de comparer toute pratique innovante au "teenage sex": tout le monde en parle, personne ne sait ce que sait, tout le monde croit que tout le monde le fait, et tout le monde prétend en faire.

On y est en plein, l'excitation généralisée étant à son comble, Facebook (là où travaille Le Cun) ou Google devenant tellement forts que leurs robots pourraient être plus puissant que ceux de l'armée, raison de plus pour nationaliser les GAFA, il fallait y penser. 

Toutes ces belles techniques sont donc en plein progrès. Une application intéressante de cet apprentissage est la "boterie" ou l'élevage de "bot", un bot étant une machine apte à dialoguer sur des messageries instantanées. Participant aux discussions collectives, capables d'exécuter certaines tâches tout comme tout un chacun, on s'acheminerait donc vers des équipes de travail mixtes comprenant un ou plusieurs robots, dont on ne saurait pas très bien le niveau de conscience, et d'ailleurs c'est déjà le cas avec les humains eux mêmes, tout le monde le sait bien.

L'important est que le degré de complexité de la conversation serait lissé, les jargons d'adolescent étant particulièrement bien adaptés à la commande de machines: un seul milieu de travail et de commande et pourquoi pas organiser des communautés de production autour de tels processus ? En charge de démarrer sur ordre des chaines de taches plus ou moins formalisées, capable d'en saisir le paramètrage dans des contextes bien connus, les fameux "agents" ont bien une réalité, il suffit que le fameux contexte, bien verrouillé soit en place et surveillé de loin en loin... 

On se retrouverait là non pas dans l'intelligent, mais dans ce qui a toujours vexé et humilié la vraie intelligence, je veux dire la bureaucratie, fonction exclusive des secrétaires, femmes enceintes récemment revenues de couches et des pré retraités. Ce cadre là est aussi celui des fameux "jobs de merde" dont l'apparition aurait mécaniquement générée l'ambition de leur disparition, vous verrez, les chtis bouseux  se révolteront quand même... 

Les considérations sur le thèmes sont évidemment multi couches encore, et on pourrait parler des techniques d'apprentissage utilisant des jeux d'exemples erronés pour plus d'efficacité: en présence de bruit, et pour des raisons bien évidemment inconnues, l'apprentissage est meilleur !

On doit aussi mentionner une théorie expliquant au moins en principe l'efficacité du multicouches: il encoderait une hiérarchie des structures à reconnaitre, le qualificatif de "profondeur" désignant le nombre de niveaux (layer, couche) que possède le problème de reconnaissance à traiter, c'est à dire le nombre de plans indépendants emboités qui constituent le problème. Une telle figuration, d'ailleurs proprement logicielle au sens classique, désignerait ainsi les espaces conceptuels indépendants, quasiment "idéaux" qui constituent -réellement- le réel de ce qu'on veut classifier. Comme si l'approche neuronale, fourmillière, n'était qu'un moyen détourné, salement biologique, d'en revenir aux sphères et dodécaèdres de la grande science, la seule, la vraie. 

 

Écrire un commentaire