Maszyna Boltzmanna
Są to stochastyczne procesy uczenia się o powtarzalnej strukturze i stanowią podstawę wczesnych technik optymalizacyjnych stosowanych w SSN. Maszyna Boltzmanna została wynaleziona przez Geoffreya Hintona i Terry'ego Sejnowskiego w 1985 roku. Więcej klarowności można zaobserwować w słowach Hintona na temat Maszyny Boltzmanna.
„Zaskakującą cechą tej sieci jest to, że wykorzystuje ona tylko lokalnie dostępne informacje. Zmiana wagi zależy jedynie od zachowania dwóch jednostek, które łączy, mimo że zmiana optymalizuje miarę globalną ”- Ackley, Hinton 1985.
Kilka ważnych punktów na temat maszyny Boltzmanna -
Używają powtarzalnej struktury.
Składają się z neuronów stochastycznych, które mają jeden z dwóch możliwych stanów, 1 lub 0.
Niektóre z neuronów w tym są adaptacyjne (stan wolny), a niektóre są zaciśnięte (stan zamrożony).
Jeśli zastosujemy symulowane wyżarzanie w dyskretnej sieci Hopfielda, stanie się to maszyną Boltzmanna.
Cel maszyny Boltzmanna
Głównym celem Maszyny Boltzmanna jest optymalizacja rozwiązania problemu. Zadaniem Boltzmanna Machine jest optymalizacja wagi i ilości związanych z tym konkretnym problemem.
Architektura
Poniższy diagram przedstawia architekturę maszyny Boltzmanna. Z diagramu jasno wynika, że jest to dwuwymiarowa tablica jednostek. Tutaj wagi dla połączeń między jednostkami są–p gdzie p > 0. Wagi połączeń samodzielnych są podane przezb gdzie b > 0.
Algorytm treningowy
Ponieważ wiemy, że maszyny Boltzmanna mają stałe wagi, nie będzie więc algorytmu uczącego, ponieważ nie musimy aktualizować wag w sieci. Aby jednak przetestować sieć, musimy ustawić wagi, a także znaleźć funkcję konsensusu (CF).
Maszyna Boltzmanna posiada zestaw jednostek Ui i Uj i ma na nich połączenia dwukierunkowe.
Rozważamy ustaloną wagę powiedz wij.
wij ≠ 0 gdyby Ui i Uj są połączone.
Istnieje również symetria w ważonych wzajemnych połączeniach, tj wij = wji.
wii istnieje również, tj. istniałoby samo-połączenie między jednostkami.
Dla każdej jednostki Ui, jego stan ui byłoby 1 lub 0.
Głównym celem Maszyny Boltzmanna jest maksymalizacja funkcji konsensusu (CF), którą można określić za pomocą następującej relacji
$$ CF \: = \: \ Displaystyle \ sum \ limity_ {i} \ Displaystyle \ sum \ limity_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j} $$
Teraz, gdy stan zmienia się z 1 na 0 lub z 0 na 1, to zmiana w konsensusie może być określona następującą relacją -
$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ suma \ limit_ {j \ neq i} u_ {i} w_ { ij}) $$
Tutaj ui to obecny stan Ui.
Zmienność współczynnika (1 - 2ui) jest określona zależnością -
$$ (1 \: - \: 2u_ {i}) \: = \: \ begin {cases} +1, & U_ {i} \: is \: obecnie \: wyłączone \\ - 1, & U_ {i } \: jest \: obecnie \: w \ end {przypadkach} $$
Ogólnie jednostka Uinie zmienia swojego stanu, ale jeśli tak się stanie, informacja będzie lokalna dla jednostki. Wraz z tą zmianą nastąpiłby również wzrost konsensusu w sieci.
Prawdopodobieństwo zaakceptowania przez sieć zmiany stanu urządzenia wyraża zależność -
$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$
Tutaj, Tjest parametrem kontrolnym. Zmniejszy się, gdy CF osiągnie wartość maksymalną.
Algorytm testowania
Step 1 - Zainicjuj następujące elementy, aby rozpocząć szkolenie -
- Wagi reprezentujące ograniczenie problemu
- Parametr sterowania T
Step 2 - Kontynuuj kroki 3-8, jeśli warunek zatrzymania nie jest spełniony.
Step 3 - Wykonaj kroki 4-7.
Step 4 - Załóżmy, że jeden ze stanów zmienił wagę i wybierz liczbę całkowitą I, J jako wartości losowe między 1 i n.
Step 5 - Oblicz zmianę konsensusu w następujący sposób -
$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ suma \ limit_ {j \ neq i} u_ {i} w_ { ij}) $$
Step 6 - Oblicz prawdopodobieństwo, że ta sieć zaakceptuje zmianę stanu
$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$
Step 7 - Zaakceptuj lub odrzuć tę zmianę w następujący sposób -
Case I - jeśli R < AF, zaakceptuj zmianę.
Case II - jeśli R ≥ AF, odrzuć zmianę.
Tutaj, R to liczba losowa z przedziału od 0 do 1.
Step 8 - Zmniejszyć parametr regulacji (temperaturę) w następujący sposób -
T(new) = 0.95T(old)
Step 9 - Badanie warunków zatrzymania, które mogą być następujące -
- Temperatura osiąga określoną wartość
- Nie ma zmiany stanu dla określonej liczby iteracji