• Aucun résultat trouvé

5.4 Architecture physique

5.6.2 Le Beta Problème difficile

Présentation du problème

Nous avons conçu un problèmedifficilequi possède des dépendances

cir-culaires entre ses variables (comme cela se passe dans certaines applications

de traitement d’images par exemple). Nous avons choisi des formes

paramé-triques de telles sortes que nous puissions calculer une solution analytique à

utiliser comme référence.

Nous définissons la distribution de probabilité conjointe sur nvariables

binaires B

i

∈ {0,1} et n variables discrètes V

j

∈ {0, . . . ,2

m

−1} comme

présenté sur l’équation 5.19 :

P(V

1

∧ · · · ∧V

n

B

1

∧ · · · ∧B

n

) =

n Y i=1

P(V

i

)

! n Y i=1

P(B

i

|V

i

V

1+i%n

) (5.19)

Description des distributions

Le but de ce problème est de présenter un calcul d’inférence difficile

mais dont la solution peut être approchée avec une très bonne précision de

manière analytique. Pour cela nous utiliserons les fonctions de densitéBeta

sur lesquelles il est possible de réaliser les calculs d’intégrales, et notamment

de normalisation. L’étude réalisée sur les distributions Beta nous amène à

considérer des probabilités continues. C’est pourquoi les priors P(V

i

) sont

décrits de tels sortes qu’ils deviennent une discrétisation des lois de

proba-bilités continuesP(U

i

),U

i

∈[0,1], définies par l’équation 5.20 :

V

i

=k∈ {0, . . . ,2

m

−1} ⇒U

i

=u= (k+ 0.5)2

m

∈[0,1] (5.20)

On choisit une loi Bêta pour représenter les P(U

i

) avec comme

para-mètres α = 2, β = 2. On obtient alors, avec le terme β(2,2) qui est la

normalisation, l’équation 5.21 qui nous donne la probabilitéP(U

i

=u) :

P(U

i

=u) = u(1−u)

β(2,2) =

u(1−u)

R1

5.6. APPLICATIONS

On a alors l’approximation pour le cas discret par la formule 5.22 :

P(V

i

=k)∝6u(1−u)2

m

(5.22)

Nous décrivons les fonctions de vraisemblances,P(B

i

=b

i

|V

i

V

i+1%n

), en

utilisant une loi de Bernoulli, dans l’équation 5.23 :

P(B

i

= 1|V

i

=k

1

V

j

=k

2

) = u

ai i

(1−u

i

)

bi

u

cjj

(1−u

j

)

dj

G(a

i

, b

i

, c

j

, d

j

)

j= 1 +i [n]

u

i

= (k

1

+ 0.5)2

m

u

j

= (k

2

+ 0.5)2

m

(5.23)

Le termeG(a

i

, b

i

, c

j

, d

j

) est le max de la fonction :

g(u

i

, u

j

) =u

ai

i

(1−u

i

)

bi

u

cjj

(1−u

j

)

dj

qui permet d’avoir un paramètre

p

i

= u

ai

i

(1−u

i

)

bi

u

cjj

(1−u

j

)

dj

G(a

i

, b

i

, c

j

, d

j

) ≤1

homogène à une probabilité.

Recherche du max

ui,uj[0,1]

g(u

i

, u

j

) :

∂g(u

i

, u

j

)

∂u

i

= 0

a

i

u

ai−1 i

(1−u

i

)

bi

u

cj j

(1−u

j

)

dj

b

i

u

ai i

(1−u

i

)

bi−1

u

cj j

(1−u

j

)

dj

= 0

a

i

(1−u

i

)−b

i

u

i

= 0

u

i

= a

i

a

i

+b

i

(5.24)

De la même manière :

∂g(u

i

, u

j

)

∂u

j

= 0u

j

=

c

j

c

j

+d

j

(5.25)

On en conclue que :

G(a

i

, b

i

, c

j

, d

j

) = ( a

i

a

i

+b

i

)

ai

(1− a

i

a

i

+b

i

)

bi

( c

j

c

j

+d

j

)

cj

(1− c

j

c

j

+d

j

)

dj

= a

ai i

(a

i

+b

i

)

ai

b

bi i

(a

i

+b

i

)

bi

c

cj j

(c

j

+d

j

)

cj

d

dj j

(c

j

+d

j

)

dj

= a

ai i

b

bi i

c

cjj

d

djj

(a

i

+b

i

)

ai+bi

(c

j

+d

j

)

cj+dj

(5.26)

Le problème de l’explosion combinatoire

Nous considérons l’inférence suivante basée sur la spécification de notre

modèle décrit précédemment :P(V

i

|b

1

= 1, . . . , b

n

= 1).

Dans cet exemple, 2

mn

additions sont nécessaires pour calculer

l’infé-rence exacte, avec n le nombre de variable et m le log

2

(dimension des

va-riablesV

i

). Ce calcul devient vite impossible, même pour des valeurs dem

etnqui paraissent raisonnables. Supposons que l’on a 20 variables binaires

B

i

et 20 variables discrètes V

i

sur 256 valeurs chacune. On a donc n = 20

et m = 8. Dans ce cas, le nombre de sommes à réaliser vaut 2

160

' 10

48

.

Si on utilise un processeur actuel, ayant une fréquence d’horloge de 2GHz,

alors il lui faudrait plus de 10

30

années pour réaliser le calcul de l’inférence.

Cependant, il est possible d’obtenir une approximation de la solution exacte

par une méthode analytique.

Résolution analytique

La question posée au modèle est P(V

i

|B

1

= 1. . . B

n

= 1). En utilisant

la règle de Bayes, on en déduit l’équation 5.27 :

P(V

i

|B

1

= 1. . . B

n

= 1) =

P Vk k6=i

P(V

1

. . . V

n

B

1

= 1. . . B

n

= 1)

P(B

1

= 1. . . B

n

= 1)

=

P Vi−1 P Vi+1 P Vk k6=i,i−1,i+1 n Q i=1

P(V

i

)

n Q i=1

P(B

i

= 1|V

i

V

1+i%n

)

P(B

1

= 1. . . B

n

= 1)

(5.27)

5.6. APPLICATIONS

On extrait les termes qui dépendent deV

i

, la factorisation donne

l’équa-tion 5.28 :

P(V

i

|B

1

= 1. . . B

n

= 1)

= 1

P(B

1

= 1. . . B

n

= 1) ×P(V

i

X Vi−1

P(V

i−1

)

×

X Vi+1

P(V

i+1

)P(B

i−1

= 1|V

i−1

V

i

)P(B

i

= 1|V

i

V

1+i

)

×

X Vk k6=i,i−1,i+1 n Y l=1

P(V

l

)

! n Y l=1

P(B

l

= 1|V

l

V

1+l

)P(B

1

= 1. . . B

n

= 1)

(5.28)

Les termes

P Vk k6=i,i−1,i+1 n Q l=1 P(Vl) n Q l=1 P(Bl=1|VlV1+l)

et

P(B1=1...Bn=1)

sont des

constantes pour toutes les valeurs de V

i

.

De plus, le passage aux probabilités continues nous permet d’écrire

l’équa-tion 5.29 :

P(U

i

|B

1

= 1. . . B

n

= 1)

= 1

Z ×u

i

(1u

i

)

×

X Ui−1

P(U

i−1

)u

ai−1 i−1

(1−u

i−1

)

bi−1

u

ai i

(1−u

i

)

bi

×

X Ui+1

P(U

i+1

)u

ci i

(1−u

i

)

di

u

ai+1 i+1

(1−u

i+1

)

bi+1

= 1

Z ×u

i

(1u

i

)u

ai i

(1−u

i

)

bi

u

ci i

(1−u

i

)

di

×

X Ui−1

P(U

i−1

)u

ai−1 i−1

(1−u

i−1

)

bi−1

×

X Ui+1

P(U

i+1

)u

ai+1 i+1

(1−u

i+1

)

bi+1

= 1

Z ×u

1+ai+ci i

(1−u

i

)

1+bi+di

(5.29)

On remarque donc que P(U

i

|B

1

= 1. . . B

n

= 1) est une distribution

Beta avec α= 2 +a

i

+c

i

etβ = 2 +b

i

+d

i

. Il devient alors beaucoup plus

simple de calculer la constante, qui est la constante de normalisation, et qui

vaut

R1

0

u

α1

(1−u)

β1

du. Ce calcul est réalisé avec les outils logiciels

d’ap-proximation d’intégrale. La distribution cherchée, dans sa version continue,

est donc la formule 5.30 suivante :

P(U

i

|B

1

= 1. . . B

n

= 1) = u

α1

(1−u)

β1

R1

0

u

α−1

(1−u)

β−1

du (5.30)

Étant donné que la question porte sur les variables discrètes V

i

, nous

sommes en mesure de passer de la distributiona posteriori en continue à la

discrétisation souhaitée par la formule 5.31 :

P(V

i

=k|B

1

= 1. . . B

n

= 1)≈

R k+1 2m k 2m

u

α1

(1−u)

β1

du

R1 0

u

α−1

(1−u)

β−1

du

≈2

m

Beta((k+ 0.5)2

m

, α, β)

(5.31)

Beta(u, α, β) est la fonction de densité de probabilité de la distribution

Beta avec deux paramètres connusα,βN.

Notons que les V

i

sont une discrétisation des variables U

i

. De ce fait,

plus l’espace des valeurs possibles de V

i

est grand et plus l’approximation

du résultat de la distributiona posteriori, par notre approche, est bonne.

Résultats

Nous avons utilisé une instance calculable de l’inférence définie

précé-demment (avecm=n= 5) pour évaluer la qualité de notre approximation

analytique. ProBT a été utilisé pour calculerP(V

2

|b

1

= 1. . . b

5

= 1) en

infé-rence exacte en marginalisant sur toutes les variables libres. Le programme

est donné figure 5.12.

La différence absolue avec la solution analytique est toujours inférieure

10

17

, ce qui valide la qualité de l’approximation analytique. De plus,

l’aug-mentation de la dimension des variables,m, améliore la précision du calcul

des intégrales et entraîne donc une augmentation de la précision de

l’ap-proximation analytique.

L’expérimentation du problèmedifficile a été réalisée avec un problème

de taille m = 8, n = 20. Nous utilisons l’approximation analytique pour

évaluer les résultats obtenus avec la machine SMABI. A noter que ce sont

lesECEs qui ont été utilisés pour réaliser les produits de cotes.

5.6. APPLICATIONS

from probt import *

V =plArray(”V, plIntegerT ype(0,1),5)

B =plArray(”B, plIntegerT ype(0,31),5)

model=plComputableObjectList()

b=plV alues(B)

for i <5 : do

j= (i+ 1)mod 32

model=modelplDistribution(V[i], F V(i))

model=modelplCndDistribution(B[i], V[i]V[j], F B(i))

b[i] = 1 {tous les B[i] sont mis à 1}

end for

joint = plJointDistribution(model)

joint.ask(V[9],b).instantiate(b).VHDL(‘Ex.vhd’)

Figure5.12 – Spécification duBetaproblèmedifficiledécrit dans le langage

ProBT : FV et FB sont des fonctions Python qui implémentent l’équation

5.23. Ce programme est compilé et un code VHDL est généré. Il décrit le

fonctionnement du circuit réalisant l’inférence, il est simulé grâce à notre

simulateur haut niveau. Une implémentation FPGA de ce circuit a été

réa-lisée.

La précision dépend donc de :

— La taille D des buffers utilisés dans les ECEs pour diminuer

l’auto-corrélation entre les bits de sortie.

— La durée de la période deburn-in,BI, permettant la stabilisation des

ECEs pour la chaîne de bits encodant le produitB(o

1

o

2

).

— Le nombreN d’échantillons choisis pour approximer la distribution a

posteriori.

La figure 5.13 montre les résultats pour l’inférenceP(V

3

|b

1

= 1, . . . , b

20

=

1) avec les paramètres suivants : D = 16, BI = 200, N = 100000. La

taille D des buffers des ECEs dépend de la profondeur de l’arbre d’OPs,

c’est à dire du nombre d’ECEs cascadés. Dans l’exemple de la figure 5.2, la

précision a été évaluée sur une cascade d’ECEs. Ici, nous utilisons lesECEs

avec une taille de mémoire pour les buffers de D=16, ce qui constitue un

bon compromis entre la taille et la précision pour l’exempledifficile dont la

profondeur de la cascade est de deux. En effet, un bit de la conjointe est

présent trois fois au maximum dans les termes de la décomposition.

Figure5.13 – Comparaison entre l’approximation calculée par la machine

stochastique (en vert), avec l’utilisation de l’arithmétique standard flottante

en utilisant le même algorithme (en rouge) et la solution analytique (en bleu)

La table 5.6 montre l’impact du burn-in BI et du nombre N

d’échan-tillons sur la DKL entre l’approximation analytique et les résultats obtenus

avec notre architecture stochastique. Nous observons que la précision

aug-mente avec N, mais lentement. Ceci n’est pas surprenant puisque, comme

mentionné précédemment, la précision des séquences de Bernoulli est en

O(√

N). L’augmentation de la longueur de la séquence de combustion, après

quoi les échantillons calculés par l’arbre d’ECEs sont considérés comme

va-lides, a un coût en termes de temps de calcul, mais elle permet d’augmenter

significativement la précision des résultats jusqu’à ce qu’ils soient aussi bons

que les calculs réalisés en virgule flottante. Ceci suggère une façon d’utiliser

les mêmes circuits avec différents compromis entre la latence, puissance et

précision souhaitée.

5.7 Discussion

Nous avons présenté une chaîne de synthèse logique concevant

automati-quement des machines stochastiques résolvant une inférence bayésienne par

une méthode approchée. L’algorithme implémenté dans ces machines est

l’al-gorithme d’échantillonnage de Gibbs fonctionnant sur des variables binaires.

Cette chaîne de synthèse est générique : elle traduit un problème d’inférence

exprimé dans le langage ProBT et génère une description matérielle d’un

5.7. DISCUSSION

Nombre d’échantillons 1000 10000 100000

burn in = 10 1.5293 1.2222 1.15294

burn in = 20 1.3145 1.1482 1.13608

burn in = 50 0.2447 0.1000 0.07979

burn in = 100 0.1414 0.0178 0.00218

burn in = 200 0.1333 0.0155 0.00182

burn in = 400 0.1529 0.0151 0.00188

calcul en flottant 0.1458 0.0184 0.00181

Table5.6 – Kullblack divergence à partir de la solution analytique (en bit).

circuit qui résout l’inférence demandée. Ce circuit est constitué uniquement

de trois types de composants stochastiques :CDE,BSGsetOP. Nous avons

conçu un test quantitatif afin d’évaluer notre architecture sur un problème

insoluble en inférence exacte. Les résultats sont prometteurs. La

distribu-tion en sortie de notre machine stochastique suit précisément la courbe de la

solution analytique et elle est aussi performante qu’une machine travaillant

avec une représentation en virgule flottante des données.

En l’état, nous sommes donc capable de générer un circuit spécifique

pour chaque modèle bayésien. Dans la suite, nous allons étendre le terme de

machine puisque nous présentons une machine générique et programmable,

qui accepte tout nouveau programme bayésien sans recourir à une nouvelle

synthèse, ouvrant la voie à des dispositifs informatiques bayésiens

effective-ment programmables.

Chapitre 6

Machine bayésienne

stochastique programmable

implémentant une méthode

d’inférence approchée

Ce dernier chapitre est l’aboutissement de la réflexion de ces trois années

de recherche sur la conception d’un ordinateur probabiliste dédié aux

infé-rences bayésiennes. CettePSMABI, pourProgrammable Stochastic Machine

for Approximate Bayesian Inference, permet non seulement de résoudre les

problèmes d’inférences de faibles dimensions et difficiles mais intègre une

programmabilité qui permet d’avoir un unique circuit pour traiter une

in-finité de problèmes d’inférence. Cette machine générique peut donc être

utilisée de la même manière qu’un ordinateur standard, où les couches de

compilation et de calcul sur le circuit sont rendues invisibles pour le

pro-grammeur.

Nous présentons le dimensionnement choisi pour ce premier prototype de

PSMABI, qui permet de résoudre l’inférence du problème difficile présenté

dans le chapitre 5. Ensuite, nous explicitons l’architecture qui est composée

d’un registre de Gibbs, d’une mémoire d’instructions ou de programme,

d’une mémoire de données, du module de calcul qui est l’arbre d’OPs, d’une

méthode d’adressage des données pour les CDEs et d’une machine à états

qui régit l’ensemble du système. Nous expliquons le fonctionnement de la

compilation pour programmer la machine et nous montrons les résultats sur

les tests effectués sur le problème difficile du chapitre 5.

6.1 Problématique

La machine bayésienne SMABI présentée dans le chapitre 5 permet de

résoudre des problèmes d’inférence en implémentant l’algorithme de Gibbs.

A partir de n’importe quel problème, modélisé avec l’outil de programmation

ProBT, nous sommes capable de générer une description VHDL du circuit

qui résout l’inférence. A chaque problème est donc associée une machine

bayésienne spécifique.

Dans ce chapitre, nous étendons la définition demachine par la

possibi-lité de programmer, au sens commun, laPSMABI. Cette machine universelle

est basée sur les mêmes principes que la machineSMABI. Elle est dite

pro-grammable car son implémentation reste la même et ce sont les programmes

bayésiens qui viennent se "charger" dans la mémoire, après compilation, à

l’instar des modèles de calculs des processeurs standards.

6.2 Principe

Cette machine fonctionne sur les principes proches des architectures de

calculateurs standards. C’est à dire qu’elle est composée d’une unité de

cal-cul, d’une mémoire de programme et d’une mémoire de données. Les

instruc-tions sont chargées dans la mémoire de programme, elles décrivent les étapes

nécessaires à l’échantillonnage des bits par la méthode de Gibbs. Le principe

de calcul est le même que celui présenté dans le chapitre 5, c’est à dire

l’im-plémentation de l’algorithme de Gibbs en utilisant des produits de cotes. La

programmation du modèle bayésien est toujours réalisée avec l’outil ProBT

et le compilateur, dédié à cette machine, extrait les instructions et tous les

quotients possibles du modèle, à stocker en mémoire, à partir des

informa-tions de la base de données ProBT. Les paramètres de cette machine étant

fixes, c’est à dire le nombre de produits de cotes qui puissent être réalisées,

la taille de la mémoire de données, la taille de la mémoire de programme

et la taille du registre de Gibbs, les problèmes qui pourront être traités par

cette machine devront répondre à certains critères de dimensionnalité.

6.3 Architecture de calcul

L’unité de calcul est la même que celle de la machine présentée dans

le chapitre 5. C’est à dire qu’elle utilise des CDEs pour stocker tous les

quotients et desOPs pour réaliser les produits de cotes.

6.4. ARCHITECTURE PHYSIQUE

6.4 Architecture physique

Dans cette section est présentée l’architecture de la machine basée sur les

principes d’architecture des calculateurs standards, c’est à dire la mémoire

de programme découplée de la mémoire de données et une unité de calcul.

Le point difficile de l’architecture concerne la manière dont les données sont

adressées, ce choix d’adressage est présenté dans le paragraphe 6.4.6.

En-fin, la machine à états qui régit la machine est présentée en fin de section.

Afin d’améliorer la lecture du fonctionnement des modules, nous utilisons

l’exemple du Sprinkler comme modèle.