Boltzmann-gép

Hirdetések

Az ANN-ben használt korai optimalizálási technikák alapját képező sztochasztikus tanulási folyamatok rekurrens szerkezetűek. A Boltzmann-gépet Geoffrey Hinton és Terry Sejnowski találta fel 1985-ben. A Boltzmann-gépről Hinton szavaiból még világosabban kiolvasható:

“Ennek a hálózatnak meglepő tulajdonsága, hogy csak a helyileg rendelkezésre álló információt használja fel. A súlyváltozás csak az általa összekötött két egység viselkedésétől függ, még akkor is, ha a változás egy globális mértéket optimalizál.” – Ackley, Hinton 1985.

Néhány fontos pont a Boltzmann-gépről –

  • Rekurrens szerkezetet használnak.

  • Sztochasztikus neuronokból állnak, amelyeknek két lehetséges állapot közül az egyik, 1 vagy 0 lehet.

  • A neuronok egy része adaptív (szabad állapotú), más része pedig kapcsolt (befagyasztott állapotú).

  • Ha a diszkrét Hopfield-hálózatra szimulált lágyítást alkalmazunk, akkor Boltzmann-gép lesz belőle.

A Boltzmann-gép célja

A Boltzmann-gép fő célja egy probléma megoldásának optimalizálása. A Boltzmann-gép feladata az adott problémához kapcsolódó súlyok és mennyiségek optimalizálása.

Építészet

A következő ábra a Boltzmann-gép felépítését mutatja. Az ábrán jól látható, hogy egy kétdimenziós egységtömbről van szó. Itt az egységek közötti összeköttetések súlyai -p, ahol p > 0. Az önkapcsolatok súlyait b adja, ahol b > 0.

Boltzmann

Tréningalgoritmus

Mivel tudjuk, hogy a Boltzmann-gépek súlyai rögzítettek, ezért nem lesz tréningalgoritmus, mivel nem kell frissítenünk a hálózat súlyait. A hálózat teszteléséhez azonban be kell állítanunk a súlyokat, valamint meg kell találnunk a konszenzusfüggvényt (CF).

A Boltzmann-gép Ui és Uj egységekből áll, és ezeken kétirányú kapcsolatok vannak.

  • Megfigyeljük a fix súlyt, mondjuk wij.

  • wij ≠ 0, ha Ui és Uj összekapcsolódik.

  • A súlyozott összekapcsolódásban is létezik egy szimmetria, i.azaz wij = wji.

  • wii is létezik, azaz az egységek között fennállna az önkapcsolás.

  • Minden Ui egység esetében az ui állapota vagy 1 vagy 0 lenne.

A Boltzmann-gép fő célja a konszenzusfüggvény (CF) maximalizálása, amely a következő összefüggéssel adható meg

$$CF\:=\:\displaystyle\sum\limits_{i} \displaystyle\sum\limits_{j\leqslant i} w_{ij}u_{i}u_{j}$$

Most, amikor az állapot 1-ről 0-ra vagy 0-ról 1-re változik, akkor a konszenzus változása a következő összefüggéssel adható meg –

$$\\Delta CF\:=\:(1\:-\:2u_{i})(w_{ij}\:+\:\displaystyle\sum\limits_{j\neq i} u_{i} w_{ij})$$

Itt ui az Ui aktuális állapota.

A (1 – 2ui) együtthatóváltozást a következő összefüggés adja –

$$(1\:-\:2u_{i})\:=\:\begin{cases}+1, & U_{i}\:is\:currently\:off\\\-1, & U_{i}\:is\:jelenleg\:on\end{esetek}$$

Az Ui egység általában nem változtatja meg az állapotát, de ha mégis, akkor az információ lokálisan az egységnél maradna. Ezzel a változással a hálózat konszenzusa is növekedne.

A hálózat valószínűségét, hogy elfogadja az egység állapotváltozását, a következő összefüggés adja –

$$AF(i,T)\:=\:\frac{1}{1\:+\:exp}$$

Itt T a vezérlő paraméter. Ez csökken, ahogy a CF eléri a maximális értéket.

Tesztalgoritmus

1. lépés – A képzés megkezdéséhez inicializáljuk a következőket –

  • A probléma kényszerét reprezentáló súlyok
  • Vezérlő paraméter T

2. lépés – A 3-8. lépés folytatása, ha a megállási feltétel nem igaz.

3. lépés – Végezzük el a 4-7. lépést.

4. lépés – Tegyük fel, hogy az egyik állapot súlya megváltozott, és válasszuk ki az I, J egész számokat 1 és n közötti véletlen értékként.

5. lépés – Számítsuk ki a konszenzus változását az alábbiak szerint –

$$$\\Delta CF\:=\:(1\:-\:2u_{i})(w_{ij}\:+\:\displaystyle\sum\limits_{j\neq i} u_{i} w_{ij})$$$

6. lépés – Számítsuk ki annak valószínűségét, hogy ez a hálózat elfogadja az állapotváltozást

$$AF(i,T)\:=\:\frac{1}{1\:+\:exp}$$

7. lépés – Fogadjuk el vagy utasítsuk el ezt a változást az alábbiak szerint –

I. eset – ha R < AF, fogadjuk el a változást.

II. eset – ha R ≥ AF, utasítsuk el a módosítást.

Itt R a 0 és 1 közötti véletlen szám.

8. lépés – A szabályozási paraméter (hőmérséklet) csökkentése az alábbiak szerint –

T(új) = 0.95T(régi)

9. lépés – A megállási feltételek vizsgálata, amelyek a következők lehetnek –

  • A hőmérséklet elér egy meghatározott értéket
  • Nincs állapotváltozás egy meghatározott számú iteráción keresztül
Hirdetések

.

Szólj hozzá!