Omezený stroj Boltzmann
Ve strojovém učení je Boltzmann machine limited typ umělé neurální sítě pro učení bez dozoru . Běžně se používá k odhadu pravděpodobnostní distribuce datové sady . To bylo původně vynalezeno pod názvem Harmonium v roce 1986 Paul Smolenski.
Popis
Ve své nejjednodušší formě je Boltzmannův stroj tvořen vrstvou neuronů, které přijímají vstup, a skrytou vrstvou neuronů. Pokud předpokládáme, že neurony stejné vrstvy jsou na sobě nezávislé, nazýváme tuto konfiguraci omezeným Boltzmannovým strojem (RBM).
Definujeme aktivační energii pro omezený Boltzmannův stroj takto:
E=-(∑i,jwijXihj+∑ibiXi+∑jvs.jhj){\ displaystyle E = - \ vlevo (\ součet _ {i, j} w_ {ij} \, x_ {i} \, h_ {j} + \ součet _ {i} b_ {i} \, x_ {i} + \ sum _ {j} c_ {j} h_ {j} \ vpravo)}
S:
-
wij{\ displaystyle w_ {ij}}
je hmotnost mezi neuronem a neuronem ;j{\ displaystyle j}
i{\ displaystyle i}![i](https://wikimedia.org/api/rest_v1/media/math/render/svg/add78d8608ad86e54951b8c8bd6c8d8416533d20)
-
Xi{\ displaystyle x_ {i}}
je stav ,, viditelného neuronu ;Xi∈{0,1}{\ displaystyle x_ {i} \ v \ {0,1 \}}
i{\ displaystyle i}![i](https://wikimedia.org/api/rest_v1/media/math/render/svg/add78d8608ad86e54951b8c8bd6c8d8416533d20)
-
hj{\ textstyle h_ {j}}
je stav skrytého neuronu ;j{\ textstyle j}![{\ textstyle j}](https://wikimedia.org/api/rest_v1/media/math/render/svg/98c853a238654c3e0a13c0e7617ec5cb5352601a)
-
bi{\ displaystyle b_ {i}}
a jsou zkreslení neuronů a .vs.j{\ displaystyle c_ {j}}
Xi{\ displaystyle x_ {i}}
hj{\ displaystyle h_ {j}}![h_ {j}](https://wikimedia.org/api/rest_v1/media/math/render/svg/614689f15f73ad5b4a5d7fa837a72614202b0d89)
Společná pravděpodobnost konfigurace je pak dána vztahem(Xi,hj){\ displaystyle (x_ {i}, h_ {j})}![{\ displaystyle (x_ {i}, h_ {j})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2d0a25ea6e4476cefe6601edb737ac039e96ea6a)
P(Xi,hj)=exp(-E(Xi,hj))/Z{\ displaystyle P (x_ {i}, h_ {j}) = \ exp (-E (x_ {i}, h_ {j})) / Z}
S:
-
E{\ displaystyle E}
výše definovaná energetická funkce;
-
Z{\ displaystyle Z}
normalizační funkce, která způsobí, že součet všech pravděpodobností bude 1.
Učení se
Boltzmannův stroj trénuje pomocí učení bez dozoru. Snažíme se minimalizovat pravděpodobnost logu . Derivace logaritmické pravděpodobnosti dává následující výraz:
∂[-log(p(X(t)))]∂θ=Eh[∂E(X(t),h)∂θ|X(t)]-EX,y[∂E(X,h)∂θ]{\ displaystyle {\ frac {\ částečné \ vlevo [- \ log (p (x ^ {(t)})) \ vpravo]} {\ částečné \ theta}} = \ mathbb {E} _ {h} \ vlevo [{\ frac {\ částečné E (x ^ {(t)}, h)} {\ částečné \ theta}} | x ^ {(t)} \ vpravo] - \ mathbb {E} _ {x, y} \ left [{\ frac {\ částečné E (x, h)} {\ částečné \ theta}} \ vpravo]}
S:
-
θ{\ displaystyle \ theta}
systémové proměnné (váhy nebo zkreslení);
-
EX,y{\ displaystyle \ mathbb {E} _ {x, y}}
matematické očekávání náhodných proměnných a ;X{\ displaystyle x}
y{\ displaystyle}![y](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8a6208ec717213d4317e666f1ae872e00620a0d)
-
X(t){\ displaystyle x ^ {(t)}}
hodnota datové sady ;
-
E(X,h){\ displaystyle E (x, h)}
energie definovaná výše.
Všimli jsme si přítomnosti dvou termínů v tomto výrazu, nazývaných pozitivní fáze a negativní fáze. Kladná fáze se snadno vypočítá pro předpětí a pro matici hmotnosti.
Poté získáme:
Eh[∂E(X(t),h)∂Žij|X(t)]=-h(X(t))∗X(t)T{\ displaystyle \ mathbb {E} _ {h} \ vlevo [{\ frac {\ částečné E (x ^ {(t)}, h)} {\ částečné W_ {ij}}} | x ^ {(t) } \ right] = - h (x ^ {(t)}) * {x ^ {(t)}} ^ {\ mathsf {T}}}
S h (x) stav skryté vrstvy s vědomím x daný vzorcem
h(X)=siGm(Ž∗X+b){\ displaystyle h (x) = sigm (W * x + b)}
Nejkomplikovanější částí je výpočet tzv. Negativní fáze . Nemůžeme to vypočítat přímo, protože neznáme normalizační funkci systému. Aby bylo možné provést gradientní sestup , vypočítá se tzv. Rekonstrukce záznamu . Vlastnosti symetrie systému skutečně umožňují vypočítat vstup odhadovaný modelem, stačí použít vzorec:
X(t){\ displaystyle x ^ {(t)}}![{\ displaystyle x ^ {(t)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/44d7d165662ca063303fd5cf798aa5840ea8a945)
XrEvs.=ŽT∗h(X)+vs.{\ displaystyle x_ {rec} = W ^ {\ mathsf {T}} * h (x) + c}
s předpojatostí skryté vrstvy neuronů .
vs.{\ displaystyle c}
H{\ displaystyle H}![H](https://wikimedia.org/api/rest_v1/media/math/render/svg/75a9edddcca2f782014371f75dca39d7e13a9c1b)
Podobně lze stav skryté vrstvy přepočítat opakováním procesu. Nakonec můžeme shrnout algoritmus gradientního sestupu následovně (hovoříme o algoritmu Contrastive Divergence, běžně zkráceném 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)
Rozšíření
Omezený Boltzmannův stroj je ve skutečnosti zvláštním případem Boltzmannova stroje, kde jsou neurony stejné vrstvy na sobě nezávislé. Výpočty tato aproximace velmi usnadňuje, ale získané výsledky jsou méně dobré.
Související články
Poznámky a odkazy
-
(in) Paul Smolensky , David E. Rumelhart ( dir. ) A James L. McClelland ( eds. ), Parallel Distributed Processing : Explorations in the Microstructure of Cognition, Volume 1: Foundations , MIT Press ,1986, 194–281 s. ( ISBN 0-262-68053-X , číst online ) , „Kapitola 6: Zpracování informací v dynamických systémech: Základy teorie harmonie“
-
Ruslan Salakhutdinov a Geoffrey Hinton, „Deep Boltzmann Machines“ , v AISTATS 2009 ,
2009( číst 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;">