Przejdź do zawartości

Maszyna Boltzmanna

Z Wikipedii, wolnej encyklopedii
Graficzna reprezentacja przykładowej maszyny Boltzmanna.
Maszyna Boltzmanna bez ograniczeń: - cztery neurony warstwy widocznej, - trzy neurony warstwy ukrytej; linie łączą każdy neuron z pozostałymi, co oznacza, że oddziaływania występują między wszystkimi neuronami sieci; brak tu jakichkolwiek ograniczeń

Maszyna Boltzmanna (znana także jako model Sherringtona–Kirkpatricka z polem zewnętrznym lub stochastyczny model Isinga), nazwana na cześć Ludwiga Boltzmanna, to model sztucznej sieci neuronowej. Dynamika tych sieci neuronowych oparta jest o podobieństwo do dynamiki procesów stochastycznych. Wyróżnia się maszyny Boltzmanna bez ograniczeń, gdzie każdy neuron sieci łączy się z wszystkimi innymi neuronami tej sieci oraz maszyny Boltzmanna z ograniczeniami. Dopiero te drugie okazały się przydatne w praktycznych problemach uczenia maszynowego oraz wnioskowania, gdy przy odpowiednim ograniczeniu połączeń uczenie zaczęła być wystarczająco efektywne, aby rozwiązywać praktyczne problemy.

Nazwa tych sieci neuronowych pochodzi od rozkładu Boltzmanna znanego z mechaniki statystycznej. Zostały spopularyzowane przez Geoffreya Hintona, Terry’ego Sejnowskiego oraz Yanna LeCuna w środowiskach kognitywistycznych, zwłaszcza w uczeniu maszynowym.

Struktura

[edytuj | edytuj kod]

Neurony maszyny Boltzmanna przyjmują tylko dwa stany - lub , wagi oddziaływań neuronów mają charakter stochastyczny (tj. są obliczane przy założeniu, iż neurony podlegają procesowi stochastycznemu o zadanym rozkładzie prawdopodobieństwa); całkowita „energia” sieci zdefiniowana jest wzorem (identycznie jak w sieciach Hopfielda i modelach Isinga)

gdzie:

  • - waga oddziaływania neuronów na neuron
  • - stan -tego neuronu,
  • - bias przypisany do -tego neuronu ( to próg aktywacji -tego neuronu)

przy czym często zakłada się, że wagi tworzą macierz symetryczną z zerami na przekątnej, tj. oraz .

Prawdopodobieństwo wejścia neuronu w stan "włączony"

[edytuj | edytuj kod]

Zmiana globalnej energii wynikająca z tego, że pojedynczy neuron przejdzie ze stanu 0 (wyłączony) do stanu 1 (włączony)

dana jest wzorem (przy założeniu symetrycznej macierzy wag):

Z założenia, że neurony tworzą zespół statystyczny podlegający rozkładowi Boltzmanna wynika, że energia stanu jest proporcjonalna do ujemnego logarytmu prawdopodobieństwa zajęcia tego stanu przez układ; stąd otrzymujemy:

gdzie jest stałą Boltzmanna.

(Stała ta jest "wchłaniana" w obliczeniach przez zakładaną wartość temperatury sztucznej sieci neuronowej, przy czym nazywa się temperaturą, choć nie ma to bezpośredniego odniesienia do temperatury prawdziwych układów fizycznych).

Prawdopodobieństwa, iż neuron jest „włączony” lub „wyłączony”, sumują się do , ; stąd mamy:

Przekształcając powyższy wzór otrzyma się że prawdopodobieństwo, iż -ty neuron jest w stanie „włączonym”:

Prawdopodobieństwo to zależy więc od zależy od energii . Relacja ta jest źródłem funkcji logistycznej występującej w wyrażeniach prawdopodobieństwa w wariantach maszyny Boltzmanna.

Stan równowagi

[edytuj | edytuj kod]

Sieć zmienia swój stan poprzez wielokrotne losowe wybieranie neuronów i obliczanie jego stanu. Po wystarczająco długim działaniu w danej temperaturze, prawdopodobieństwo globalnego stanu sieci zależy wyłącznie od energii tego stanu globalnego, zgodnie z rozkładem Boltzmanna, a nie od stanu początkowego, od którego rozpoczęto proces. Oznacza to, że logarytmy prawdopodobieństw stanów globalnych stają się liniowe względem ich energii. Ta zależność jest prawdziwa, gdy maszyna znajduje się w stanie "równowagi termicznej", co oznacza, że rozkład prawdopodobieństwa stanów globalnych ustabilizował się.

Proces obliczeniowy zaczyna się zakładając wysoką temperaturę sieci, po czym temperaturę obniża się stopniowo, aż sieć osiągnie równowagę termiczną przy niższej temperaturze. Może wtedy zbiegać do rozkładu, w którym poziom energii oscyluje wokół minimum globalnego. Proces ten nazywa się wyżarzaniem.

Aby wytrenować sieć w taki sposób, by miała szansę zbiegać do stanu globalnego zgodnie z zewnętrznym rozkładem nad tymi stanami, wagi muszą być ustawione tak, aby stany globalne o najwyższych prawdopodobieństwach otrzymywały najniższe energie. Odbywa się to poprzez proces uczenia.

Uczenie

[edytuj | edytuj kod]

Neurony w maszynie Boltzmanna dzielą się na neurony „widoczne”, V, oraz neurony „ukryte”, H. Neurony widoczne to te, które otrzymują informacje ze „środowiska”, tj. zbiór treningowy to zbiór wektorów binarnych nad zestawem V. Rozkład nad zbiorem treningowym oznaczamy jako .

Rozkład nad globalnymi stanami zbiega się, gdy maszyna Boltzmanna osiąga równowagę termiczną. Oznaczamy ten rozkład, po zeskalowaniu go po neuronach ukrytych, jako .

Naszym celem jest przybliżenie „rzeczywistego” rozkładu za pomocą wytwarzanego przez maszynę. Podobieństwo tych dwóch rozkładów mierzone jest za pomocą dywergencji Kullbacka–Leiblera,

gdzie suma przebiega po wszystkich możliwych stanach . jest funkcją wag, ponieważ one determinują energię stanu, a energia determinuje , zgodnie z rozkładem Boltzmanna. Algorytm optymalizacji gradientowej względem zmienia daną wagę, , przez odjęcie pochodnej cząstkowej względem tej wagi. Uczenie maszyny Boltzmanna przebiega w dwóch naprzemiennych fazach:

a). faza „pozytywna”, w której stany neuronów widocznych są ustalone na konkretny binarny wektor stanu pobrany ze zbioru treningowego (zgodnie z ),

b). faza „negatywna”, w której sieć działa swobodnie, tj. tylko neurony wejściowe mają stan określony przez dane zewnętrzne, natomiast neurony wyjściowe mogą się swobodnie zmieniać.

Gradient względem danej wagi, , dany jest równaniem

gdzie:

  • - prawdopodobieństwo, że neurony oraz są jednocześnie włączone, gdy maszyna jest w stanie równowagi w fazie pozytywnej,
  • - prawdopodobieństwo, że neurony oraz są jednocześnie włączone, gdy maszyna jest w stanie równowagi w fazie negatywnej,
  • - współczynnik uczenia.

Ten wynik wynika z faktu, że w równowadze termicznej prawdopodobieństwo dowolnego stanu globalnego podczas swobodnego działania sieci jest dane przez rozkład Boltzmanna.

Powyższa reguła uczenia się sieci ma odpowiednik w biologicznej sieci neuronowej: jedyna informacja potrzebna do zmiany wag pochodzi z „lokalnej” informacji, tzn. że połączenie ("synapsa") nie potrzebuje informacji o niczym innym poza dwoma neuronami, które łączy. Odpowiednika takiego nie mają inne metody trenowania sieci neuronowych, jak np. backpropagation.

Uczenie maszyny Boltzmanna polega na minimalizowaniu dywergencji Kullbacka-Leiblera.

Uczenie biasów przebiega podobnie, ale używa tylko aktywności pojedynczego neuronu:

Zobacz też

[edytuj | edytuj kod]

Bibliografia

[edytuj | edytuj kod]
  • Ryszard Tadeusiewicz, Sieci Neuronowe, Akademicka Oficyna Wydawnicza Warszawa 1991, dostępny online - plik pdf
  • Ryszard Tadeusiewicz, Maciej Szaleniec, Leksykon sieci neuronowych, Wydanie I Wrocław 2015, hasło: Probabilistyczna sieć neuronowa, str. 74 oraz hasła z tym hasłem powiązane linkami, dostęp online: file:///C:/Users/J/Downloads/Leksykon_sieci_neuronowych.pdf

Dalsza literatura

[edytuj | edytuj kod]

Linki zewnętrzne

[edytuj | edytuj kod]