Chapter Content

Calculating...

Alors, chapitre sept, hein... On va parler de "méta", un truc un peu abstrait, mais super important. En gros, c'est l'idée de se mettre à l'extérieur d'un système pour pouvoir l'observer et le comprendre. Un peu comme... euh... quand on dit "méta-données", c'est des données sur les données, quoi. Ça décrit le contenu, le format, la structure... ça aide à vérifier que tout est bien organisé.

Et puis, il y a la "méta-analyse". Là, au lieu de regarder une seule étude, on combine les résultats de plusieurs pour avoir une conclusion plus solide, statistiquement parlant. C'est un peu comme si on prenait plusieurs photos d'un paysage, et qu'on les assemblait pour avoir une vue d'ensemble plus précise.

L'idée, c'est d'essayer de trouver une vérité plus profonde, plus universelle, que ce qu'on peut voir dans un seul exemple. Chaque étude, elle a ses propres biais, ses propres limitations. Donc, en allant "méta", on cherche la vérité cachée, latente, au cœur du système. Latent, ça veut dire... caché, pas étiqueté. Des structures latentes, elles existent, hein, même si on n'a pas de mots pour les décrire.

C'est super important parce que, en fait, c'est comme ça qu'on crée des abstractions. Comment les gens font des abstractions dans leur tête ? Ils repèrent des similarités entre des choses qui, à première vue, sont complètement différentes. Une fois qu'on a vu les points communs, on peut créer une catégorie plus générale, un concept plus abstrait.

Mais ça, on ne peut pas le faire de l'intérieur du système. Si on reste coincé à l'intérieur, on ne peut pas voir les similarités entre les différentes parties. Il faut prendre du recul, se mettre à l'extérieur, pour pouvoir les remarquer. C'est pour ça qu'il faut "aller méta" pour créer des abstractions. C'est un processus qui regarde lui-même et qui recolle les morceaux.

Et c'est pas juste pour les idées, hein. Pour les objets physiques aussi. Les humains n'auraient pas pu inventer des outils plus sophistiqués s'ils n'avaient pas pu repérer des similarités. Pensez à un levier de vitesse dans une voiture. Il coordonne plein de pièces à l'intérieur du moteur, mais on n'aurait jamais pu l'inventer si on n'avait pas pu imaginer comment toutes ces pièces pouvaient travailler ensemble.

Attention, "méta", ce n'est pas juste un autre niveau d'abstraction. Les abstractions, elles ne parlent pas d'elles-mêmes. Elles existent, c'est tout. Mais la *création* d'une abstraction, c'est un processus qui se passe à l'extérieur du système. L'abstraction, elle est à l'intérieur, le "méta", il est à l'extérieur.

Bon, d'accord, "aller méta" pour créer des objets physiques, on comprend bien. Mais comment ça marche pour les abstractions créées par la nature ? J'ai dit avant que le progrès par abstraction est absolu, que tout système qui évolue pour résoudre des problèmes plus complexes doit créer des niveaux d'abstraction de plus en plus sophistiqués. Et j'ai dit aussi que c'est la nature qui fait ça, grâce à l'émergence. Les structures émergentes, c'est des niveaux d'abstraction physique qui compressent l'information pour résoudre des problèmes complexes. Mais comment la nature fait pour "aller méta" et créer ces abstractions ?

Pensez aux modèles d'apprentissage profond, le "deep learning". Ça marche, pas grâce à des règles programmées explicitement, mais parce qu'il se passe quelque chose à l'intérieur de ces modèles qui arrive à transformer les entrées en sorties. C'est un peu une boîte noire, hein. On ne comprend pas exactement comment ça marche. Mais on sait qu'il y a des niveaux d'abstraction qui émergent et qui aident à la conversion.

Par exemple, pour la reconnaissance faciale, le "deep learning" utilise des niveaux d'abstraction de plus en plus sophistiqués pour extraire des caractéristiques de plus en plus complexes à partir de l'image. D'abord, le système extrait des éléments basiques comme les bords, les coins, les textures. Ensuite, il combine ces éléments pour extraire des motifs plus complexes comme les yeux, le nez, la bouche. Et puis, ça continue, jusqu'à ce que le système arrive à comprendre l'expression du visage, la pose... Finalement, les abstractions capturent l'essence du visage.

Et tout ça, c'est possible grâce à l'aspect auto-référentiel du "deep learning". L'auto-référence, dans l'IA, elle vient de la façon dont les systèmes mettent à jour leur configuration interne en utilisant les informations des passages précédents. Le modèle fait des suppositions, et il y a toujours une marge d'erreur. Il utilise cette erreur pour améliorer sa prochaine supposition. Encore et encore, le réseau fait des essais et ajuste sa configuration en fonction de la justesse de ses réponses. Pour construire un bon modèle, il ne faut pas connaître tous les détails de son fonctionnement, il faut mettre en place un bon système d'auto-référence.

C'est pour ça que le "deep learning", c'est une version de "aller méta". C'est un système qui utilise des boucles de rétroaction pour se regarder et vérifier si tout va bien. C'est complètement différent d'essayer de fixer des paramètres explicitement ou de programmer des règles. Quelles que soient les règles qui finissent par exister dans la solution, elles sont apparues automatiquement, pas par une programmation délibérée. C'est pour ça qu'une approche auto-référentielle est si fondamentalement différente. On accepte de ne pas tout comprendre, on se met à l'extérieur et on mise sur la variation, l'itération et la sélection pour arriver à la bonne solution. C'est l'opposé de la conception.

Comme les valeurs des paramètres internes d'un modèle d'IA sont trouvées automatiquement, la conception délibérée ne se fait qu'à l'extérieur. Les hyperparamètres, c'est les choix que font les humains pour configurer la phase d'entraînement du "deep learning" du mieux possible. C'est un autre problème, qui se situe dans l'espace des valeurs possibles des hyperparamètres. Et ce niveau supérieur doit fonctionner avec la même logique d'actions uniquement externes. On ne sait pas comment fixer les meilleures valeurs d'hyperparamètres. Pour les trouver, il faut "aller méta", essayer plein de valeurs différentes jusqu'à ce qu'on trouve les bonnes. Il faut expérimenter avec différents taux d'apprentissage, différentes tailles de lots, différents nombres d'époques, différentes architectures de réseau, jusqu'à ce qu'on trouve la bonne combinaison. Quand on "va méta", on apprend à apprendre.

Dans l'IA, on utilise des méthodes comme l'optimisation des hyperparamètres (HPO), le "meta-learning" et la recherche d'architecture neuronale (NAS). Les différences entre ces méthodes ne sont pas importantes ici. L'important, c'est que ce sont toutes des façons de se mettre à l'extérieur du problème et d'opérer de façon externe pour trouver ce qui marche.

Tout comme la méta-analyse synthétise différentes études pour essayer d'apprendre quelque chose de plus profond que ce qu'une seule étude peut montrer, le "meta-learning" dans l'IA essaie de trouver quelque chose qu'aucun modèle seul n'aura : une structure latente qui transforme les entrées en sorties de façon généralisée et efficace. Encore une fois, l'accent est mis sur apprendre à apprendre, plutôt que d'apprendre une chose spécifique.

Pour que les systèmes d'apprentissage profond fonctionnent bien, ils doivent faire apparaître des abstractions à l'intérieur de leurs modèles, et ces abstractions ne peuvent pas être réalisées sans trouver des moyens de se mettre continuellement à l'extérieur du système. Et ce n'est pas seulement pour le "deep learning". C'est vrai pour toute solution complexe qu'on construit. C'est le fait d'"aller méta" qui mène aux abstractions qui transforment les entrées en sorties de façon flexible et déterministe. Les problèmes difficiles ne peuvent pas être résolus sans "aller méta".

Les problèmes ont une structure. Cette structure vient des niveaux d'abstraction qui définissent un problème donné. Le problème ultime dans la nature, c'est la survie. La vie doit essayer de se préserver contre les accidents et les épreuves. Mais la survie, c'est juste la version la plus élevée de tous les défis de la vie. À un niveau d'abstraction inférieur à la survie, on trouve la nourriture, l'eau et l'abri. Et encore plus bas, on trouve les activités qui servent à résoudre les problèmes de niveau supérieur. Pour obtenir de la nourriture, les animaux doivent chasser, fourrager, récupérer des carcasses, filtrer, brouter, creuser, tendre des embuscades... et, pour certains, fabriquer des outils. Pour trouver de l'eau, les animaux migrent, reconnaissent la végétation, profitent de la pluie et adoptent toute une série de comportements exploratoires. Les abris sont soit trouvés, soit créés. Le hibou des terriers s'installe dans des terriers abandonnés creusés par d'autres animaux, comme les écureuils. On peut continuer à définir des niveaux d'abstraction inférieurs au problème de creuser un terrier pour s'abriter. Si aucun terrier d'écureuil abandonné n'est disponible, les hiboux des terriers utilisent leur bec et leurs serres pour creuser leur propre trou, ce qui présente un nouvel ensemble de défis spécifiques de niveau inférieur. Le hibou doit choisir des sites où le sol est suffisamment meuble, comme les zones sableuses ou limoneuses, et trouver des moyens de creuser des tunnels de plusieurs mètres de profondeur pour assurer la sécurité de l'abri. Et ainsi de suite.

Tous les défis présentés à la vie ont une structure, une sorte de hiérarchie. Ça fait un peu penser à la pyramide de Maslow, mais là, je parle spécifiquement des niveaux d'abstraction et de leur relation avec le calcul de la nature. On peut toujours décomposer un problème en niveaux d'abstraction imbriqués, les niveaux inférieurs étant subsumés dans la catégorie supérieure du défi.

Comme toutes les solutions dans la nature sont des configurations de matière qui résolvent les problèmes auxquels elles sont confrontées, on peut considérer les solutions de la nature comme des reflets de la structure des problèmes. Et je ne parle pas seulement d'une façon intuitive, mais aussi des motifs spécifiques qui se forment. Les motifs qu'on voit dans la fougère, l'étoile de mer et le récif de corail prennent la structure inévitable qui ressemble au problème qu'ils résolvent. De tous les motifs qu'on voit dans la nature, comme les fractales, les spirales, les ondes, l'empilement hexagonal, les pavages, les ramifications dendritiques, etc., on regarde des reflets de la structure des problèmes.

Soyons encore plus littéral. Si on regarde la fractale imbriquée d'un brocoli romanesco ou la disposition en spirale des graines dans un tournesol, on regarde la façon dont l'ensemble des défis environnementaux de cet organisme sont organisés par abstraction. L'environnement ne demande pas seulement au tournesol de survivre, il demande que des niveaux de défi plus profonds soient résolus, pour que le but ultime de survie soit réalisé.

Les objets qu'on voit dans la nature sont la conséquence des chevauchements entre les configurations de la matière et la structure des problèmes. Imaginez qu'on trace une ligne entre les différents niveaux du brocoli romanesco et les niveaux d'abstraction imbriqués dans le problème que cet organisme résout. C'est vrai pour la matière inorganique autant que pour la vie. Les sels, les métaux, les roches, les rivières et les montagnes sont toutes des configurations qui répondent aux structures inhérentes aux problèmes qu'elles résolvent. Dans ce sens, les solutions de la nature ne sont pas si distinctes de leur environnement, elles font plutôt partie du chevauchement holistique entre le problème et la solution.

Comme je l'ai dit avant, définir les problèmes de cette façon n'est pas une réification de la perception mentale. Ce n'est pas une théorie fantaisiste qui projette des constructions mentales sur le monde physique. Si le réductionnisme était valide, ça pourrait être le cas. Mais sous la complexité, ça ne l'est pas. Je ne suis pas en train de présenter un ensemble causal d'étapes déterministes qui racontent une histoire de la façon dont la matière passe de petits morceaux à de gros morceaux pour produire les motifs qu'on voit dans la nature. Je plaide plutôt pour la nature inévitable de la résolution de problèmes que la nature accomplit, et qui est tout à fait conforme à ce qu'on sait de l'information, du calcul et de l'évolution. Il est tout à fait raisonnable de voir les motifs dans la nature comme des reflets inévitables de la structure des problèmes.

Tout ça témoigne de la connexion entre l'abstraction informationnelle et l'abstraction physique. La structure des problèmes nous présente une version informationnelle de l'abstraction, celle qu'on utilise dans notre esprit pour définir notre monde et se déplacer dans la vie. Les structures physiques qu'on voit dans la nature nous présentent la version physique de ces abstractions. Pour que la nature produise ses roches, ses rivières, ses montagnes, ses étoiles de mer, ses hiboux et ses castors, elle doit manifester des niveaux physiques d'abstraction qui se chevauchent avec les abstractions informationnelles qui constituent leurs environnements.

La nature est un moteur de calcul bien plus puissant que tout ce que les humains peuvent concevoir. Même si nos systèmes d'IA ont des aspects d'auto-référence et d'abstraction, la nature pousse ça à l'extrême. Avant de tenir compte de la version de la nature de "aller méta", regardez encore notre tentative de faire ça avec la technologie de l'IA. Comme je l'ai déjà dit, on ne peut pas fixer les paramètres internes délibérément, alors on opère de l'extérieur en fixant des valeurs liées à l'entraînement. On choisit le taux d'apprentissage, la taille des lots, le nombre d'époques, le nombre de couches, le nombre de neurones par couche, etc. Ces valeurs ne dirigent rien à l'intérieur du modèle, elles aident seulement à structurer le processus utilisé pour apprendre. On peut considérer ces valeurs comme le premier niveau de "aller méta", puisqu'elles existent à l'extérieur des entrailles du système. Obtenir les meilleures valeurs devrait produire les meilleures abstractions possibles à l'intérieur.

Mais quelles devraient être ces valeurs ? C'est un problème en soi, un méta-problème. Là, on est moins intéressé à connaître les meilleurs paramètres d'un modèle individuel, et plus à apprendre comment apprendre les meilleurs paramètres de n'importe quel modèle. Comme je l'ai mentionné avant, on aborde ce méta-problème en utilisant des techniques comme l'optimisation des hyperparamètres (HPO), le "meta-learning" et la recherche d'architecture neuronale (NAS). Même si une seule de ces techniques porte le titre de "meta-learning", elles essaient toutes de résoudre le méta-problème de trouver les meilleures valeurs externes possibles (dans un délai raisonnable).

Une approche consiste à combiner plusieurs modèles différents pour apprendre et déployer un seul meilleur modèle appelé méta-apprenant. L'idée, c'est qu'un seul modèle sera trop étroit pour montrer une intelligence généralisée, mais plusieurs modèles pourraient apprendre quelque chose de plus latent, fournissant une entité plus puissante. Mais il y a une limite au nombre de modèles qu'on peut combiner dans un groupe avant que le défi ne devienne insoluble. Chaque modèle doit être entraîné individuellement avec des données, ce qui implique une série d'expériences et de validations. Mais le problème de niveau supérieur du "meta-learning" doit aussi être fait avec des expériences et des validations, pour voir quelle combinaison de modèles fonctionne le mieux. Ce problème supérieur a son propre ensemble de valeurs de paramètres qui doivent être déterminées. Mais pourquoi s'arrêter là ? On pourrait combiner différents cadres de "meta-learning" dans de nouvelles combinaisons, qui auraient leur propre ensemble de paramètres externes, pour encore une fois être expérimentées et validées.

L'espace des possibilités associé à la combinaison de choses dans des groupes de plus en plus grands explose en tailles qui sont au-delà de l'astronomique. Ça remet en question la faisabilité de "aller méta" pour concevoir des choses complexes. Même si on accepte la limitation fondamentale de la conception, est-ce que la conception n'est pas notre seule chance de rendre les efforts de construction faisables ? Bien sûr, on pourrait vouloir embrasser des niveaux massifs d'essais et d'erreurs juste pour voir ce qui marche, mais faire autant d'expériences a des exigences de calcul qui semblent rendre cette approche ultimement impossible.

Mais la conception ne peut pas couper à travers l'explosion combinatoire extrême des possibilités. La conception est basée sur une prémisse fondamentalement invalide quand il s'agit de choses complexes, comme on l'a vu tout au long de ce livre. La conception ne peut pas être la réponse. Mais il semble à première vue qu'opérer au niveau méta ne peut pas atténuer les exigences de calcul de la résolution de problèmes à l'interne. Ce n'est pas parce qu'on se met à l'extérieur du système que les problèmes de niveau inférieur n'ont pas besoin d'être résolus. Ça soulève une inquiétude. Comment "aller méta" peut-il être une façon de construire des choses ?

Comme toujours, la nature a la réponse. La nature peut atteindre des niveaux de méta extrêmement élevés pour façonner des écosystèmes entiers. Si on utilise le système de classification taxonomique, on peut dire que la nature rassemble des organismes pour former des espèces, des espèces pour former des genres, des genres pour former des familles, des familles pour former des ordres, des ordres pour former des classes, des classes pour former des phylums, des phylums pour former des règnes et des règnes pour former des domaines. Ce sont tous des niveaux différents d'abstraction physique (des groupes d'organismes vivants) qui travaillent ensemble pour résoudre un problème donné. Et chacun de ces niveaux est façonné automatiquement, par le mécanisme de la nature d'auto-référence et de création d'abstraction.

La nature peut "aller méta" beaucoup plus efficacement que l'ingénierie humaine. La charge de calcul que la nature manie est stupéfiante. La nature continue de se mettre à l'extérieur d'un niveau donné et de trouver les paramètres qui marchent pour créer le niveau suivant.

Bien sûr, les ressources de calcul de la nature sont virtuellement infinies comparées à ce que les humains ont à leur disposition. La nature a une version extrême de traitement parallèle distribué, grâce à des milliards de ses processeurs qui travaillent simultanément à l'intérieur d'un groupe. Même si chaque pièce d'un système naturel (par exemple, une cellule, un neurone) ne fait que des calculs simples, leur comportement collectif résout des fonctions fantastiquement complexes. La nature opère aussi sur des échelles de temps beaucoup plus grandes que l'innovation humaine. L'évolution prend des millions d'années pour façonner ses solutions grâce à la sélection naturelle. La nature peut explorer un espace des possibilités absolument énorme, en utilisant une variation massive, une itération massive et une sélection massive, le tout d'une façon hautement parallèle.

Il y a aussi une grande différence en termes d'efficacité énergétique, les systèmes biologiques étant incroyablement efficaces en énergie comparativement à tout ce que les humains créent. Le cerveau humain ne consomme qu'environ 20 watts de puissance, alors que les superordinateurs modernes et les systèmes d'apprentissage profond ont une consommation d'énergie plusieurs ordres de grandeur plus grande. Pensez à l'efficacité du cerveau humain en matière de vision, de contrôle moteur et de raisonnement comparée à l'IA, même s'il ne consomme que 20 watts. L'efficacité biologique est dans sa propre catégorie.

La biologie est aussi profondément intégrée au monde physique. Tous les niveaux d'abstraction opèrent en communication directe avec leurs environnements. Les calculs qui convertissent les entrées en sorties se produisent comme des processus physiques à l'intérieur du système lui-même, et non comme des modèles indirects du comportement. Il n'est donc pas si surprenant que la nature puisse "aller méta" beaucoup plus efficacement que les humains. La nature a à sa disposition le parallélisme, le temps, l'efficacité énergétique et la profonde intégration physique pour se mettre à l'extérieur de plusieurs niveaux d'un système donné et créer ses abstractions émergentes imbriquées.

Alors, comment les humains peuvent-ils opérer comme la nature le fait, sans avoir des ressources de calcul qui approchent celles de la nature ? Comment peut-on façonner des objets vraiment complexes qui résolvent les problèmes comme la nature le fait, si on ne peut pas répondre aux demandes de calcul naturelles ?

Une réponse évidente, c'est de pirater la nature là où elle se trouve. Par exemple, la biologie synthétique cherche à concevoir le matériel génétique des organismes, comme les virus et les bactéries, pour qu'ils aient des caractéristiques souhaitables. Ça a été fait dans des domaines comme la bioremédiation, la bioproduction de produits pharmaceutiques, les biocarburants, et même changer les bactéries pour qu'elles fassent des opérations logiques simples pour le calcul, ou qu'elles agissent comme des actionneurs biologiques à l'intérieur de minuscules machines. La biologie synthétique contourne le besoin de concevoir l'émergence parce qu'on tire profit de caractéristiques qui ont déjà évolué.

Le problème fondamental ici, c'est un problème de mauvaise application. Même s'il y aura quelques succès à pirater les solutions existantes de la nature, la réalité, c'est que la nature évolue de la façon dont elle le fait pour une raison. Et cette raison ne peut pas être définie en termes réductionnistes simples. Tout ce qu'on peut dire, c'est que les solutions de la nature sont ce qu'elles sont parce que c'est ce qui a survécu. La composition d'un objet naturel est un objet fantastiquement complexe qui résout son ensemble de problèmes d'une façon qu'on ne connaîtra jamais. Essayer de détourner une pièce d'une solution naturelle pourrait apporter un avantage limité, mais ça viendra avec tous les problèmes de la conception sous la complexité : ça va garantir la production d'effets secondaires imprévus qui vont probablement réduire l'efficacité d'une solution à long terme.

Comme je l'ai dit dans ce livre, on doit concevoir l'émergence nous-mêmes, et non simplement réutiliser la nature pour des problèmes qu'elle n'était pas censée résoudre. Nos créations doivent établir leurs propres complexités, et arriver à leurs propres structures et comportements émergents, basés sur les environnements dans lesquels on les place. Il y a de profondes dépendances internes qu'on ne peut pas voir, qui permettent aux solutions naturelles de fonctionner efficacement. Ces éléments internes doivent se matérialiser comme des abstractions physiques construites par l'auto-référence automatique.

Pour concevoir l'émergence nous-mêmes, on doit chercher à maximiser le parallélisme, l'efficacité énergétique et la profonde intégration physique qu'on voit dans la nature. Sous la conception, ce n'est pas possible. La conception nous force à prendre des décisions spécifiques et détaillées qui deviennent des versions hautement contraintes et non naturelles du parallélisme, de l'efficacité énergétique et de la profonde intégration physique nécessaires.

Pensez à la façon dont le chercheur ou l'ingénieur en IA veut façonner délibérément des systèmes en prenant des décisions explicites sur la façon dont ces systèmes fonctionnent, se comportent et interagissent avec leurs environnements. Il veut identifier et collecter des sources de données pertinentes pour l'entraînement et l'évaluation. Il cherche à choisir et à concevoir des algorithmes basés sur des exigences de calcul spécifiques. Il vise à concevoir les architectures de réseaux neuronaux, en prenant des décisions sur les couches, les fonctions d'activation, les connexions et les techniques d'optimisation, tout ça basé sur des principes de conception, des meilleures pratiques et des théories mathématiques.

Mais la vérité, c'est que les plus grands progrès dans le "deep learning" ne viennent pas de choix de conception spécifiques, ils viennent d'avoir plus de données et plus de puissance de calcul pour résoudre le problème. En fait, l'architecture spécifique est beaucoup moins importante que ce que le paradigme actuel suggère. Ce n'est pas que des structures spécifiques ne sont pas importantes, c'est qu'elles ne surgissent pas d'un raisonnement et d'une conception délibérés comme on le suggère dans les articles de recherche. Les structures qui finissent par marcher sont largement un sous-produit de plus de données et de plus de puissance de calcul.

C'est exactement ce à quoi on devrait s'attendre quand on construit des choses complexes. La recherche en IA est efficace pour des raisons que la plupart des chercheurs en IA ne semblent pas comprendre. Ça peut sembler une affirmation étrange pour plusieurs, mais on voit souvent ce motif. Il est facile pour les gens de croire que leurs choix de conception sont responsables du progrès, alors qu'en fait le progrès sous la complexité a beaucoup plus à voir avec le hasard et la chance qu'avec la conception. Et en fait, c'est une affirmation rigoureuse, qui est tout à fait conforme aux propriétés indéniables de la façon dont les systèmes complexes évoluent.

La conception sous la complexité est correctement comprise comme quelque chose qui interfère avec la création de bonnes solutions. Les choix de conception privent les systèmes complexes de leurs subtilités naturelles et de leurs dépendances opaques. Ils interfèrent avec le type de communication interne entre les pièces qui doit se produire pour matérialiser ce qui marche. La conception limite aussi notre capacité à explorer de vastes espaces des possibilités à cause de la rigidité que la conception force dans nos solutions.

Bien sûr, la conception des systèmes d'IA n'est pas comme la conception de l'ingénierie traditionnelle. Encore une fois, l'IA est notre meilleur exemple de se mettre à l'extérieur des systèmes et de laisser les choses converger. Mais notre niveau de méta est beaucoup trop près des entrailles de nos solutions. Alors que la nature atteint tout le chemin jusqu'au domaine sous la classification taxonomique, on opère encore juste à l'extérieur de l'organisme individuel. Si tout ce qu'on voulait, c'était un modèle de base qui prédit des choses définies de façon étroite, ça pourrait aller. Mais dans la quête d'atteindre quelque chose qui ressemble à l'intelligence générale, ça ne peut pas marcher. Plus notre solution prévue est sophistiquée et puissante, plus de la complexité authentique on doit créer.

Pour atteindre le type de parallélisme, d'efficacité énergétique et de profonde intégration physique nécessaires, on doit opérer à des niveaux bien plus méta que la solution qu'on cherche. Si on veut construire un cerveau, on n'y arrivera pas en essayant d'architecturer un cerveau. Même s'il semble pratique de définir l'intelligence humaine comme quelque chose qui se produit à l'intérieur de la tête d'un individu, on est une espèce sociale profondément connectée. Il n'y a pas d'intelligence sans des niveaux d'agrégation qui surpassent de loin un seul réseau neuronal biologique. Le méta doit atteindre bien plus haut que l'organisme pour faire le meilleur organisme. La conception nous garde trop près de l'organisme.

Quand on reste trop près de la chose qu'on construit, comme dans la conception, les essais et erreurs deviennent insolubles. C'est parce que les choses qu'on essaie de mélanger et d'assortir pendant l'expérimentation sont trop définies. Mais quand on déplace notre focus à la surface, en utilisant seulement l'énoncé du problème de niveau le plus élevé et le plus général, les éléments internes doivent se débrouiller. C'est comme ça que la complexité marche.

Plus un problème est difficile, plus son espace des possibilités est grand et complexe, et cet espace doit être exploré. On a vu au chapitre 4 qu'à mesure que la difficulté d'un problème augmente, plus notre façon de résoudre le problème doit devenir douce, et moins analytique on peut être sur la façon dont on aborde la recherche.

On peut considérer les heuristiques et la reconnaissance de motifs comme des outils qui nous permettent de trouver des choses à l'intérieur d'espaces des possibilités massifs sans avoir à faire beaucoup de recherche. Mais ça ne marche que si on les applique aux signaux de niveau le plus élevé qu'une situation complexe émet. Mais la conception nous force à définir la recherche en termes excessivement explicites. Elle ne tire pas profit de ce que la nature nous donne déjà. La conception nous fait essayer des essais et erreurs sur des constructions de niveau inférieur qui n'ont pas vraiment la signification qu'on leur donne. Ce n'est pas à nous de savoir comment les choses interagissent, seulement que les interactions vont se produire au besoin si plus du système est forcé de survivre à des facteurs de stress. Atteindre plus haut dans nos efforts méta, c'est amener la nature à se débrouiller naturellement.

Alors, comment peut-on opérer au niveau le plus élevé de méta sans tomber dans des limitations de calcul ? La réponse, c'est de 1) garder les énoncés de problèmes aussi généraux que possible (opérer à la surface), et 2) créer des éléments internes très flexibles plutôt que de concevoir des éléments spécifiques.

On garde la résolution de problèmes à la surface en ne maintenant que la cible de niveau le plus élevé avec laquelle on peut s'en sortir. Un exemple en IA serait de définir nos problèmes comme la construction d'une entité qui tient des conversations réalistes et utiles. C'est tout. Le paradigme d'aujourd'hui nous dit d'aller bien plus en profondeur, en décomposant un problème en son but, son public cible, sa portée de conversation, son intention, son contexte, sa gestion de l'ambiguïté, son ton et sa personnalité. Mais cette déconstruction d'un problème est réductionniste. On ne connaît pas ces éléments spécifiques, seulement que la solution entière doit résoudre la définition du problème la plus élevée. Décomposer un problème en éléments spécifiques va garantir la production d'une ingénierie inférieure sous la complexité.

Pour le deuxième point, on crée des éléments internes très flexibles en ne concevant pas d'éléments spécifiques. Pensez aux fonctions d'activation utilisées dans les réseaux neuronaux. Elles sont là pour introduire de la non-linéarité dans le modèle. On a plusieurs choix, chacun avec ses propres caractéristiques, avantages et inconvénients. On peut choisir sigmoïde, tangente hyperbolique, unité linéaire rectifiée (ReLU), ReLU avec fuite, ReLU paramétrique (PReLU), unité linéaire exponentielle (ELU), unité linéaire exponentielle à échelle (SELU), softmax, swish, gaussienne, etc. Essayer de mélanger et d'assortir ces possibilités avec toutes les autres variables qui pourraient être changées dans un réseau neuronal, c'est analogue à déplacer un seul cube dans un Rubik's Cube seulement pour brouiller nos mouvements précédents. Il y a tout simplement trop de choix possibles à ce niveau pour que les essais et erreurs soient faisables.

Mais imaginez maintenant qu'au lieu d'essayer de concevoir la meilleure fonction d'activation comme une chose isolée, on crée quelque chose de moins défini et de plus flexible. L'approche la plus proche qu'on ait en ce moment, c'est quelque chose qu'on appelle les fonctions d'activation apprenables. Ces fonctions incluent des paramètres qui sont ajustés pendant le processus d'entraînement, permettant à la fonction de changer sa forme dynamiquement. Que cette approche marche ou non n'est pas le point. La clé, c'est de ne pas essayer de concevoir la flexibilité, mais de mettre en place quelque chose qui change sa composition comme une partie d'un tout. Moins la chose est définie au sens réductionniste, mieux c'est. Tout comme les mitochondries perdent leur définition à l'extérieur d'une cellule, les fonctions d'activation ont un rôle qui ne peut pas être adéquatement défini à l'extérieur d'un réseau. Elles font partie d'une solution holistique dont la présence dans le groupe est ce qui compte. Ce n'est pas à nous de savoir à quoi devrait ressembler la fonction d'activation. Seulement que sa structure et sa fonction devraient émerger naturellement par elles-mêmes, alors qu'on reste seulement concerné par les cibles de niveau élevé.

Pour obtenir les meilleures fonctions d'activation, architectures de réseau, pipelines de prétraitement des données, fonctions de perte, algorithmes d'optimisation, etc., il ne faut pas les concevoir. Il faut les laisser se matérialiser en se concentrant seulement sur le niveau le plus élevé du problème qu'on essaie de résoudre. On doit atteindre le méta aussi haut que possible en maintenant des éléments internes flexibles.

Ça rend plusieurs scientifiques et ingénieurs mal à l'aise que le progrès soit mieux défini sous un tel manque de précision. Mais c'est comme ça que la complexité marche. Plus de données et de puissance de calcul jetées sur des constructions très flexibles et mal définies, c'est comme ça que les meilleures structures possibles vont émerger. Il suffit de regarder l'approche de la nature à la construction pour se rendre compte que c'est vrai. C'est ce que ça voudra dire de construire à l'ère de la complexité, si on le fait bien.

Il n'y a pas deux flocons de neige qui se ressemblent. En fait, c'est seulement vrai au sens détaillé. Si on zoome sur un flocon de neige individuel, on va voir un motif vraiment unique, marqué par sa cristallisation distincte. Comme avec l'empreinte digitale de quelqu'un, la structure détaillée qu'on voit de près n'appartient qu'à ce flocon de neige spécifique. Mais si on dézoome assez pour voir le flocon entier, on voit quelque chose de familier. Tous les flocons de neige peuvent être appelés "flocons de neige" parce qu'ils partagent un motif commun. Ce motif partagé n'est pas quelque chose qu'on peut définir explicitement. Si on demandait à sept artistes différents de dessiner l'essence d'un flocon de neige, leurs dessins se ressembleraient, mais ne seraient pas identiques. On comprend tous à quoi ressemble un flocon de neige, mais cette compréhension ne nous est pas donnée par une définition précise. C'est une structure latente qu'on connaît intuitivement.

L'essence de quelque chose, comme l'essence d'un flocon de neige, c'est ce qu'on cherche quand on apprend. Connaître un flocon de neige, ce n'est pas connaître un seul exemple de flocon de neige, mais observer plusieurs exemples et créer une abstraction non étiquetée dans notre esprit qui le définit. Apprendre, c'est comprendre le modèle caché profond auquel plusieurs exemples d'un phénomène adhèrent, mais ne manifestent jamais explicitement.

C'est pour ça qu'il n'y a pas de mots pour décrire ce qu'est l'essence de quelque chose. Si quelqu'un apprend à jouer du piano, à faire un "swing" de golf ou à développer des théories en mécanique quantique, il puise dans un modèle partagé caché parmi d'innombrables expériences. Ce n'est pas quelque chose qu'on peut décomposer en morceaux et enseigner directement aux autres. C'est pour ça que la vraie compétence ressemble plus à un sentiment qu'à quelque chose de descriptible. Si on peut l'expliquer précisément, ce n'est pas une vraie compétence ou on n'est pas si bon que ça.

C'est aussi pour ça que l'expérience est la seule façon d'atteindre la vraie compétence. Ce n'est pas qu'il faut continuer de voir la même chose, mais plutôt qu'il faut continuer d'expérimenter plusieurs exemples différents de la même chose latente. C'est seulement alors que les vérités invariantes seront reconnaissables, car ce sont elles qui persistent quand tout le reste change. Un pianiste doit jouer (ou mieux, composer) plusieurs chansons différentes pour que cette activité lui imprime ce que ça veut dire de jouer du piano. Le golfeur doit faire d'innombrables "swings", chacun légèrement différent, pour comprendre ce qui fait un bon "swing".

Le vrai apprentissage se produit, non pas en allant en profondeur dans une seule version de quelque chose, mais en s'exposant à plusieurs aspects différents de cette chose. C'est la structure non dite, intuitive et latente qu'on cherche. C'est ce qui survit à l'esprit, mais qui n'a pas de nom.

On peut prédire l'allure générale d'un flocon de neige, mais on ne peut pas

Go Back Print Chapter