Mașină Boltzmann restricționată
În învățarea automată , mașina Boltzmann limited este un tip de rețea neuronală artificială pentru învățarea nesupravegheată . Se folosește în mod obișnuit pentru a avea o estimare a distribuției probabilistice a unui set de date . A fost inițial inventat sub numele de Harmonium în 1986 de Paul Smolenski.
Descriere
În forma sa cea mai simplă, o mașină Boltzmann este alcătuită dintr-un strat de neuroni care primesc intrare, precum și un strat ascuns de neuroni. Dacă presupunem că neuronii aceluiași strat sunt independenți unul de celălalt, numim această configurație o mașină Boltzmann restricționată (RBM).
Definim o energie de activare pentru o mașină Boltzmann restricționată după cum urmează:
E=-(∑eu,jweujXeuhj+∑eubeuXeu+∑jvs.jhj){\ displaystyle E = - \ left (\ sum _ {i, j} w_ {ij} \, x_ {i} \, h_ {j} + \ sum _ {i} b_ {i} \, x_ {i} + \ sum _ {j} c_ {j} h_ {j} \ right)}
Cu:
-
weuj{\ displaystyle w_ {ij}}este greutatea dintre neuron și neuron ;j{\ displaystyle j}eu{\ displaystyle i}
-
Xeu{\ displaystyle x_ {i}}este starea ,, neuronului vizibil ;Xeu∈{0,1}{\ displaystyle x_ {i} \ in \ {0.1 \}}eu{\ displaystyle i}
-
hj{\ textstyle h_ {j}}este starea neuronului ascuns ;j{\ textstyle j}
-
beu{\ displaystyle b_ {i}}și sunt respectiv prejudecăți ale neuronilor și .vs.j{\ displaystyle c_ {j}}Xeu{\ displaystyle x_ {i}}hj{\ displaystyle h_ {j}}
Probabilitatea comună de a avea o configurație este apoi dată de(Xeu,hj){\ displaystyle (x_ {i}, h_ {j})}
P(Xeu,hj)=exp(-E(Xeu,hj))/Z{\ displaystyle P (x_ {i}, h_ {j}) = \ exp (-E (x_ {i}, h_ {j})) / Z}
Cu:
-
E{\ displaystyle E} funcția energetică definită mai sus;
-
Z{\ displaystyle Z} o funcție de normalizare, care face ca suma tuturor probabilităților să fie 1.
Învăţare
Mașina lui Boltzmann se antrenează folosind învățarea nesupravegheată. Încercăm să minimalizăm probabilitatea jurnalului . Derivatul log-probabilității dă următoarea expresie:
∂[-Buturuga(p(X(t)))]∂θ=Eh[∂E(X(t),h)∂θ|X(t)]-EX,y[∂E(X,h)∂θ]{\ displaystyle {\ frac {\ partial \ left [- \ log (p (x ^ {(t)})) \ right]} {\ partial \ theta}} = \ mathbb {E} _ {h} \ left [{\ frac {\ partial E (x ^ {(t)}, h)} {\ partial \ theta}} | x ^ {(t)} \ right] - \ mathbb {E} _ {x, y} \ left [{\ frac {\ partial E (x, h)} {\ partial \ theta}} \ right]}
Cu:
-
θ{\ displaystyle \ theta} variabile de sistem (greutăți sau părtinire);
-
EX,y{\ displaystyle \ mathbb {E} _ {x, y}}așteptarea matematică asupra variabilelor aleatorii și ;X{\ displaystyle x}y{\ displaystyle y}
-
X(t){\ displaystyle x ^ {(t)}}o valoare a setului de date ;
-
E(X,h){\ displaystyle E (x, h)} energia definită mai sus.
Observăm prezența a doi termeni în această expresie, numiți fază pozitivă și fază negativă. Faza pozitivă este ușor calculată pentru prejudecată și pentru matricea de greutate.
Apoi obținem:
Eh[∂E(X(t),h)∂Weuj|X(t)]=-h(X(t))∗X(t)T{\ displaystyle \ mathbb {E} _ {h} \ left [{\ frac {\ partial E (x ^ {(t)}, h)} {\ partial W_ {ij}}} | x ^ {(t) } \ right] = - h (x ^ {(t)}) * {x ^ {(t)}} ^ {\ mathsf {T}}}
Cu h (x) starea stratului ascuns știind x dat de formulă
h(X)=seugm(W∗X+b){\ displaystyle h (x) = sigm (W * x + b)}
Cea mai complicată parte este calcularea a ceea ce se numește faza negativă . Nu îl putem calcula direct, deoarece nu cunoaștem funcția de normalizare a sistemului. Pentru a putea efectua o coborâre în gradient , se calculează ceea ce se numește reconstrucția intrării . Într-adevăr, proprietățile de simetrie ale sistemului permit calcularea intrării estimate de model, este suficient să se aplice formula:
X(t){\ displaystyle x ^ {(t)}}
Xrevs.=WT∗h(X)+vs.{\ displaystyle x_ {rec} = W ^ {\ mathsf {T}} * h (x) + c}
cu părtinirea stratului ascuns de neuroni .
vs.{\ displaystyle c}H{\ displaystyle H}
La fel, starea stratului ascuns poate fi recalculată prin repetarea procesului. În cele din urmă, putem rezuma algoritmul de coborâre a gradientului după cum urmează (vorbim despre algoritmul de divergență contrastivă, prescurtat în mod obișnuit CD-k)
x <= x(t)
h <= W*x + b
phasePositive <= -h*Transpose(x)
Pour i allant de 1 à k:
x = Transpose(W) * h(x) + c
h = W*x + b
phaseNegative <= -h*transpose(x)
gradient <= phasePositive-phaseNegative
W <= W + alpha*gradient
c <= c + alpha*(x(t)-x)
b <= b + alpha*(h(x(t)) - h)
Extensie
Mașina Boltzmann restricționată este de fapt un caz special al mașinii Boltzmann în care neuronii aceluiași strat sunt independenți unul de celălalt. Calculele sunt mult facilitate de această aproximare, dar rezultatele obținute sunt mai puțin bune.
Articole similare
Note și referințe
-
(în) Paul Smolensky , David E. Rumelhart ( dir. ) Și James L. McClelland ( eds. ), Prelucrare distribuită în paralel : explorări în microstructura cognitivă, volumul 1: fundații , MIT Press ,1986, 194–281 p. ( ISBN 0-262-68053-X , citiți online ) , "Capitolul 6: Prelucrarea informațiilor în sistemele dinamice: fundamentele teoriei armoniei"
-
Ruslan Salakhutdinov și Geoffrey Hinton, „Deep Boltzmann Machines” , în AISTATS 2009 ,
2009( citește online ).
-
http://image.diku.dk/igel/paper/AItRBM-proof.pdf
-
http://www.cs.toronto.edu/~tijmen/pcd/pcd.pdf
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">