dimanche 13 mars 2016

Cutting edge - Deep learning


Habituellement, je n'écris pas d'articles portant sur l'actualité, mais le match en cours entre le champion du monde du jeu de Go (Lee Sedol) et la machine AlphaGo de la société DeepMind (startup anglaise rachetée par Google) évoque tellement de questions qui sont proches des sujets traités dans ce blog que j'ai décidé de faire une entorse à la règle
(les règles sont faites pour être modifiées, ce dont une machine d'intelligence artificielle n'est pas encore capable).

En quoi le jeu de Go est-il différent?

Il y a 10^170 possibilités au jeu de Go alors qu'il n'y en a que 10^120 aux échecs, soit mille milliards de milliards de tonnerre de Brest de plus (10 suivi de 50 zéros).
Aux échecs, il est possible de calculer algorithmiquement tous les scénarios qui suivront un coup jusqu'à un horizon donné.
Il suffit d'avoir une puissance de calcul suffisante.
La seconde version de Deep Blue (l'ordinateur d'IBM) avait un horizon de 12 coups.
Mais la première version avait un horizon insuffisant, grâce à quoi Kasparov réussit à vaincre Deep Blue par 4 victoires contre 2 en 1996.
A cause de cette faible vision stratégique, on avait enregistré dans la machine un grand nombre d'ouvertures conventionnelles.
Kasparov sortit du répertoire habituel d'ouvertures, ce qui lui permit de vaincre la machine.
Mais en 1997, la version suivante de Deep Blue (Deeper Blue) avait la mémoire et la puissance de calcul nécessaire pour repousser l'horizon et battre Kasparov.

A cause du grand nombre de possibilités, le jeu de Go est beaucoup plus stratégique.
La stratégie de calcul algorithmique ne peut pas fonctionner.

Les réseaux de neurones

Le principe des neurones artificiels existe depuis les années 1950 (loi de Hebb) alors que les chercheurs tentent d'appliquer les principes de l'apprentissage à des machines.
Le principe est simple: il s'agit de trouver les réglages d'un dispositif qui permettent de fournir la réponse appropriée en fonction des paramètres d'entrée.
Le réseau de neurone le plus simple (un classifieur linéaire) est inventé en 1957 par Franck Rosenblatt et s'appelle le Perceptron.
On permet à la machine d'apprendre en la programmant pour minimiser l'erreur en sortie en fonction des paramètres en entrée. Cette opération se fait suivant une fonction de coût qui permet de régler les neurones artificiels du dispositif (le poids de leur synapses) pour minimiser l'erreur.

L'apprentissage profond

L'apprentissage profond (Deep Learning) diffère par le fait qu'il est basé sur des réseaux de neurones multicouches (supérieur à deux couches).
La théorie prévoit que l'empilement de plus de deux couches de réseaux de neurones est mathématiquement inutile, et c'est sans doute cette objection théorique qui a freiné le développement des technologies d'apprentissage profond. Un bel effet de cécité théorique;

En effet, l'approche de l'apprentissage profond n'a pas de fondement théorique prouvé.
Elle est intuitive et empirique: ça marche mais on ne sait pas vraiment comment, ni pourquoi, le fait d’empiler des couches de réseau de neurones permet des apprentissages complexes, bien qu’on puisse le comprendre intuitivement.
Les arguments intuitifs qui soutiennent la théorie viennent des sciences cognitives et de la psychologie:
- le cerveau a une structure multicouches et hiérarchique
- les apprentissages animaux et humains sont hiérarchiques: par exemple, on apprend d'abord à lire des lettres, puis des mots, puis des phrases, chaque concept étant d'une complexité supérieure.

AlphaGo est un logiciel qui exploite la technologie de l'apprentissage profond.
Il a été soumis à deux techniques d'apprentissage successives:
- Apprentissage supervisé: on donne au réseau de neurones un jeu de donnée en entrée et en sortie, et on calcule les poids des neurones pour adapter les entrées aux sorties attendues. Pour être efficace, cet apprentissage nécessite de grandes quantités de données.
- Apprentissage par renforcement: on simule des parties (aléatoirement) et on récompense les sorties "gagnantes". Cet apprentissage, aléatoire, nécessite donc une grande puissance de calcul pour être efficace. Pour donner une image, cela revient à laisser un enfant livré à lui-même et récompenser les comportements corrects (ou pénaliser les comportements incorrects).

Victoire technologique?

Le principe des réseaux de neurones n'est pas nouveau, mais il a été longtemps ignoré car jugé non opérationnel par la communauté, la puissance de calcul ou la quantité de données nécessaires ayant été longtemps insuffisante.
En effet, plus un système est complexe, et plus il a besoin de données ou de temps d'apprentissage (ce qui pourrait expliquer que les animaux dit "intelligents" ont besoin d'une plus longue période de croissance pour devenir adultes).

Or, le contexte technologique a changé: nous disposons aujourd'hui de grandes quantités de données et d'une puissance de calcul bien supérieure à ce qu'elle était à l'époque.

Ainsi, lors de sa phase d'apprentissage supervisé, AlphaGo s'est nourri d'une base de données de 100 000 parties jouées par des joueurs professionnels.
Ensuite, il a suivi une période d'apprentissage par renforcement (apprentissage stochastique qui requiert une grosse puissance de calcul) en jouant 30 millions de parties contre lui-même!

AlphaGo est donc le résultat d'avancées technologiques récentes.

Victoire psychologique?

Il est amusant de noter que quand Kasparov a joué contre DeepBlue, il est rapidement sorti des sentiers battus, stratégie destinée à sortir des chemins mémorisés par l'ordinateur en début de partie et ainsi le pousser à la faute.
Alors que cette stratégie s'était révélée gagnante en 1996, elle s'est retournée contre lui en 1997, car la pression le poussa à trop sacrifier.
Lors de la première partie, la machine joue un coup étrange, qui déstabilisa Kasparov: en fait il s'agissait d'un bug.
Lors de la sixième partie, Kasparov était fatigué, disposition d'esprit inconnue de la machine qu'il affronte.
Pression, déstabilisation, fatigue: on peut dire que ce fût autant une victoire psychologique que technique.


Dans une partie normale, le champion du monde a un avantage psychologique (il sait qu'il est le champion du monde et son adversaire le sait aussi).
Contre une machine, il n’y a pas d’avantage psychologique (pas d’émotions, pas de stress): la machine joue de la même manière que son adversaire soit champion du monde ou débutant.
De plus, elle n'est jamais fatiguée.

Challenges théoriques

Après chaque partie, la machine est différente. Est-elle meilleure ?
On ne sait pas le prouver.
En théorie, la machine est statistiquement meilleure, c'est à dire qu'elle optimise ses chances de gagner le plus grand nombre de parties, ce qui peut se faire au détriment d'une partie donnée (capacité de généralisation, mais non de mémorisation).
Elle est donc capable d'oubli au profit d'une plus grande efficacité statistique.

Mais la capacité de généralisation, c'est à dire le fait de généraliser à partir d'un ensemble d'exemples n'est absolument pas prouvée. Lorsqu'on soumet une machine d'apprentissage profond à un apprentissage, on fait l'hypothèse que ce processus permet à la machine de trouver des sorties correctes pour des entrées non apprises.
Il existe plusieurs théories de l'apprentissage, mais plus la machine est complexe et plus il est difficile de dire si elle va se comporter correctement sur des exemples qu'elle n'a jamais vus.

A chaque partie perdue (le réseau de neurones n'apprend que de ses erreurs), on ajuste les "poids" de chaque neurone par un algorithme dit de "rétro-propagation".
Cet ajustement permet de maximiser la probabilité de succès mais on manque encore d'une compréhension théorique de ce mécanisme.
C'est donc là un grand mystère.

En effet, l'apprentissage consiste à minimiser la "fonction de coût" qui régit la différence entre les sorties effectives du réseau et les sorties attendues (gagnantes).
Dans un espace à 3 dimensions, minimiser la fonction de coût revient à rechercher le déplacement qui mène à l'endroit le plus bas.
Or la plupart des apprentissages intéressants sont non convexes.
Si l'apprentissage humain était convexe, l'ordre dans lequel on apprend les choses n'aurait pas d'importance. Or ce n'est pas ce que montre Piaget (stades de développement) ou d'autres.
Mathématiquement, on a donc affaire à des fonctions de minimisation de coût dans plusieurs dimensions ayant plusieurs minimums.

En gros, l'espace ne ressemble pas à une cuvette mais plutôt à un paysage montagneux avec plusieurs vallées. (Et on cherche le plus grand "creux" de la figure ci-contre)
Si je me trouve à un point donné, il ne me suffit pas de suivre la direction de plus grande pente pour trouver le point le plus bas.

La machine peut-elle tout apprendre?

Oui et c'est là le gros succès de l'apprentissage profond: en empilant plusieurs couches de réseaux de neurones tous basés sur ce principe très simple, on obtient un système capable de tout apprendre.
L'idée est un peu folle, et cette apparente simplicité fait que la communauté n'y a longtemps pas cru.
En théorie un système multicouches peut donc tout apprendre, pourvu qu'on lui dise quoi apprendre, c'est à dire qu'on choisisse les paramètres d'entrée et de sortie.

Ceci constitue également la limite pratique actuelle de l'IA: les machines apprennent ce qu'on leur apprend.

Limites de la machine

Certes la machine n'est ni fatiguée ni impressionnée par un adversaire humain, mais inversement, elle ne peut pas prendre en compte l’état d’esprit de son adversaire.
Elle ne peut pas se fixer ses propres buts, comme de laisser gagner un adversaire par empathie.
Elle n'est pas capable de créativité.
Il existe des travaux en cours en IA sur des machines capables de se fixer leurs propres objectifs.
Il s'agit de l'apprentissage non supervisé: on prend une base d'images et on demande au système de trouver lui-même les régularités (les objets).
Le problème est qu'on ne sait pas trop mesurer leur efficacité.
En effet, les machines d'apprentissage artificiel semblent capables d'identifier des régularités que nous n'identifions pas. Leur sens commun n'est pas toujours le même que le nôtre.
Par exemple, si on entraîne un système à reconnaître plusieurs langues à la fois, il est meilleur qu'un système qu'on entraîne à en reconnaître une seule (même dans cette langue).
Il semble donc que le système identifie des régularités entre les différentes langues que nous avons du mal à percevoir.
Les linguistes qui étudient les langues créoles (langues issues du mélange de deux langues) sont parvenus à une conclusion similaire concernant la grammaire: il existerait une sorte de grammaire basique commune à toutes les langues.

Une illustration simple de l'apprentissage d'un réseau de neurones apprenant à reconnaître les nombres impairs sur les chiffres d'un radio-réveil est que la barre verticale en bas à gauche acquiert un poids déterminant dans le réseau de neurones. (en dehors du "4", elle est déterminante pour identifier les chiffres pairs ou impairs)

Il arrive aussi que les machines d'apprentissage artificiel aient le même sens commun que nous. Par exemple, les machines auxquelles on a appris la reconnaissance de formes animales ont autant de mal que nous à identifier les contours d'un zèbre parmi un troupeau de zèbre (ce qui est bien la raison évolutive des rayures du zèbre)

Est-ce qu’elle peut s’adapter si on change les règles ?
Oui et c'est la grande victoire de l'IA. Une même machine peut tout apprendre pourvu qu'on lui fournisse les entrées et les sorties (l'expérience) qui lui permet d'apprendre.
Mais il lui en faut un très grand nombre.

La puissance du cerveau humain est environ un million de fois supérieure à celle d'un ordinateur (et il consomme dix fois moins).
Si on suit la loi de Moore qui dit qu'on double la puissance des ordinateurs tous les 18 mois (loi purement empirique qui semble ne plus se vérifier car on observe un ralentissement) on pourrait parvenir à une puissance équivalente à celle du cerveau vers 2045.
Sauf que, on est loin d'avoir compris les principes de fonctionnement du cerveau.
De ce point de vue, les chercheurs en Intelligence Artificielle sont dans la même situation que les astrophysiciens qui pensent n'avoir découvert que 5% de la masse totale de l'univers: 95% restent inconnu.
Or la Recherche progresse beaucoup plus lentement que la technologie: elle ne suit pas la loi de Moore.

L'humain, cet expérimentateur un peu fou, soumis à la fatigue au stress et aux tornades émotionnelles a encore quelques beaux jours devant lui avant de capituler devant la singularité.

Référence & bibliographie

- L'essentiel de cet article est tiré des cours de Yann Lecun au Collège de France.
- Demis Hassabis - The Future of Artificial Intelligence
Teaching Deep Convolutional Neural Networks to Play Go
Move evaluation in Go using deep convolutional neural networks

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.