le long d’une chaîne d’opérations logiques. Les chercheurs ont montré, sur
une application de traitement d’images, une réduction spectaculaire (facteur
10) de la consommation énergétique. En plus de ce gain en consommation,
ce type de circuit semble très tolérant aux fautes puisqu’il est conçu de
telle sorte qu’il réalise les bonnes opérations même avec des taux d’erreurs
propagées importants.
2.2 Travaux connexes
Dans le cadre des inférences bayésiennes, et plus généralement dans le
cadre du calcul, on sait en théorie manipuler les événements incertains et
extraire l’information qui nous intéresse. Dans [24] Jaynes exprimait l’idée
que l’utilisation des probabilités est un candidat naturel pour traiter
l’incer-titude inhérente à tout raisonnement subjectiviste.
Les problèmes ne demandant pas de réponse exacte comme la
percep-tion ou la fusion de capteurs sont des problèmes qui siéent aux modèles
probabilistes. Ces exemples montrent qu’une nouvelle approche de calcul
pourrait permettre un gain dans les trois directions des problématiques des
circuits intégrés : coût, énergie, puissance de calcul. Dans la suite, nous nous
intéressons aux machines traitant explicitement de problèmes d’inférences.
2.2.1 Circuits analogiques pour l’inférence
En 2003, Vigoda [5] est un des pionniers dans la conception de machines
de calcul dédiées aux inférences bayésiennes. L’idée principale est d’utiliser
des signaux analogiques pour coder la valeur de probabilité d’une variable.
Cependant, contrairement à nos travaux, Vigoda s’est surtout intéressé au
calcul d’inférence exacte en utilisant le message passing algorithm [23]. Il
s’est intéressé à la couche très basse des circuits puisqu’il a conçu les
com-posants nécessaires pour implémenter l’algorithme et définir le circuit
réa-lisant l’inférence. Dans ces travaux, Vigoda montre que ses machines ont
un intérêt dans les télécommunications où le nombre de variables reste
as-sez raisonnable pour être traité en inférence exacte. Des résultats probants,
montrant notamment un gain en consommation, ont conduit Vigoda à créer
l’entreprise Lyrics rachetée par Analog Device en 2010.
Dans les travaux présentés dans cette thèse, nous nous sommes également
intéressés aux circuits traitant de l’inférence exacte, chapitre 4, et nous avons
utilisé un problème dans les télécommunications comme preuve de concept
de ce type de machine. L’application est connue sous le nom dePN (pseudo
noise) sequence acquisition(acquisition de séquence pseudo bruitée), elle est
présentée dans la section 4.5.1.
2.2.2 Circuits d’inférences approchées
Toute personne utilisant l’inférence exacte pour résoudre un problème
d’inférence bayésienne est confrontée au passage à l’échelle des opérations à
réaliser.
Au MIT (Massachusetts Institute of Technology), un département
dé-dié au calcul d’inférence a été créé sous le nom de Probabilistic Computing
Project. Ce projet est basé sur les travaux de V. Mansinghka [48] qui s’est
in-téressé aux machines non-conventionnelles résolvant des problèmes bayésiens
via le calcul d’inférence approchée. Dans un premier temps, V. Mansinghka a
développé un langage probabiliste,CHURCH [21], dans lequel des méthodes
d’inférences approchées sont implémentées. Cette approche est similaire à
celle utilisée dans d’autres langages probabilistes tel que ProBT.
Dans sa thèse, V. Mansinghka va plus loin que le développement logiciel
de méthodes probabilistes et propose des composants et des assemblages de
ces composants pour le développement hardware de machines probabilistes.
C’est E. Jonas, dans sa thèse soutenue en 2014 [12], qui poursuit ces
tra-vaux. L’idée principale est la modification des tables de vérité déterministes
des composants logiques par des tables de vérité probabilistes. Nous
mon-trons un exemple de porte AND probabiliste sur la table 2.1. Pour réaliser
cela, ces chercheurs ajoutent à tout composant probabiliste une entrée
boo-léenne émanant d’un générateur aléatoire qui apporte l’aléa nécessaire au
comportement du composant suivant sa table de vérité. Dans ces travaux,
V. Mansinghka considère que l’utilisation de ce type de composant peut
être vue comme une extension de l’algèbre booléenne dans le sens où la
sup-pression de l’entrée aléatoire entraîne le retour au fonctionnement classique,
dans le sens déterministe, du composant. Avec ce principe, la conception de
circuits probabilistes possède la même agilité que ceux actuels, c’est à dire
que chaque composant stochastique est indépendant et peut être composé
avec d’autres de façon totalement abstraite et transparente. Ainsi, il est
pos-sible de construire un circuit plus complexe avec une architecture cohérente
et se placer à différents niveaux de la conception.
Principe
Les circuits stochastiques présentés dans la thèse de Jonas sont des
cir-cuits qui produisent des échantillons à partir d’une distribution de
probabi-2.2. TRAVAUX CONNEXES
IN OU T P
00 0 1
1 0
01 0 1
1 0
10 0 1
1 0
11 0 0
1 1
IN OU T P
00 0 1
1 0
01 0 0.25
1 0.75
10 0 0.75
1 0.25
11 0 0
1 1
Table2.1 – Table de vérité déterministe, à gauche, et probabiliste, à droite,
de la porte AND
lité. Ce tirage est effectué grâce à une source entropique extérieure.
L’élé-ment de base de tels circuits est donc un composant à deux entrées et une
sortie. Cette sortie est conditionnée par une entrée qui est un échantillon et
une valeur aléatoire, celle-ci permettant de tirer dans la distribution
modé-lisée, voir figure 2.1. Ce type de circuits est facilement composable puisque
le branchement en série de deux tirages suivant une distribution permet
d’obtenir l’abstraction d’un tirage suivant une distribution à plusieurs
va-riables. Supposons qu’un élément simple permette de tirer des échantillons
B suivant P(B|A) et un autre C suivant P(C|B). Dans ce cas, l’obtention de
couples d’échantillons (B,C) suivant P(B, C | A) s’effectue par composition
séquentielle des deux composants précédents, voir figure 2.2.
P(OU T|IN)
RAND
IN OUT
01011001001110
Figure 2.1 – Porte de base permettant le tirage conditonnel P(OU T|IN)
Un exemple simple de tirage d’échantillons avec ce type d’élément
sto-chastique est le tirage de Bernoulli. Un mot de 4 bits est placé en entré du
composant, et, suivant la valeur de ce mot, la sortie possède une probabilité
d’être à 0 ou 1. Cette valeur de probabilité est modélisée grâce à un
généra-teur aléatoire de 4 bits couplé à un simple comparagénéra-teur avec l’entrée (de 4
bits également).
P(B|A)
r A BP(C|B)
r B C 01101110010110 00110110100010Figure2.2 – Composition en série permettant l’échantillonnageP(B, C|A)
Cependant, l’élément de base de la conception de circuits avec des portes
probabilistes dans les travaux des chercheurs du MIT est le tirage
d’échan-tillons dans la fonction de répartition représentant la distribution de
pro-babilité. Les valeurs des variables aléatoires sont stockées dans des ROM
avec une valeur associée afin de reproduire la fonction de répartition. Puis le
tirage est effectué avec un générateur et un comparateur comme
précédem-ment. Ce type de conception est facilement implémentable dans des FPGAs
(Field Programmable Gate Arrays) via des LUT (Look Up Table).
Exemples académiques
Jonas a testé sa méthode sur trois exemples académiques classiques :
mo-dèle de l’arroseur automatique, momo-dèle de Ising dans la physique statistique
pour modéliser le phénomène de spin et un réseau bayésien de diagnostique
médical ALARM (A Logical Alarm Reduction Mechanism).
Ces trois modèles sont décrits dans un langage informatique,pythondans
le cas de Jonas, et un compilateur permet de transformer ce modèle en circuit
synthétisable sur FPGA. Cette partie est donc totalement transparente pour
l’utilisateur. Chaque distribution et chaque variable vont être stockées via
leur fonction de répartition et les générateurs nécessaires vont également
être répartis sur le circuit afin de tirer des échantillons dans ces fonctions de
répartition.
La description du modèle probabiliste est effectuée sous forme de graphe
de facteur (factor graph en anglais, qui est un formalisme plus général que
celui des réseaux bayésiens pour représenter une distribution conjointe) où
les variables sont les nœuds du graphe et les dépendances entre les variables
correspondent aux branches émanant de ces nœuds. C’est à partir de ce
graphe que le compilateur construit le circuit réalisant l’inférence, c’est à
dire répondant à une question posée sur ce graphe.
2.2. TRAVAUX CONNEXES
Exemple du sprinkler : modèle de l’arroseur automatique
Dans cet exemple on explicite les dépendances entre la météo, le fait qu’il
puisse pleuvoir, l’arrosage automatique et le fait que l’herbe soit mouillée
ou non, figure 2.3. Chaque nœud du graphe ainsi construit est booléen. La
figure 2.2 montre le résultat de questions posées aux modèles. On remarque
que les valeurs de probabilités avec tirage sont proches des valeurs théoriques
avec une inférence exacte même avec une précision des valeurs sur seulement
5 bits. En effet, la précision des valeurs de probabilité est encodée sur un
nombre de bits prédéterminé par l’utilisateur dans le modèle du compilateur.
Dans cet exemple simple, 5 bits suffisent puisque les valeurs de probabilités
à distinguer sont peu nombreuses et loin des extremums 0 ou 1.
C P(S=0) P(S=1) 0 0.5 0.5 1 0.9 0.1 C P(R=0) P(R=1) 0 0.8 0.2 1 0.2 0.8 S R P(W=0) P(W=1) 0 0 1.00 0.0 0 1 0.1 0.9 1 0 0.1 0.9 1 1 0.01 0.99 P(C=0) P(C=1) 0.5 0.5
C
S R
G
WetGrass Rain Sprinkler CloudyFigure2.3 – Graphe du modèle sprinkler
Question inférence exacte 5 bits 8 bits 12 bits
P(S|W) 0.4298 0.4535 0.4320 0.4309
P(S|W, R) 0.1945 0.2160 0.2045 0.1935
Table 2.2 – Comparaison de résultats théoriques et avec tirages pour
Dans le document
Conception de machines probabilistes dédiées aux inférences bayésiennes
(Page 32-37)