Makina Boltzmann

alt=A graphical representation of an example Boltzmann machine.|parapamje| Një paraqitje grafike e një shembulli të një makine Boltzmann. Çdo brinjë e padrejtuar përfaqëson varësinë. Në këtë shembull ka 3 njësi të fshehura dhe 4 njësi të dukshme. Kjo nuk është një makinë Boltzmann e kufizuar.
Një **makinë Boltzmann** (e quajtur ndryshe edhe **modeli Sherrington–Kirkpatrick me fushë të jashtme** ose **modeli stokastik Ising** ), i emërtuar sipas Ludwig Boltzmann është një model i qelqit spin me një fushë të jashtme, si p.sh., një model Sherrington–Kirkpatrick,  që është një model stokastik lsing . Është një teknikë e fizikës statistikore e zbatuar në kontekstin e shkencës kognitive. 

Makinat Boltzmann janë teorikisht tërheqëse për shkak të lokalitetit dhe natyrës Hebbian-e të algoritmit stërvitës të tyre (të trajnuar sipas rregullit të Hebb-it), dhe për shkak të paralelizmit dhe ngjashmërisë së dinamikës së tyre me proceset e thjeshta fizike. Makinat Boltzmann me lidhje të pakufizuar nuk janë dëshmuar të dobishme për problemet praktike në mësimin makinerik ose gjykime statistikore, por nëse lidhja kufizohet saktësisht siç duhet, mësimi mund të bëhet mjaftueshëm i frytshëm për të qenë i dobishëm në probleme praktike. 

Emërtimi i tyre vjen prej shpërndarjes Boltzmann në mekanikën statistikore, e cila përdoret në funksionin e mostrimit . Ato u popullarizuan dhe u promovuan shumë nga Geoffrey Hinton, Terry Sejnowski dhe Yann LeCun në komunitetet e shkencave kognitive, veçanërisht në mësimin makinerik,  si pjesë e " modeleve të bazuara në energji " (EBM), sepse Hamiltonianët e qelqeve spin si energji përdoren si pikënisje për të përcaktuar detyrën mësimore. 

## Struktura 
alt=A graphical representation of an example Boltzmann machine with weight labels.|djathtas|parapamje| Një paraqitje grafike e një makine Boltzmann me disa pesha të etiketuara. Çdo brinjë e padrejtuar përfaqëson varësinë dhe peshohet me peshën w_{ij} . Në këtë shembull ka 3 njësi të fshehura (blu) dhe 4 njësi të dukshme (të bardha). Kjo nuk është një makinë Boltzmann e kufizuar.
Një makinë Boltzmann, po ashtu si një model Sherrington–Kirkpatrick, është një rrjet njësish me një "energji" totale (Hamiltoniane) të përcaktuar për rrjetin e përgjithshëm. Secila prej njësive prodhojnë rezultate binare. Peshat e makinës Boltzmann janë stokastike. Energjia globale E në një makinë Boltzmann është identike në trajt me atë të rrjeteve Hopfield dhe modeleve Ising :

: E = -\left(\sum_{i

Ku:

* w_{ij} është fuqia e lidhjes ndërmjet njësisë j dhe njësi i .
* s_i është gjendja, s_i \in \{0,1\}, e njësisë i .
* \theta_i është njëanshmëria e njësisë i në funksionin e energjisë globale. ( -\theta_i është pragu i aktivizimit për njësinë.)

Shpesh peshat w_{ij} paraqiten si matricë simetrike W=[w_{ij}] me vlera zero përgjatë diagonales.

## Probabiliteti i gjendjes së njësisë 
Dallimi në energjinë globale që rezulton nga një njësi e vetme i e barabartë me 0 (fikur) kundrejt 1 (ndezur), e shkruar \Delta E_i, duke supozuar një matricë simetrike të peshave, jepet si më poshtë:

: \Delta E_i = \sum_{j>i} w_{ij} \, s_j + \sum_{j

Kjo mund të shprehet si ndryshim i energjive të dy gjendjeve:

: \Delta E_i = E_\text{i=off} - E_\text{i=on}

Zëvendësimi i energjisë së secilës gjendje me probabilitetin e saj relativ sipas faktorit Boltzmann (vetia e një shpërndarjeje Boltzmann që energjia e një gjendje është në përpjesëtim me probabilitetin log negativ të asaj gjendjeje) jep:

: 
\Delta E_{i}
  = -k_{B} T \ln(p_\text{i=off})
    - (-k_{B} T \ln(p_\text{i=on})),

ku k_{B} është konstanta e Boltzmann-it dhe bëhet e barazvlefshme me konceptin artificial të temperaturës T. Duke vënë në dukje se probabilitetet që njësia të jetë *e ndezur* ose *e fikur* e kanë shumën 1, lejon thjeshtimin:

: 
-\frac{\Delta E_{i}}{k_{B}T}
  = -\ln(p_{i=\text{on}}) + \ln(p_{i=\text{off}})
  = \ln\Big(\frac{1 - p_{i=\text{on}}}{p_{i=\text{on}}}\Big)
  = \ln(1 - p_{i=\text{on}}^{-1}),

nga ku rrjedh që probabiliteti i njësisë i të jepet:

: p_{i=\text{on}} = \frac{1}{1+\exp\Big(-\frac{\Delta E_{i}}{k_{B}T}\Big)},

ku ndryshori skalar T quhet temperatura e sistemit. Kjo lidhje është burimi i funksionit logjistik që gjendet në shprehjet e probabilitetit në disa variante të makinës Boltzmann.

## Gjendja e ekuilibrit 
Rrjeti vepron duke zgjedhur në mënyrë të përsëritur një njësi dhe duke rivendosur gjendjen e saj. Pas veprimit për një kohë mjaft të gjatë në një temperaturë të caktuar, probabiliteti i një gjendjeje globale të rrjetit varet vetëm nga energjia e asaj gjendjeje globale, bazuar në shpërndarjen Boltzmann, dhe jo nga gjendja fillestare nga e cila filloi procesi. Kjo do të thotë që probabilitetet logaritmikë të gjendjeve globale bëhen lineare në energjitë e tyre. Kjo marrëdhënie është e vërtetë kur makina është "në ekuilibër termik ", që do të thotë se shpërndarja e probabilitetit të gjendjeve globale ka konvergjuar. Rrjeti duke vepruar fillimisht nga një temperaturë e lartë, temperatura e tij zvogëlohet gradualisht derisa të arrihet një ekuilibër termik në një temperaturë më të ulët. Më pas mund të konvergjojë në një shpërndarje ku niveli i energjisë luhatet rreth minimumit global. Ky proces quhet pjekja e simuluar .

Për të stërvitur rrjetin në mënyrë të tillë që mundësia që ai të konvergjojë në një gjendje globale sipas një shpërndarjeje të jashtme mbi këto gjendje, peshat duhet të vendosen të tilla që gjendjet globale me probabilitetet më të lartë të marrin energjitë më të ulëta. Kjo bëhet me stërvitje.

## Stërvitja 
Njësitë në makinerinë Boltzmann ndahen në njësitë 'e dukshme', V, dhe njësitë 'e fshehura', H. Njësitë e dukshme janë ato që marrin informacion nga 'mjedisi', dmth., bashkësia e të dhënave për stërvitje është një bashkësi vektorësh binarë mbi bashkësinë V. Shpërndarja mbi grupin e trajnimit shënohet si P^+ (V).

Shpërndarja mbi gjendjet globale konvergjon ndërkohë që makina Boltzmann arrin ekuilibrin termik. Pasi e margjinalizojmë mbi njësitë e fshehura, këtë shpërndarje e shënojmë si P^{-}(V) .

Qëllimi ynë është të përafrojmë shpërndarjen "reale" P^{+}(V) duke përdorur P^{-}(V) e prodhuar nga makina. Ngjashmëria e dy shpërndarjeve matet nga divergjenca Kullback-Leibler, G :

: G = \sum_{v}{P^{+}(v)\ln\left({\frac{P^{+}(v)}{P^{-}(v)}}\right)}

ku shuma është mbi të gjitha gjendjet e mundshme të V. G është një funksion i peshave, pasi janë ato që përcaktojnë energjinë e një gjendjeje, dhe energjia përcakton P^{-}(v), siç përcaktohet nga shpërndarja Boltzmann. Një algoritëm i zbritjes me gradient G ndryshon një peshë të caktuar, w_{ij}, duke zbritur derivatin e pjesshëm të G në lidhje me peshën.

Stërvitja e makinës Boltzmann përfshin dy faza të alternuara. Njëra është faza "pozitive" ku gjendjet e dukshme të njësive shtrëngohen sipas një vektori binar të gjendjes e marrë mostër nga bashkësia e të dhënave të stërvitjes (sipas P^{+} ). Tjetra është faza "negative" ku rrjeti lejohet të funksionojë lirshëm, dmth., vetëm nyjet hyrëse e kanë gjendjen e tyre të përcaktuar nga të dhënat e jashtme, ndërsa nyjeve dalëse u lejohet të ndryshojnë lirshëm. Gradienti në lidhje me një peshë të caktuar, w_{ij}, jepet nga ekuacioni: 

: \frac{\partial{G}}{\partial{w_{ij}}} = -\frac{1}{R}[p_{ij}^{+}-p_{ij}^{-}]

ku:

* p_{ij}^{+} është probabiliteti që njësitë *i* dhe *j* janë të dyja të ndezura kur makina është në ekuilibër në fazën pozitive.
* p_{ij}^{-} është probabiliteti që njësitë *i* dhe *j* janë të dyja të ndezura kur makina është në ekuilibër në fazën negative.
* R tregon shkallën e të mësuarit

Ky rezultat rrjedh nga fakti se në ekuilibër termik probabiliteti P^{-}(s) i çdo shteti global s kur rrjeti funksionon lirshëm jepet nga shpërndarja Boltzmann.

Ky rregull i të mësuarit është gjithashtu biologjikisht i arsyeshëm, sepse i vetmi informacion i nevojshëm për të ndryshuar peshat ofrohet nga informacioni "lokal". Kjo do të thotë, lidhja (në biologji, sinapsi) nuk ka nevojë asnjë informacion përveçse dy neuroneve që lidh. Kjo është biologjikisht më e pranueshme krahasuar me algoritme të tjerë të trajnimit të rrjeteve nervore në pjesën e informacionit të nevojshëm nga një lidhje, si p.sh. përhapja e pasme .

Stërvitja e një makinerie Boltzmann nuk përdor algoritmin EM, i cili përdoret shumë në mësimin makinerik. Minimizimi i divergjencës KL e bën atë ekuivalent me maksimizimin e gjasës logaritmike (log-likelihood) të të dhënave. Prandaj, procedura e stërvitjes kryen ngjitjen e gradientit në gjasën logaritmike të të dhënave të vëzhguara. Kjo është në kontrast me algoritmin EM, ku shpërndarja e prapme e kulmeve të fshehura duhet të llogaritet përpara maksimizimit të vlerës së pritur të gjasave të të dhënave të plota gjatë hapit M.

Trajnimi i njëanshmërive është i ngjashëm, por përdoret vetëm aktiviteti i një nyjeje:

: \frac{\partial{G}}{\partial{\theta_{i}}} = -\frac{1}{R}[p_{i}^{+}-p_{i}^{-}]

## Problemet 
Teorikisht makina Boltzmann është një mjet llogaritës mjaft i përgjithshëm. Për shembull, nëse stërvitet për fotografi, makina teorikisht do të modelonte shpërndarjen e fotografive dhe mund ta përdorte atë model, për shembull, për të përfunduar një fotografi të pjesshme.

Fatkeqësisht, makinat Boltzmann përjetojnë një problem serioz praktik, duke qenë se ndalojnë së mësuari saktë kur makina shkallëzohet në madhësi.

## Shiko gjithashtu 
* Makina Boltzmann e kufizuar
* Makina Helmholtz
* Fusha e rastësishme Markov (MRF)
* Modeli Ising (modeli Lenz–Ising)
* Rrjeti Hopfield

## Referime 
## Lexim të mëtejshëm 
* 
* 
* 
* Kothari P (2020): https://www.forbes.com/sites/tomtaulli/2020/02/02/coronavirus-can-ai-artificial-intelligence-make-a-difference/?sh=1eca51e55817
*