Calculateur stochastique
Un calculateur stochastique est un concept déjà ancien (pour la jeune histoire de l'informatique) et contemporain de recherches et applications développées depuis le début des années 1960 et jusqu'au milieu de la décennie 1970.
Sa définition dans le Grand Larousse encyclopédique est : « Calculateur dans lequel l'information est codée par une probabilité ».
Le problème
Calcul numérique
Jusque vers le milieu des années 1970, les ordinateurs étaient coûteux et il n'était pas question d'en associer un à chaque processus industriel qu'on devait surveiller ou commander. Il fallait donc recourir:
- soit à des techniques de temps réel permettant le partage des machines - lentes à l'époque - moyennant une programmation délicate et onéreuse (le temps réel ne doit pas être confondu avec le temps partagé, où chaque processus se fait allouer tour à tour une tranche de temps),
- soit à des automates industriels de prix moins élevé, mais manquant de souplesse : peu ou pas de calcul possible, commandes principalement par « tout ou rien » en entrée de gamme.
Calcul analogique
Une autre approche, celle des calculateurs analogiques, possédait deux inconvénients : le coût de réalisation des circuits de multiplication et leur lenteur. La technique du calcul hybride consistant à associer un calculateur analogique à un calculateur numérique ne connut pas de réel succès.
Automates industriels
Les automates industriels constitués d'une simple mémoire (voir article) offraient une solution séduisante, mais limitée à des contrôles ou commandes de type « tout ou rien », donc manquant de souplesse pour la régulation de procédés demandant une surveillance et/ou une commande fines.
Une voie nouvelle
Au début des années 1960 et sur une idée émise en 1953 par John Von Neumann[1] des chercheurs de la compagnie Alsthom représentèrent une grandeur entre 0 et 1 par une probabilité de présence d'un 1 sur une ligne. Une multiplication ne demandait alors plus qu'un simple et logique (circuit très bon marché à produire) à une très bonne vitesse : l'estimation à 1 % de la probabilité ne demandait que 10 ms avec une fréquence de 10 000 Hz. Encore fallait-il pour cela que les entrées soient décorrélées, ce qui se réalisait par un petit dispositif additionnel, soit une Ligne à retard, soit comportant un générateur aléatoire et un circuit ou exclusif (XOR).
La précision du résultat dépendait uniquement du temps d'observation du train de bits représentant la donnée. Cela pouvait être utile dans les domaines où il importe d'avoir une estimation, même grossière, le plus rapidement possible, et où on peut prendre le temps de l'affiner ensuite (calage d'un tir sur une cible, par exemple).
Dès le milieu de la décennie 1960, cette idée avait suscité un intérêt à l'international[2] et quelques machines furent produites à la fin de la décennie, comme le RASCEL.
Techniques de calcul stochastique
L'addition stochastique était un peu plus complexe, car une probabilité reste par définition comprise entre 0 et 1 tous deux inclus. Un système à trois portes logiques permettait à partir de p1 et p2 sur deux entrées d'obtenir en sortie (p1+p2)/2. Il revenait donc à l'utilisateur de se souvenir que la valeur était sur cette ligne à l'échelle 1/2, et d'effectuer la recalibration de ses résultats en sortie.
Si le doublage d'une quantité n'était pas possible sans recalibrage, sa division par 2 était en revanche simple et donc économique, par simple mise à 0 d'un bit reçu sur deux.
Phases historiques
Démarrage et premier déclin
Les calculateurs stochastiques, bon marché, fiables et faciles à produire en grande quantité, furent considérés dans les années 1970 comme des substituts prometteurs aux circuits fluidiques utilisés dans le monde militaire et industriel. Une synthèse très claire de 9 pages en fut publiée en 1973 à l'AFCET[3]
La production à des prix de plus en plus faibles de microprocesseurs fit perdre de l'intérêt à ces systèmes là où une exigence de réactivité immédiate ne s'imposait pas. Leur théorie garde néanmoins un attrait ludique aujourd'hui, et il est possible de fabriquer à peu de frais (ou d'émuler sur ordinateur[4]) des calculateurs stochastiques. Les performances actuelles (2018) et futures des microprocesseurs et microcontrôleurs rendent de ce fait peu probable un retour des calculateurs stochastiques.
Étude des essaims
La Gazette apicole[5] évoque également la représentation stochastique de l'information dans le comportement des abeilles. Le comportement d'un essaim en nanotechnologie mobile peut être vu comme une forme spatiale (bidimensionnelle ou tridimensionnelle) de calculateur stochastique.
Résurgence
Une classe de réseaux de neurones formels nommée neurones stochastiques binaires (stochastic binary neurons) utilise la sortie de la fonction logistique de chaque neurone comme probabilité d'envoyer un 1 dans une distribution de Poisson. Elle donne de bons résultats en apprentissage profond[6], mais n'a pas aujourd'hui (2016) d'implémentation sous formes de circuits spécialisés.
Notes et références
- (en) John von Neumann « Probabilistic logics and the synthesis of reliable organisms from unreliable components » ()
— « (ibid.) », dans The Collected Works of John von Neumann, Macmillan (ISBN 978-0-393-05169-8) - A stochastic computer, Brian Gaines, 1965.
- La représentation stochastique de l'information : principes et applications, Jean-Jacques Hirsch, revue de l'AFCET, volume 19, pages 234 à 243
- On peut alors définir des opérateurs « addition » et « multiplication » effectuant automatiquement le recalibrage pour la première et la décorrélation pour la seconde
- Volumes 82-83, 1981, page 112
- Cours publiquement disponible de l'ÉTS de Montréal
Liens internes
Bibliographie
Les réseaux de neurones pulsés reprennent en les étendant plusieurs idées des calculateurs stochastiques. Voir en particulier 13.7.1 The Stochastic Neuron et 13.7.3 Generating Stochastic Bit-Streams à partir de la page 346 :
- Pulsed Neural Networks, Wolfgang Mass, MIT Press, 1999, (ISBN 978-0-262-13350-0)