Le pouvoir des algorithmes
On se pose désormais la question du pouvoir des algorithmes. Mais qu’est capable vraiment de faire un algorithme ?
Ce qui va suivre est la pensée prise sur le fil, un work in progress digne – n’ayons pas peur des mots – des plus hauts instants spéculatifs husserliens des Logische Untersuchungen. À toi, lecteur, j’ai envie de dire comme Wittgenstein au tout début du Tractatus.
« Ce livre ne sera peut-être compris que par qui aura déjà pensé lui-même les pensées qui s’y trouvent exprimées – ou du moins des pensées semblables ».
Ce qu’est un algorithme
Un algorithme est un ensemble de procédures sur des données, sur des informations. En ce sens, il est fondateur de l’informatique, mot-valise signifiant information-automatique, traitement automatique de l’information. Un algorithme traite différentes variables, et les transforme. Par exemple, l’algorithme suivant très simple prend pour information une certaine valeur et en produit la factorielle :
function fact(n)
{
if(n <= 0)
{
return 1;
}
else
{
return fact(n – 1) * n;
}
}
Il serait intéressant ici de déterminer s’il s’agit là, au sens de Kant, d’un jugement analytique, ou bien d’un jugement synthétique. Si, en outre, ce jugement est a priori, ou bien a posteriori. En suivant Kant, si un algorithme n’est qu’analytique, il ne ferait en somme qu’éclaircir ce qui est déjà présent dans des informations données. S’il est synthétique en revanche, il ajouterait quelque chose à ce qui est déjà présent. S’il n’est qu’analytique, le pouvoir de l’algorithme serait tout relatif. Il nous aiderait à voir des choses que nous ne voyons pas. S’il est synthétique, son pouvoir est créateur, créant des choses que, sans lui, nous n’aurions pu déceler, malgré tous nos efforts.
Algorithmes a priori et a posteriori
Commençons par la question de l’a posteriori. À l’évidence, l’information n’est pas ici produite dans cet exemple a posteriori. Il n’y a pas besoin d’une procédure expérimentale, d’un appel à la réalité sensible pour que cet algorithme produise la nouvelle information qu’est la factorielle. D’une certaine manière, la factorielle n! est contenue en puissance dans n.
Lorsque l’on en reste à des algorithmes simples de ce type, il semble qu’aucun ne sera a posteriori. Pour qu’il soit a posteriori, il faudrait que la fonction sorte d’elle-même (soit transcendante dans les termes kantiens), en ayant par exemple recours à d’autres fonctions extérieures. Par exemple, une sortie, ou plutôt une entrée vers un flux serait un tel recours à l’expérience, comme lorsque l’on demande à l’utilisateur d’entrée une donnée (en C++, quelque chose du type « cin >> n »), ou bien lorsque le programme lit une donnée sur un périphérique. Mais même dans ce cas de figure, il serait possible de modifier l’algorithme pour, dans un sens kantien, le rendre plus pur, en faisant en sorte qu’au lieu que la fonction ait recours d’elle-même à l’expérience, les données lui soient passées en arguments (c’est même là une bonne pratique de programmation : distinguer dans sa manière de faire ce qui relève de l’expérience dans un programme de ce qui est purement logique). Autrement dit :
function qqch(n)
{
// faire des choses avec n
return n;
}
n = lireladonnee();
n = qqch(n);
ecrireladonnee(n);
plutôt que :
function qqch()
{
n = lireladonnee();
// faire des choses avec n
ecrireladonne(n);
}
qqch();
La différence entre ces deux exemples est subtile, mais essentielle. La fonction qqch() dans le premier cas établit un traitement purement a priori sur la donnée n, contrairement à sa seconde version. Évidemment, même dans le cas numéro 1, la question de comment on se procure les données reste une question d’expérience. La fonction qqch() ne dit pas comment on se procure la donnée, mais ce que l’on en fait avec.
Algorithmes analytiques et synthétiques
Il est donc parfaitement possible d’avoir un traitement a priori, dans une certaine mesure, de données. Maintenant, la question de savoir si ce traitement est analytique ou synthétique a-t-il du sens ? Pour Kant, un jugement est analytique si le prédicat est contenu dans le concept. Par exemple, dans le concept de « triangle », j’ai déjà l’idée qu’il s’agit d’une figure à trois angles. Un jugement analytique renvoie à quelque chose qui est vrai par définition. Le jugement analytique n’ajoute rien en terme de connaissances – on dira ici qu’en terme d’informations, il ne fait qu’expliciter des choses déjà contenues en germe dans ces informations. Est-ce le cas avec notre exemple de la factorielle ?
Si l’on suit Kant, la factorielle n’est pas un jugement analytique sur la donnée n. En effet, si on reprend son exemple de 7+5=12, le chiffre 12 n’est contenu ni dans 7, ni dans 5. Le 12 résulte d’une synthèse, d’une addition au propre comme au figuré, de 7 et de 5.
C’est ici que les choses deviennent problématiques. Pourquoi, selon Kant, est-il nécessaire de sortir du 7 ou du 5 pour parvenir au 12 ? Virtuellement, le 12 est en effet contenu dans le 7 ou le 5. Il est contenu en puissance en celui-ci, de la même manière que toutes les opérations mathématiques ou logiques sont virtuellement contenues, en puissance, dans tout nombre, ou toute information. On serait donc ici proche d’une conception leibnizienne. C’est ce qui faisait dire aussi à Frege, Carnap, Russell et les autres qu’il n’y avait en mathématiques ou en logique que jugements analytiques.
Redisons le autrement. D’une manière particulièrement contre intuitive, j’ai le sentiment que la factorielle de 5 est directement contenue dans le concept de 5. « 5! » est confusément déjà pensé en « 5 », même si je ne pense pas immédiatement à le penser – mais de même, toutes les fois que je pense « triangle », je ne cherche pas immédiatement à penser que cette figure a trois angles. En revanche, lorsque je pense 5, le 12 ne me vient pas immédiatement à l’esprit. Même en cherchant bien, il m’est difficile de trouver comment connecter le 12 au 5 (à l’inverse, 12 n’est pas nécessairement formé par la réunion de 7 et de 5, d’autres combinaisons sont possibles). La seule manière serait de trouver une fonction qui me conduise presque naturellement au 12, du type :
Fonc(5) = 12
Notons qu’il existe des relations à 5 plus simples. Si je m’étais posé la question du rapport entre 5 et 6, je l’aurais sans doute trouvé analytiquement plus rapidement, puisque 6 est le successeur de 5 :
Succ(5) = 6
12 en revanche est plus lointain, et c’est pourquoi j’ai le sentiment premier qu’il est exclu analytiquement du concept de 5. 12 est en effet le successeur du successeur du successeur, etc. de 5, et il ne s’agit pas là d’une manière de penser naturelle de l’esprit, que de penser immédiatement au 7ème successeur d’un chiffre.
C’est pourquoi, à première vue, le successeur ou la factorielle sont des fonctions plus naturellement présentes dans le concept de tout nombre et de 5 dans le cas présent, plus que l’addition 7 + 5. Cela dit, c’est aller un peu trop vite en besogne.
Les habitudes de l’esprit
En effet, dire que 6 est plus volontiers dans 5 que ne l’est 12, car nous sommes habitués à penser au premier successeur d’un nombre plutôt qu’à son septième, réduit justement, comme le montre la façon dont on vient de le rédiger, l’analyse de l’esprit à une habitude empirique et subjective. Le sujet empirique voit certes plus facilement 6 ou 120 que 12 dans 5, car 6 = 5′ (successeur se note ‘) et 120 = 5!, alors que 12 = 5+7. Mais si nous ne voyons pas immédiatement 12, c’est en raison de causes accidentelles et contingentes caractérisant notre esprit dans les limites qu’on lui connaît. C’est pourquoi un esprit encore plus fini et moins rompu aux mathématiques ne verra pas 5! dans 5, mais uniquement 5′. Et quelqu’un de moins rompu encore ne verra dans 5 que 5, et pas même que 5 = 1 + 1 + 1 + 1 +1 (5 = 1 » »’). Or, Leibniz dirait certainement que pour un esprit infini, par exemple Dieu, tout ce qui est possible d’être pensé d’un concept est pensé à titre de potentialité. Par conséquent, il semble abusif de soutenir que 5′ ou 5! ou 5+7 sont plus présents ou moins présents dans 12.
L’alternative concernant les informations analytiques semble plutôt être la suivante : ou bien toutes les opérations possibles avec un nombre sont contenues analytiquement dans un nombre, ou bien aucune n’est contenue – et non pas certaines le sont et pas d’autres, car cela fait quitter le terrain transcendantal pour celui de l’empirique.
Pour bien comprendre encore une fois ce qui est dit ici, pensons au joueur d’échec. Face à une position donnée, le grand joueur d’échec a immédiatement à l’esprit, par l’intuition, les différents coups possibles. Tous sont écrits virtuellement dans la position donnée, d’une manière presque analytique. Le joueur débutant en revanche est bien embêté, pour ne pas parler de celui qui ne connaît pas les règles. Mais l’on rétorquera que même pour le meilleur joueur, les coups joués dépendent grandement du jeu inverse, et donc d’un élément hétérogène à la seule pensée du joueur : autrement dit, il réfléchit analytiquement à ce qui devrait être, mais ce qui est ne l’est, par définition, que par l’expérience du jeu adverse.
Analyse et production de sens
Voici comment on pourrait penser le processus analytique vis-à-vis d’une donnée. Partons du 5, et admettons de façon leibnizienne que soient contenues analytiquement dans 5 toutes les opérations mathématiques et logiques possibles à partir du chiffre 5. Analytiquement se trouveraient donc dans 5 par exemple les choses suivantes : 5′, 5!, 5+n, 5-n, 1 » », etc, et certainement une infinité d’autres combinaisons possibles. L’analyse consiste à faire prendre conscience, justement, que 1 » »’ est par exemple contenu dans 5 – traduit en langage plus clair et concret, que dans 5 pommes, il y a 5 unités de 1 pommes (en fait, traduire cela en langage plus clair obscurcit paradoxalement les choses, car l’exemple des pommes choisi ici introduit de façon sous-jacente des considérations sur l’ordinalité et la cardinalité).
C’est pourquoi une des clés permettant de comprendre l’opération analytique réside dans cette question de la prise de conscience. On peut la définir rapidement comme une donation de sens, presque dans un sens husserlien : la conscience vise quelque chose dans une intentionnalité. Quelque chose se voit soudainement exister, parce que ma conscience sait désormais qu’elle est ici. Il n’y avait tout à l’heure pas d’unités, mais simplement un 5. Le 5 analysé, je sais maintenant qu’il est lié à quelque chose comme une réunion d’unités.
Kant ne s’appesantit pas de façon importante dans la Critique de la raison pure sur l’acte de l’esprit consistant à analyser un concept permettant ensuite d’avoir conscience de ce qui est contenu en lui. Ce qui l’intéresse est davantage le fameux jugement synthétique a priori. Mais force est de constater qu’il faut en revenir sur ce point à la subjectivité du sujet empirique. En fonction du sujet qui analyse une information, la prise de conscience ne sera pas là-même, comme dans le cas du joueur d’échec.
La puissance de l’analyse
En termes leibniziens, cela est relatif à la finitude de l’esprit. Plus l’esprit est puissant, plus il sera capable de découvrir toutes les combinaisons possibles. Lorsque le processus d’analyse est décomposable en une série d’étapes appelée algorithme, il est possible de passer le relais à une machine, qui est souvent beaucoup plus efficace pour analyser des données. C’est pourquoi un ordinateur est désormais beaucoup plus apte à analyser une position aux échecs que n’importe quel joueur du monde. Le temps ou Kasparov était capable de vaincre les machines est révolu. Aujourd’hui, même Carlsen s’associant à Anand et aux autres se ferait vaincre par un simple smartphone, ou même un simple algorithme en Javascript (car il existe maintenant une version de StockFish en Javascript).
Qu’est-ce qui limite alors l’analyse pour de tels dispositifs possédant une puissance de calcul écrasant le cerveau humain ? Il s’agit tout simplement du temps. Pour reprendre l’exemple des échecs, l’issue d’une partie n’est pas toujours facilement décidable : quand par exemple il n’y a pas de coups forcés permettant d’aboutir à un mat en quelques étapes. Il faut alors analyser la position d’une manière toujours plus ramifiée. Par exemple, si l’algorithme n’utilise pas de dictionnaire d’ouvertures, dès le 1er coup à jouer, l’algorithme recherche ce qui est le plus avantageux sur le long terme, ce qui peut constituer une tâche infinie, même si on applique la règle des 50 coups, car une partie pourrait théoriquement durer près de 6000 coups – alors qu’elles semblent statistiquement s’achever en moyenne en 20 ou 25 coups, avec pour les plus longues qui traînent jusqu’aux finales des parties en 60 ou 70 coups. Shannon estime ainsi le nombre de parties possibles à 10^120, soit un nombre de combinaisons supérieur au nombre d’atomes qu’il y a dans l’univers selon Seth Lloyd. L’algorithme est donc contraint d’achever son calcul à un moment donné, car il faut bien jouer : rare sont les parties qui ne se jouent pas dans un temps limité, même les parties par correspondance. C’est pourquoi les machines sont encore peu efficaces face aux meilleurs joueurs de go, car les combinaisons possibles sont encore plus nombreuses. Il faudra attendre encore de la puissance de calcul de la part des machines.
La durée de l’analyse
En attendant, cela nous plonge dans des considérations presque bergsonniennes. En effet, pour qu’il y ait analyse, production d’information, prise de conscience, il faut qu’il y ait un travail de la durée. Finalement, c’est elle qui contraint la construction de sens. Avec un temps infini, toujours plus de choses pourraient être déduites à partir de la simple analyse d’un concept.
Le pouvoir de l’algorithme ne repose donc essentiellement que sur la puissance de la machine qui l’exécute. En théorie, je suis capable avec mes pauvres neurones de vaincre Carlsen aux échecs en suivant ligne par ligne les procédures de calcul de l’algorithme de StockFish. En pratique, j’en suis incapable, car il y a quelques milliers de lignes à parcourir, et mon esprit est trop intelligent pour cela : il faut la bêtise du mécanisme électronique d’un processeur pour le faire. Je suis moi aussi contraint par la durée, et ma manière de jouer aux échecs va alors différer de la machine, que je ne peux pas imiter : je vais procéder par reconnaissance de formes et non par quantification, c’est-à-dire par chunking. Les machines ne savent pas encore très bien procéder ainsi, et c’est pourquoi leur analyse est bien différente des procédés humains, même si elles aboutissent souvent à des résultats similaires. Certaines tentatives pour faire analyser les machines par chunking existent, mais ne sont pas encore pleinement fonctionnelles. Le jour où elles le seront, l’humanité aura engendré une manière d’appréhender les problèmes et de les analyser qui sera semblable à la sienne ; confiée à des dispositifs ayant une plus grande capacité de calcul, l’homme sera détrôné même du jeu de go, et de bien d’autres domaines. Difficile toutefois de pronostiquer un « quand ? », puisqu’on voit la complexité de l’intelligence prédictive aujourd’hui à la vue des sondages et autres prévisions qui furent déjoués récemment lors des dernières grandes échéances électorales.
Mais ceci conduit à une autre considération, non plus bergsonnienne, mais ruyerienne (c’est deux auteurs étant l’un et l’autre évidemment dans leurs intuitions très proches). Dans son ouvrage sur la cybernétique, Ruyer explique que les machines ne sont pas intelligentes d’elles-mêmes. Elles sont produites par une autre intelligence, qui est au début de la machine, et à la fin de la machine. La machine est entre l’homme et l’homme. En d’autres termes, c’est parce que l’homme nourrit la machine d’informations que la machine peut produire analytiquement des informations. Sans homme pour la programmer, la concevoir, la construire, pas de machine intelligente à proprement parler. Finalement, cette remarque de Ruyer est très kantienne (mais on pouvait le deviner, de la part de quelqu’un désirant instaurer un néo-finalisme), au sens de la Critique de la faculté de juger : une machine n’est pas capable de se créer d’elle-même (pensons à l’exemple de la montre).
Autrement dit, pour reprendre l’exemple des échecs, ce n’est pas uniquement une question de puissance de calcul, mais une question de comment le calcul est fait. La machine décide de l’issue du calcul. Mais elle ne décide pas de comment calculer : c’est l’homme qui la programme.
L’homme dans la machine, l’esprit dans l’algorithme
Il existe cependant depuis peu des algorithmes capables de se créer eux-mêmes. Une fin leur étant fixée, ils doivent ensuite construire par eux-mêmes les étapes permettant au mieux d’y aboutir. Autrement dit, ces algorithmes décident eux-mêmes quelles données dans l’analyse sont importantes à prendre en considération, quelles sont celles à écarter, et surtout que faire avec ces données. Mais il n’en demeure pas moins que l’homme est tout de même à la racine à un moment donné. Comme le disait Aristote, il faut un premier moteur, et l’homme est ce premier moteur divin pour la machine. Deus ex machina, ou plutôt humanum ex machina (pardon pour le latin approximatif).
Je serais parfaitement capable de produire un algorithme explorant toutes les virtualités contenues dans la donnée 5 (5′, 5+n, 5!, log(5), exp(5), etc.). Je serais également capable de produire un algorithme le faisant pour plusieurs données. Je serais capable d’en faire un permettant de produire des analyses sur les résultats de ces analyses, que l’on pourrait appeler analyses au carré, et même faire des analyses au cube, des analyses au cube de cube, etc. Je serais même capable de produire un algorithme trouvant quelles relations sont les plus pertinentes entre telles données et telles autres : les statistiques fournissent tout un tas d’outils prodidieux (khi-deux, tests de corrélation, etc.). Mais une machine aurait-elle était capable de produire d’elle-même les règles permettant d’aboutir à ces données ? Sans doute une machine est-elle capable d’apprendre et de se construire elle-même. Mais cette machine est d’abord une machine, qui possède de façon innée un ensemble de chose que lui a donné celui qui l’a construite.
Ces dernières phrases sonnent d’une manière curieusement théologique, et rappellent toutes les discussions médiévales et mêmes classiques sur l’empirisme, le rationalisme, l’idéalisme. Et pour cause : il y a un transcendantal, au sens kantien du terme, qui constitue une machine, et qui est la condition de possibilité pour celle-ci de connaître, de comprendre ce qu’il faut connaître, lui indiquant la voie à suivre. Sans cela, pas de connaissance possible. Bien sûr, ce que donne Kant sur les catégories, l’entendement est très approximatif. Notre époque permet grâce à l’intelligence artificielle de tester expérimentalement les hypothèses kantiennes sur le transcendantal, ce qui est à coup sûr un paradoxe.
Kant s’intéresse surtout à la perception, aux régularités permettant d’appeler un chat un chat : être capable de subsumer sous un même concept que telle boule de poils est semblable à telle autre boule de poils. Mais c’est là le degré zéro de la connaissance pour nos machines, qui pour la plupart sont déjà capables, d’une, de former des images dans l’intuition sensible (appareil photo ou caméra de tout smartphone), de deux, de reconnaître que telle ou telle image appartient à tel ou tel genre (reconnaissance des visages, d’empreintes, de caractères, etc.).
Ce dont elles sont encore peu capables, comme ce fut dit, c’est un problème passé presque inaperçu pour Kant, qui est de produire du sens quant à ces objets. Kant n’aborde cette question que dans la Critique de la faculté de juger, mais d’une manière peu satisfaisante, à partir de la question de la finalité. La première partie sur le jugement esthétique s’intéresse à ce qui éveille des sentiments et émotions, pas à ce qui peut permettre de connaître. La seconde partie sur le jugement téléologique pose la question du vivant, sujet certes en lien avec celui-ci, mais qui s’écarte d’entrée de l’enjeu présent : ce qui intéresse la machine est davantage un jugement déterminant que réfléchissant. Kant a recours à des arguments paresseux, ceux-là même qu’il disqualifiait dans la Critique de la raison pure : plutôt que d’enquêter sur comment le génie donne ses règles à la nature, il se contente de dire que c’est par le génie que la nature se les donne ; plutôt que d’enquêter sur comment le vivant répond à des exigences de finalité, il se contente de dire que ce qui caractérise la vie est par nature créateur. C’est pourquoi Kant conduit ici à l’aporie, et s’il faut trouver des réponses, ce sera davantage du côté du cognitivisme et de la psychologie de l’apprentissage qu’il faudra se tourner.
1 février 2017 à 22:07 Luccio[Citer] [Répondre]
En effet, chez Leibniz, l’intuition semble légitimer l’idée que les jugements soient in fine analytiques. Mais bon, ça se trouve c’est l’inverse : l’aspect analytique prouve qu’une intuition est possible.
Ça se retrouve dans Dieu : puisqu’il peut tout penser par raison, une intuition est possible ; ou vice versa. De même, je ne suis jamais certain de comprendre.
En tout cas, nos esprits finis, eux, sont condamnés à croire au synthétique, même pour Leibniz. Au niveau psychologique, comme tu dis. On n’a pas de notion adéquate, donc on pense en synthétique.
Dans nos esprits finis, il faut tenter des possibilités ; et parfois l’intuition connecte, par des voies mystérieuses (ou bien connues des chercheurs), et juge a priori par imagination. Parfois il s’essaye à la méthode.
Dans une situation finie, avec un temps infini ou une vitesse rapide, la méthode peut remplacer l’intuition, en s’assurant de tout dénombrer. Et c’est là les échecs, et les algorithmes des machines.
Ce qui est rigolo, en effet, c’est que la machine ne sait pas quand s’arrêter, car elle calcule, et calcule. Donc il faut une condition d’arrêt ?
Bon, tout ça c’est pour te dire que j’ai lu.
Et qu’un certain Gilles Dowek, je crois, fait la différence entre algorithme et démonstration. Je crois que l’algorithme ne sait pas où il va, que la démonstration a toujours une part d’intuition.
« Mon esprit est trop intelligent pour cela : il faut la bêtise du mécanisme électronique d’un processeur pour le faire ». A moins que ce soit carrément un autre mode d’être.
Finalement l’homme, cette bête coincé entre le poulpe et l’ordinateur.
Sinon, petit scoop, sur le vivant et la finalité ; il y aurait maintenant des modèles cybernétiques. Ah tiens, et si on associait algorithme et cybernétique ? Je propose d’y réfléchir sur la côte Ouest américaine, jusqu’à croiser quelqu’un pour nous acheter un brevet.