Mon éditorial sur You Tube
Je réfléchis sur ce qu’est intelligence et j’y réfléchis comme je gagne de l’expérience avec une forme très simple d’intelligence artificielle, un perceptron à couches multiples. Vous direz : « Encore ? Tu ne t’es pas ennuyé à mort avec ce truc ? » Eh bien, non. Pas du tout. Je sens intuitivement que je ne fais que commencer ce voyage intellectuel.
Alors, qu’est-ce que je fais ? Je commence par prendre un ensemble de données empiriques. Chaque variable empirique est un phénomène stimulant distinct. Je leur assigne des coefficients aléatoires de pondération et je sur la base de ces valeurs pondérées je calcule, à travers une fonction d’activation neurale, la valeur d’une variable de résultat. Je compare, par soustraction, cette valeur avec une valeur espérée de référence. Je multiplie la différence par la dérivée locale de la fonction neurale d’activation et je considère le résultat comme une erreur locale. Je produis donc une variation momentanée d’une certaine structure logique et je compare cette variation à un état de référence. La spécificité de chaque variation locale réside dans le mélange unique des coefficients de pondération des phénomènes stimulants.
A ce stade-là, j’expérimente avec la perception proprement dite. C’est ça, la perception. Je suis confronté à un certain nombre des phénomènes de réalité. Le trait important d’un perceptron est que c’est moi, son utilisateur, donc une Intelligence Externe, qui détermine la nature de ces phénomènes. C’est moi qui donne la distinction entre la variable A et la variable B etc. Dans la perception réelle, la définition des phénomènes se fait par expérimentation. Je marche à travers ce gros truc hétérogène et j’essaie voir quelle est la meilleure façon de ne pas buter constamment contre ces trucs plus petits. En fin de compte, il semble approprié de distinguer le gros truc comme « forêt » et les petits trucs comme « arbres », mettre en place des règles précises de distinguer un arbre d’un autre ainsi que pour distinguer les espaces libres entre eux.
Le perceptron que j’utilise est donc une structure phénoménologique prédéterminée. Je viens de dire que c’est moi, son utilisateur, qui la prédétermine, mais ce n’est pas tout à fait vrai. Mes variables d’entrée correspondent aux données quantitatives que je peux assembler. Dans la structure logique de mon perceptron, je reproduis celle des bases des données publiquement accessibles, comme celle de la Banque Mondiale.
Ce que j’expérimente avec, à travers le perceptron, est donc une structure phénoménologique prédéterminée par ces bases des données. Si la structure phénoménologique est donnée comme exogène, que reste-t-il à expérimenter avec ? Allons pas à pas. Ces coefficients aléatoires de pondération que mon perceptron attribue aux variables d’entrée reflètent l’importance relative et temporaires des phénomènes que ces variables représentent. Le tout – le perceptron – est censé faire quelque chose, produire un changement. L’importance des phénomènes reflète donc ce qu’ils font dans ce tout. Le phénomène donné joue-t-il un rôle important ou pas tout à fait ? Allons donc voir. Attribuons à ce phénomène des rôles d’importance variable et observons le résultat final, donc la variable de résultat.
Ici, il est bon de rappeler un truc à la frontière des maths et de la vie réelle. Les valeurs de variables d’entrée représentent l’état temporaire des processus qui produisent ces variables. Ma taille en centimètres reflète le processus de la croissance de mon corps, précédé par le processus de mélange de mon matériel génétique, dans les générations de mes ancêtres. La consommation d’énergie par tête d’habitant reflète le résultat temporaire de tout ce qui s’est passé jusqu’alors et qui avait une influence quelconque sur ladite consommation d’énergie. Lorsque le perceptron expérimente avec l’importance des rôles respectifs des variables d’entrée, il expérimente avec l’influence possible des différentes séquences d’évènements.
L’apprentissage d’un perceptron devrait conduire à un état de minimisation d’erreur locale, lorsque la combinaison d’influences respectives de la part des variables d’entrée rend possible une approche asymptotique de la fonction d’activation neuronale vers la valeur espérée de la variable de résultat. Ce résultat d’apprentissage est une sorte de perception optimale par rapport à ce que je veux. Monsieur désire une efficience énergétique de l’économie nationale proche de $10 constants 2011 par 1 kilogramme d’équivalent pétrole consommé ? Rien de plus facile, répond le perceptron. Monsieur prend une population plus grande de 3 millions d’habitants, donc plus de 8%, avec un zest de plus en termes de consommation d’énergie par tête d’habitant, quoi que ladite tête d’habitant va consommer un peu moins de Produit Intérieur Brut par an et voilà ! Monsieur a bien les (presque) 10 dollars par kilogramme d’équivalent pétrole. Monsieur désire autre chose ?
Le perceptron simule donc la perception mais en fait il fait autre chose : il optimise la connexion fonctionnelle entre les variables. Ce type de réseau neuronal devrait plutôt s’appeler « expéritron » ou quelque chose de pareil, car l’essence de son fonctionnement c’est l’expérimentation qui tend vers une erreur minimale. Comment l’optimise-t-il ? C’est le mécanisme de rétropropagation. Le perceptron calcule l’erreur locale d’estimation et ensuite – c’est-à-dire dans la prochaine ronde d’expérimentation – il ajoute cette erreur à la valeur des variables d’entrée. Dans la prochaine ronde d’expérimentation, la valeur de chaque variable d’entrée sujette à la pondération aléatoire va être la valeur initiale plus l’erreur enregistrée dans la ronde précédente.
Une seule et même erreur est ajoutée à l’estimation quantitative de chaque phénomène distinct de réalité. Le fait d’ajouter l’erreur est vaguement équivalent à la mémoire d’une entité intelligente. L’erreur est une pièce d’information et je veux l’emmagasiner pour qu’elle serve mon apprentissage. Dans la version de base de mon perceptron, chaque phénomène de réalité – chaque variable d’entrée – absorbe cette information d’exactement de la même façon. C’est une mémoire concentrée sur les échecs et voilà la grosse différence par rapport à l’intelligence humaine. Cette dernière aime apprendre sur des succès. Une tentative réussie immédiatement donne une gratification à notre système nerveux et ça marche nettement mieux que l’apprentissage à travers des échecs.
Question : comment construire un réseau neuronal qui apprend sur des succès plutôt que sur des échecs ? Un échec est relativement facile à représenter mathématiquement : c’est une erreur d’estimation. Un succès veut dire que j’ai essayé d’avancer dans une direction et ça a marché. Disons que j’ai une variable chère à mon cœur, comme l’efficience énergétique d’économie nationale, donc ces dollars de Produit Intérieur Brut obtenus avec 1 kilogramme d’équivalent pétrole. J’espère d’avancer par X dollars, mais grâce à mon génie indéniable tout comme avec l’aide de la Providence divine, j’ai avancé par Y dollars et Y > X. Alors la différence Y – X est la mesure de mon succès. Jusqu’à ce point, ça à l’air identique à ce que fait le perceptron classique : ça soustrait.
Question : comment utiliser la différence d’une soustraction comme quelque chose à amplifier comme succès au lieu de la minimiser en tant que la mesure d’un échec ? Réponse : il faut utiliser une fonction d’activation neurale qui amplifie un certain type de déviation, la positive. La première idée qui me vient à l’esprit est de mettre dans le perceptron une formule logique du type « si Y – X > 0, alors fais A, mais en revanche si Y – X ≤ 0, alors fais B ». Ça a l’air enfantin à première vue. Seulement si ça doit se répéter 5000 fois, comme je le fais d’habitude avec ce perceptron, çççaa raaalentiîîit terriblement. Je pense à quelque chose de plus simple : et si je calculais immédiatement la valeur exponentielle de l’erreur locale ? Si Y – X > 0, alors la valeur exponentielle va être nettement supérieure à celle de Y – X ≤ 0. Je teste avec l’Autriche et les données sur son efficience énergétique. Non, ça marche pas : j’obtiens une variable de résultat rigoureusement égale à la valeur espérée déjà après 30 rondes d’expérimentation – ce qui est pratiquement la vitesse de la lumière dans l’apprentissage d’un perceptron – mais les variables d’entrée prennent des valeurs ridiculement élevées. Tenez : il leur faudrait être 42 millions au lieu de 8 millions, à ces Autrichiens. Impensable.
Bon. Bon gré mal gré, faudra que j’aille dans cette formule « si A, alors B, sinon va te faire … ». Tenez-vous bien, chers Autrichiens. J’observe et je raisonne. Ce que vous avez accompli vraiment, entre 1990 et 2014, c’est passer de 9,67 dollars de PIB par kilogramme d’équivalent pétrole à 11,78 dollars, donc une différence de 1,22 dollars. Si mon perceptron rend une erreur positive supérieure à cet accomplissement, je le laisse la rétropropager sans encombre. En revanche, tout ce qui n’est pas un succès est un échec, donc toute erreur en-dessous de ce seuil de référence, y compris une erreur négative, je la divise par deux avant de la rétropropager. J’amplifie des succès et je réduis l’impact mémorisé des échecs. Résultat ? Tout devient plus petit. L’efficience énergétique après les 5000 rondes expérimentales est à peine plus grande qu’en 1990 – 9,93 dollars – la population se rétrécit à moins de 3 millions, la consommation d’énergie et le PIB par tête d’habitant sont coupés par 4.
Ça alors ! Lorsque je parlais d’apprentissage à travers les succès, je m’attendais à quelque chose de différent. Bon. Je mets une muselière sur mon perceptron : tout en laissant l’apprendre sur les succès, comme dans le cas cité, j’ajoute la composante d’apprentissage sur la cohésion mutuelle entre les variables. Consultez « Ensuite, mon perceptron réfléchit » ou bien « Joseph et le perceptron » pour en savoir plus sur ce trait particulier. Ça se réfère à l’intelligence collective des fourmis. Peu ambitieux mais ça peut marcher. Résultat ? Très similaire à celui obtenu avec cette fonction particulière (apprentissage sur cohésion) et avec la rétroprogation de base, donc vers l’échec minimal. Faut que j’y réfléchisse.
Je continue à vous fournir de la bonne science, presque neuve, juste un peu cabossée dans le processus de conception. Je vous rappelle que vous pouvez télécharger le business plan du projet BeFund (aussi accessible en version anglaise). Vous pouvez aussi télécharger mon livre intitulé “Capitalism and Political Power”. Je veux utiliser le financement participatif pour me donner une assise financière dans cet effort. Vous pouvez soutenir financièrement ma recherche, selon votre meilleur jugement, à travers mon compte PayPal. Vous pouvez aussi vous enregistrer comme mon patron sur mon compte Patreon . Si vous en faites ainsi, je vous serai reconnaissant pour m’indiquer deux trucs importants : quel genre de récompense attendez-vous en échange du patronage et quelles étapes souhaitiez-vous voir dans mon travail ?
One thought on “Tenez-vous bien, chers Autrichiens”