Il y a une question qui touche au cœur de la façon dont les ordinateurs fonctionnent réellement, et qui n’est presque jamais posée : qu’avons-nous abandonné quand nous avons choisi le numérique plutôt que l’analogique ?
Les ordinateurs analogiques — ceux qui ont été des outils d’ingénierie sérieux jusque dans les années soixante — ne calculent pas. Ils sont le calcul. On câble un circuit dont le comportement électrique imite la physique du problème qu’on veut résoudre. Un condensateur intègre naturellement. Un couple résistance-inductance modélise naturellement un oscillateur amorti. Vous voulez connaître la trajectoire d’un obus d’artillerie ? Construisez un circuit dont la tension se comporte comme l’obus. Lisez la réponse sur un voltmètre. Le calcul se fait à la vitesse de l’électricité, en continu, à la manière dont la nature calcule les choses — parce qu’au sens littéral, ce que vous faites tourner, c’est la nature.
Les ordinateurs numériques ont renoncé à tout cela. Ils opèrent sur des nombres discrets, une opération après l’autre, par étapes. Ils ne savent pas intégrer. Ils ne peuvent pas représenter un signal continu — seulement une séquence d’instantanés. Ce qu’ils ont gagné en échange, c’est la programmabilité, la précision, et la capacité de faire tourner n’importe quel problème sur la même machine. Ce qu’ils ont perdu, c’est la capacité de faire du calcul infinitésimal à bas coût.
Toute l’histoire des mathématiques computationnelles depuis lors a été une longue négociation avec cette perte. Et l’outil le plus important dans cette négociation est quelque chose que la plupart des gens ont appris à l’université et oublié sur-le-champ.
I. La porte de Fourier.
L’intuition de Joseph Fourier, publiée dans sa Théorie analytique de la chaleur de 1822, était que tout signal — toute onde, tout motif, toute fonction raisonnable — peut être décrit comme une somme d’ondes sinusoïdales simples à différentes fréquences et amplitudes. Votre voix, enregistrée, ressemble à un gribouillis chaotique. Mais elle est secrètement une superposition de fréquences spécifiques : certaines hautes, certaines basses, chacune avec sa propre intensité. La transformée de Fourier révèle quelles fréquences sont présentes et avec quelle force. C’est ce que fait votre oreille interne en temps réel, et c’est pourquoi vous pouvez entendre un accord de do majeur comme trois notes distinctes plutôt que comme une seule onde de pression indéchiffrable.
La raison pour laquelle cela importe à la computation, c’est ce que cela fait à un problème particulier qu’on appelle la convolution.
Le mot convolution sonne technique, mais le concept est partout. Flouter une photo est une convolution. L’écho dans un audio est une convolution. La manière dont un signal radar s’étale sur un récepteur est une convolution. La calculer directement dans le domaine temporel — la façon naturelle d’aborder le problème, en regardant comment les signaux se recouvrent moment par moment — exige de faire glisser un signal sur l’autre et de sommer les produits en chaque point. Pour tout signal d’une longueur significative, c’est véritablement catastrophique : doublez la longueur du signal et vous quadruplez le travail. Sur un ordinateur numérique, c’est le genre de problème qui devrait prendre une éternité.
La triche de Fourier : transformez les deux signaux dans le domaine fréquentiel. Là, cette multiplication catastrophique à fenêtre glissante devient une multiplication ordinaire, élément par élément. Multipliez les deux signaux transformés. Transformez en sens inverse. Vous avez la réponse. Avec la Transformée de Fourier Rapide — l’algorithme de Cooley–Tukey publié en 1965, sans doute l’algorithme le plus important du vingtième siècle — l’aller-retour coûte le logarithme de ce qu’aurait coûté le calcul direct.
Ce n’est pas une approximation. C’est exact. Vous n’avez pas simplifié les mathématiques ; vous avez révélé que les mathématiques ont une apparence complètement différente selon la direction depuis laquelle on les aborde. Le même problème qui est un cauchemar dans un domaine devient trivial dans un autre. La transformée n’est pas un raccourci à travers le travail. C’est une porte vers une pièce où le travail n’a jamais été difficile au départ.
C’est pourquoi votre téléphone peut traiter de l’audio en temps réel. C’est pourquoi la compression JPEG fonctionne. C’est pourquoi les signaux WiFi peuvent être décodés, les machines IRM peuvent reconstruire des images, et les écouteurs à réduction de bruit peuvent soustraire le son ambiant du flux du microphone. Tous sont des transformées de Fourier déguisées — des problèmes qui laisseraient un ordinateur numérique sur le carreau s’ils étaient abordés directement, résolus en regardant de côté. La vidéo de 3Blue1Brown rend l’intuition géométrique presque inévitable, ce qui est le plus grand éloge qu’on puisse adresser à une pièce de vulgarisation mathématique.
II. Le GPU raconte la même histoire.
Les GPU modernes n’ont pas inventé de nouvelles mathématiques. Ils ont inventé de nouvelles dispositions pour faire des mathématiques déjà connues comme « embarrassamment parallèles » — le terme technique pour un calcul dans lequel chaque résultat ne dépend d’aucun autre. La multiplication matricielle, l’opération centrale de l’apprentissage profond, en est l’exemple canonique. Pour multiplier deux grandes matrices, il faut calculer des milliers de produits scalaires. Aucun ne dépend des autres. Un CPU les calcule en séquence ; un GPU les calcule tous à la fois sur des milliers de cœurs.
Mais le parallélisme à lui seul ne fait pas toute l’histoire. L’autre astuce, c’est la localité des données. Déplacer des nombres depuis la mémoire principale vers le processeur est lent — des ordres de grandeur plus lent que l’arithmétique. La solution du GPU est le tiling : découper les grandes matrices en petits blocs qui tiennent entièrement dans la mémoire locale du processeur, travailler exhaustivement à l’intérieur de chaque bloc, puis passer au suivant. L’arithmétique n’attend jamais les données. C’est la même logique que la triche de Fourier : identifier la véritable contrainte (la bande passante mémoire, pas la puissance de calcul) et reconcevoir l’approche autour d’elle.
Puis il y a la quantification. L’arithmétique en virgule flottante — celle de pleine précision — est coûteuse. Mais l’essentiel de ce que fait l’apprentissage profond peut se faire presque aussi bien avec des entiers, ou avec des nombres sur 8 bits au lieu de 32. C’est la triche du « suffisamment bien » : on échange un peu de précision contre un grand gain en vitesse et en mémoire. C’est pourquoi des modèles de langage qui exigeraient autrement du matériel à l’échelle d’un entrepôt peuvent tourner sur des cartes graphiques grand public. Les nombres sont légèrement faux. Les sorties sont indiscernables.
Chacune de ces astuces suit la même logique. Vous ne pouvez pas résoudre le problème tel qu’énoncé. Vous le reformulez dans des termes qui révèlent une structure plus simple. Vous le résolvez là. Vous revenez.
III. L’histoire de l’IA est la même histoire au ralenti.
Le perceptron, proposé par Frank Rosenblatt dans son article de 1958, a été la première grande triche de l’apprentissage automatique. Le monde est non linéaire — compliqué, courbe, contingent. Mais Rosenblatt a observé que pour des tâches simples de classification, on pouvait faire semblant qu’il était linéaire : multipliez les entrées par des poids, sommez les produits, appliquez un seuil. La simplification était brutale. Il ne pouvait notoirement pas résoudre XOR — un problème qu’un enfant comprend — et Perceptrons de Minsky et Papert (1969) a rendu la limitation suffisamment célèbre pour geler le domaine pendant plus d’une décennie. Mais il fonctionnait pour ce pour quoi il fonctionnait, et la machinerie qu’il a établie — entrées pondérées, poids appris — est devenue le fondement de tout ce qui a suivi.
L’intuition derrière l’apprentissage profond, que Geoffrey Hinton et ses collaborateurs ont maintenue en vie tout au long du long hiver et qu’ils ont finalement rendue tractable avec la rétropropagation en 1986, est qu’empiler des couches d’opérations linéaires, avec une petite non-linéarité entre chaque couche, crée quelque chose qui peut approximer n’importe quelle fonction. La fonction ReLU, dans la pratique moderne, est presque insultante de simplicité : sortie zéro si l’entrée est négative, sortie identique sinon. Une seule couche linéaire est presque inutile. Des milliers, empilées, deviennent un approximateur universel. La non-linéarité est la charnière — ce qui permet au système de plier et de courber l’espace d’entrée jusqu’à ce que n’importe quel motif puisse être trouvé.
Ce qu’AlexNet a démontré dans l’article de Krizhevsky, Sutskever et Hinton de 2012, ce n’était pas un nouveau principe mathématique mais que cette machinerie pouvait être mise à l’échelle, sur GPU, sur des données réelles, pour des problèmes réels. Le changement de domaine des pixels bruts vers des caractéristiques apprises est Fourier sous un autre déguisement : au lieu d’ondes sinusoïdales, les fonctions de base sont apprises à partir des données. Au lieu de composantes fréquentielles, on a des vecteurs de caractéristiques. Le réseau trouve le système de coordonnées dans lequel les données d’entrée ont une structure simple — où « chat » et « pas chat » occupent des régions différentes de l’espace, où des mots grammaticalement liés se regroupent, où l’intention d’une phrase a une direction et une magnitude.
Le grand modèle de langage est cette idée poussée à sa limite. Le texte est transformé en vecteurs de haute dimension, le mécanisme d’attention introduit par Vaswani et ses collègues dans Attention Is All You Need (2017) calcule des sommes pondérées sur des séquences, et toute la passe avant est une énorme séquence de multiplications matricielles — chacune une opération linéaire, chaque non-linéarité un minuscule pli dans un paysage par ailleurs plat. Les mathématiques ne sont pas compliquées. L’échelle, oui. L’astuce est que si vous rendez le domaine suffisamment grand — des centaines de milliards de paramètres, un corpus d’entraînement qui couvre l’essentiel de l’écriture humaine — l’approximation devient indiscernable de la compréhension.
IV. Le fil.
Le fil qui relie Fourier à Rosenblatt à Hinton au transformer n’est ni le matériel, ni les données, ni même les mathématiques. C’est une façon de penser : quand un problème est impossible tel qu’il est posé, changez de domaine. Trouvez l’angle depuis lequel le même problème révèle sa structure facile. Le difficile n’est jamais l’arithmétique. C’est de savoir dans quelle direction regarder.
Les ordinateurs analogiques faisaient cela automatiquement, parce qu’ils étaient le domaine. Les ordinateurs numériques doivent travailler pour y parvenir — chaque astuce, chaque transformation, chaque triche est un vote contre la décision originelle de discrétiser. Ce que les mathématiques computationnelles construisent depuis deux siècles, c’est une bibliothèque croissante de façons de faire que des machines discrètes approximent ce que la nature continue fait sans effort.
Il y a une tentation, en lisant cette histoire, de la voir comme une histoire de progrès : nous sommes devenus meilleurs pour trouver les astuces. La lecture honnête est plus humble. Nous sommes toujours des ordinateurs numériques qui font semblant de faire du calcul infinitésimal. Chaque percée — la FFT, le GPU, le perceptron, le transformer — est le même aveu vêtu d’habits différents : on ne peut pas résoudre cela de la façon évidente, alors regardons ailleurs. L’ingéniosité est réelle. Le pansement aussi.
Fourier nous a montré la porte. Nous la franchissons depuis deux cents ans.
Eh bien — professeur Wilson Zuluaga et al, toutes ces années à endurer vos cours de traitement du signal m’ont laissé quelques marques. Merci.
Lectures complémentaires
- Joseph Fourier — The Analytical Theory of Heat (1822)
- Frank Rosenblatt — The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain (1958)
- Marvin Minsky & Seymour Papert — Perceptrons (1969)
- Rumelhart, Hinton & Williams — Learning representations by back-propagating errors (1986)
- Krizhevsky, Sutskever & Hinton — ImageNet Classification with Deep Convolutional Neural Networks (2012)
- Vaswani et al. — Attention Is All You Need (2017)
- James W. Cooley & John W. Tukey — An Algorithm for the Machine Calculation of Complex Fourier Series (1965)
- 3Blue1Brown — But what is the Fourier Transform? A visual introduction
- 3Blue1Brown — The Essence of Linear Algebra
- Computerphile — Analog Computers
