55

Znam podstawy sieci neuronowych sprzężenia zwrotnego i jak je trenować z wykorzystaniem algorytmu wstecznej propagacji, ale szukam algorytmu, którego nie będę mógł użyć do szkolenia SSN z uczeniem się wzmacniania.Szkolenie sieci neuronowej ze zbrojeniem uczącym się

Na przykład problem cart pole swing up należy rozwiązać za pomocą SSN. W takim przypadku nie wiem, co należy zrobić, aby kontrolować wahadło, wiem tylko, jak blisko jestem do idealnej pozycji. Muszę nauczyć się SSN w oparciu o nagrodę i karę. W związku z tym nadzorowane uczenie się nie wchodzi w grę.

Inna sytuacja jest podobna do snake game, w której sprzężenie zwrotne jest opóźnione i ogranicza się do celów i celów, a nie do nagrody.

Potrafię wymyślić pewne algorytmy dla pierwszej sytuacji, takie jak wspinaczka górska czy algorytmy genetyczne, ale domyślam się, że obie będą wolne. Mogą również mieć zastosowanie w drugim scenariuszu, ale niesamowicie wolno i nie sprzyjają nauce online.

Moje pytanie jest proste: Czy istnieje prosty algorytm szkolenia sztucznej sieci neuronowej z uczeniem się wzmacniania? Interesują mnie głównie sytuacje nagród w czasie rzeczywistym, ale jeśli algorytm dla sytuacji opartych na celach jest dostępny, jeszcze lepiej.

+1

Dobre pytanie, i myślę, że prawie dokładnie to samo, w którym w moim przypadku sieć neuronowa powtarza się. Kluczową kwestią jest to, że mówisz o 2 różnych algorytmach uczenia się. Nie można zastosować 2 różnych algorytmów uczenia się do tego samego problemu bez powodowania konfliktów, chyba że masz sposób, aby je rozwiązać. –

Odpowiedz

24

Istnieją pewne prace naukowe na ten temat:

a niektóre kod:

To tylko niektóre z najlepszych wyników wyszukiwania w serwisie Google na ten temat. Pierwsze dwie gazety wyglądają całkiem nieźle, chociaż nie czytałem ich osobiście. Myślę, że znajdziesz jeszcze więcej informacji na temat sieci neuronowych z uczeniem się przez wzmocnienie, jeśli przeprowadzisz szybkie wyszukiwanie w Google Scholar.

+0

Trzecie łącze wspomniało coś o Q-learningu. Czy dotyczy to problemu z wózkiem? –

+0

Wydaje się mieć zastosowanie, ponieważ pozwala porównać oczekiwaną użyteczność dostępnych akcji bez posiadania modelu środowiska. Więc jeśli robisz prawdziwy problem ze sprzętem, to będzie to pomocne. Więcej informacji na temat Q-learning znajduje się na stronie: http://www.applied-mathematics.net/qlearning/qlearning.html – Kiril

+2

Czy Q-learning nie obejmuje skończonego zestawu działań? Idealny problem z wózkiem ma ciągły zestaw działań. Czy to problem? –

7

Jeśli dane wyjściowe prowadzące do nagrody r są ponownie przesyłane do sieci r razy, wzmocnisz sieć proporcjonalnie do nagrody. Nie ma to bezpośredniego zastosowania do negatywnych nagród, ale mogę wymyślić dwa rozwiązania, które dadzą różne efekty:

1) Jeśli posiadasz zestaw nagród w zakresie rmin-rmax, zmień ich na 0-(rmax-rmin), tak aby były wszystkie nieujemne. Im większa nagroda, tym silniejsze wzmocnienie, które jest tworzone.

2) Aby uzyskać ujemną nagrodę -r, należy przyjąć losową wartość wyjściową r razy, o ile różni się ona od tej, która prowadzi do ujemnej nagrody. To nie tylko wzmocni pożądane wyniki, ale także rozproszy lub pozwoli uniknąć złych wyników.

+0

Interesujące. Zastanawiam się, jak to się ma do opóźnionej nagrody. Zgaduję, że to działałoby, by określić wszystko, co nie jest celem, jako małą negatywną nagrodę. –

+0

@Kendall Frey: Dla sieci neuronowej, która lepiej radzi sobie z opóźnieniami niż normalne sieci neuronowe, patrz [Pamięć o długim czasie] (https://en.wikipedia.org/wiki/Long_short_term_memory) ([wideo z YouTube] (http://www.youtube.com/watch?v=izGl1YSH_JA)) lub patrz [hierarchiczna pamięć temporalna] (https://en.wikipedia.org/wiki/Hierarchical_temporal_memory) ([wideo z YouTube] (http://www.youtube .com/watch? v = 48r-IeYOvG4)). – HelloGoodbye

+3

Dlaczego powinieneś zmienić tak nagrody? Czy w ogóle wymagają zmiany skali? W ten sposób, po przeskalowaniu, nagroda 'rmin' staje się' 0', więc to, co miało być nagrodą, okazuje się nie mieć efektu wzmocnienia w sieci. – HelloGoodbye