lundi 3 novembre 2014

A0465 Différence entre Intelligence Artificielle et Algorithme

On me pose la question suivante:

"Quand faut-il parler d'Intelligence Artificielle, quand faut-il parler d'algorithmes?"

Par exemple à propos du système IBM "Watson" qui a gagné le jeu de télévision Jeopardy.

Un début de réponse:

Un algorithme, c'est la description précise d'un enchaînement prédéfini  d'opérations pour résoudre un problème précis sur des données précises.
Par exemple trouver le plus court chemin dans un graphe, inverser une matrice, résoudre un système d'équations aux dérivées partielles.
Un "vrai, bon" algorithme est "rapide": il doit trouver une solution plus vite que la manière stupide qui consiste à examiner toutes les solutions possibles et ne retenir que celles qui marchent. Par exemple, pour trier un ensemble de N nombres, on ne va pas générer toutes les combinaisons possibles pour ne retenir que celle qui est dans le bon ordre.

IL N'EXISTE PAS BEAUCOUP D'ALGORITHMES !!! Pour la plupart des problèmes de la vie réelle, il n'y en a pas. En général parce que l'on ne sait pas les ramener à une description précise, et que l'on ne sait pas les résoudre de manière prédéfinie.

On ne trouve pas souvent de nouveaux algorithmes importants. La plupart des progrès sur les algorithmes consistent à améliorer leur vitesse de manière "epsilonesque" (style "battre le record du monde").  Ce qui change aujourd'hui, c'est la quantité de données disponibles et la puissance des machines. Par exemple, le "big data" utilise des algorithmes vieux de dizaines d'années.

Si on appelle "intelligence artificielle" la capacité d'une machine à reproduire la manière dont nos cerveaux résolvent des problèmes, on peut dire que:

-- notre cerveau n'exécute pas d'algorithme, il est trop lent pour ça. (1 mètre par seconde dans les neurones ...)
-- il faut distinguer -en simplifiant- deux types de fonctionnements de notre intelligence:

D'une part,  reconnaître un visage, une scène: tout est réalisé sans algorithme par la simple traversée du réseau de neurones et de leurs connexions depuis la rétine jusqu'aux zones corticales de la vision (parfois beaucoup moins de 100 millisecondes. Ici, aucun raisonnement, aucune connaissance consciente.
D'autre part,  rédiger une proposition commerciale. Là, on va raisonner, utiliser des connaissances sur nos produits, la concurrence, le client. On va enchaîner des connaissances. C'est une activité intelligente qui peut durer des jours.

La "vieille IA" s'intéresse à ce dernier cas, ce qu'on appelait les "systèmes experts": on faisait des systèmes experts d'aide à la construction de devis, par exemple. On PASSAIT DES MOIS  à discuter avec de bons commerciaux ou technico-commerciaux pour qu'ils expliquent leurs règles de raisonnement, que l'on représentait ensuite en machine, là où un "moteur d'inférence" (un programme) essayait de les enchaîner pour construire un bon devis.

La "nouvelle IA" s'intéresse plutôt au premier cas (la reconnaissance d'image) en travaillant par "apprentissage automatique". Par exemple si on veut faire un système qui décide si une personne sourit ou pas, on va montrer à la machine des centaines de milliers de photos de visages (voire des millions), avec pour chacun l'indication "sourit" ou "ne sourit pas", on va en plus lui montrer ces photos en boucle PENDANT DES MOIS -vraiment!- pendant lesquels la machine va essayer de trouver UNE formule mathématique (en procédant un peu à tâtons avec l'aide de la statistique) qui, au vu d'une image, répondra en quelques millisecondes si c'est un sourire ou pas. On dit qu'on entraîne la machine, que la machine apprend la formule.

On voit que:

-- ces deux IA n'ont strictement rien à voir entre elles (sauf LES MOIS PASSES en amont !!!)

-- dans les deux cas, les algorithmes sont très loin de la résolution du problème précis, ce sont des "rouages internes" dans les soutes.

Dans la nouvelle IA, l'algorithme est celui du processus d'affinage progressif de la formule à apprendre, pendant des mois (optimisation, analyse numérique)

Dans la vieille IA, l'algorithme est celui du moteur d'inférence qui essaie de trouver un fil de raisonnement, un chemin, entre un problème et une solution, via un ensemble de règles de connaissances élémentaires (un peu comme on construit une démonstration de théorème)

Mais aujourd'hui, le mot "algorithme" est subitement devenu à la mode dans les media, style "l'algorithme de Google, de Amazon, de la NSA, l'algorithme de Watson / Jeopardy".  (Dans l'idée de big brother, formule magique qui nous dépasse concoctée par les maîtres du monde, pour dramatiser aux yeux du bon peuple)

Pour revenir à la question du début, il y a peu d'algorithmes, on n'en trouve pas souvent de "révolutionnaires", et, vis à vis de l'IA, ils jouent des rôles "dans les soutes", l'essentiel de l'intelligence venant des CONNAISSANCES que l'on apporté pendant des mois au système, soit en collectant PENDANT DES MOIS des connaissances auprès d'humains, soit en montrant de manière répétée PENDANT DES MOIS à la machine "ceci est un sourire" "ceci n'est pas un sourire" (ce qui sont aussi des connaissances humaines)

Quand au  système Watson, c'est tout sauf un algorithme, c'est un "système complexe" qui mélange de manière très sophistiquée LES DEUX TYPES D'IA (l'ancienne et la nouvelle) , et qui a mis des centaines d'hommes/années à être mis au point pour gagner le jeu (et qui n'a pas encore prouvé sa capacité -sans d'autres centaines d'H/an-  à résoudre de vrais gros problèmes, comme le diagnostic médical).

.

Aucun commentaire: