• Aucun résultat trouvé

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 B

P(C|B)

r B C 01101110010110 00110110100010

Figure2.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 Cloudy

Figure2.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