Jak zdefiniować stany w uczeniu się przez wzmocnienie?

14

Studiuję naukę wzmacniającą i jej warianty. Zaczynam rozumieć, jak działają algorytmy i jak mają one zastosowanie do MDP. To, czego nie rozumiem, to proces definiowania stanów MDP. W większości przykładów i samouczków reprezentują one coś prostego, jak kwadrat w siatce lub podobny.

W przypadku bardziej skomplikowanych problemów, takich jak robot uczący się chodzić itp., Jak zabrać się do definiowania tych stanów? Czy możesz użyć algorytmów uczenia się lub klasyfikacji, aby „nauczyć się” tych stanów?

Andy
źródło

Odpowiedzi:

14

Problem reprezentacji stanu w uczeniu się zbrojenia (RL) jest podobny do problemów reprezentacji cech, wyboru cech i inżynierii cech w uczeniu nadzorowanym lub bez nadzoru.

Literatura, która uczy podstaw RL, zwykle wykorzystuje bardzo proste środowiska, dzięki czemu można wyliczyć wszystkie stany. Upraszcza to szacunki wartości do podstawowych średnich kroczących w tabeli, które są łatwiejsze do zrozumienia i wdrożenia. Algorytmy uczenia tabelaryczne również uzasadnione teoretyczne gwarancje konwergencji, co oznacza, jeśli można uproszczenia problemu tak, że ma, powiedzmy, mniej niż kilka milionów stanów, to warto spróbować.

Najciekawsze problemy z kontrolą nie mieszczą się w tej liczbie stanów, nawet jeśli je dyskrecjonujesz. Wynika to z „ klątwy wymiarowości ”. W przypadku tych problemów zazwyczaj reprezentujesz swój stan jako wektor różnych cech - np. Dla robota, różne pozycje, kąty, prędkości części mechanicznych. Podobnie jak w przypadku nadzorowanego uczenia się, możesz chcieć traktować je do wykorzystania w określonym procesie uczenia się. Na przykład zazwyczaj chcesz, aby wszystkie były numeryczne, a jeśli chcesz korzystać z sieci neuronowej, powinieneś również znormalizować je do standardowego zakresu (np. -1 do 1).

Oprócz powyższych obaw, które dotyczą innych uczenia maszynowego, w przypadku języka RL należy również martwić się właściwością Markowa - że stan zapewnia wystarczającą ilość informacji, aby można było dokładnie przewidzieć oczekiwane kolejne nagrody i kolejne stany w przypadku danego działania, bez potrzeby żadnych dodatkowych informacji. Nie musi to być idealne, małe różnice wynikające np. Ze zmian gęstości powietrza lub temperatury robota kołowego zwykle nie mają dużego wpływu na jego nawigację i można je zignorować. Każdy czynnik, który jest zasadniczo przypadkowy, można również zignorować, pozostając przy teorii RL - może to spowodować, że czynnik będzie mniej optymalny ogólnie, ale teoria nadal będzie działać.

Jeśli istnieją konsekwentne nieznane czynniki, które wpływają na wynik, i można je logicznie wywnioskować - być może z historii stanu lub działań - ale wykluczyłeś je z reprezentacji stanu, możesz mieć poważniejszy problem i agent może się nie nauczyć .

Warto tutaj zauważyć różnicę między obserwacją a stanem . Obserwacja to niektóre dane, które można gromadzić. Na przykład na robocie mogą znajdować się czujniki, które zwracają pozycje jego stawów. Ponieważ państwo powinno posiadać właściwość Markowa, jedna surowa obserwacja może nie być wystarczającą ilością danych, aby uzyskać odpowiedni stan. W takim przypadku możesz albo zastosować swoją wiedzę domenową, aby zbudować lepszy stan z dostępnych danych, albo możesz spróbować zastosować techniki zaprojektowane dla częściowo obserwowalnych MDP (POMDP) - te skutecznie próbują zbudować brakujące części danych stanu statystycznie. Możesz do tego użyć RNN lub ukrytego modelu markowa (zwanego również „stanem przekonań”), a w pewnym sensie używa „algorytmy uczenia się lub klasyfikacji do „uczenia się” tych stanów, tak jak prosiłeś.

Na koniec należy rozważyć typ modelu aproksymacji, którego chcesz użyć. Stosuje się tutaj podobne podejście jak w przypadku nauki nadzorowanej:

  • Prosta regresja liniowa z funkcjami zaprojektowanymi w oparciu o wiedzę w dziedzinie może być bardzo dobra. Być może trzeba będzie ciężko pracować nad wypróbowaniem różnych reprezentacji stanów, aby działać w przybliżeniu liniowym. Zaletą jest to, że to prostsze podejście jest bardziej odporne na problemy ze stabilnością niż przybliżenie nieliniowe

  • Bardziej złożony nieliniowy aproksymator funkcji, taki jak wielowarstwowa sieć neuronowa. Możesz wprowadzić bardziej „surowy” wektor stanu i mieć nadzieję, że ukryte warstwy znajdą jakąś strukturę lub reprezentację, która prowadzi do dobrych oszacowań. W pewnym sensie jest to również „ algorytm uczenia się lub klasyfikowania do„ uczenia się ”tych stanów ”, ale w inny sposób niż RNN lub HMM. To może być rozsądne podejście, jeśli Twój stan został wyrażony naturalnie jako obraz ekranowy - samodzielne ustalenie inżynierii funkcji dla danych obrazu jest bardzo trudne.

Zespół Atari DQN przeprowadzony przez zespół DeepMind wykorzystał połączenie inżynierii cech i poleganie na głębokiej sieci neuronowej, aby osiągnąć swoje wyniki. Inżynieria funkcji obejmowała próbkowanie obrazu w dół, redukowanie go do skali szarości i - co ważne dla właściwości Markowa - stosowanie czterech kolejnych ramek do reprezentowania jednego stanu, dzięki czemu informacje o prędkości obiektów były obecne w reprezentacji stanu. Następnie DNN przetworzył obrazy w funkcje wyższego poziomu, które można wykorzystać do prognozowania wartości stanu.

Neil Slater
źródło
3

Powszechnym wczesnym podejściem do modelowania złożonych problemów była dyskretyzacja . Na poziomie podstawowym dzieli to złożoną i ciągłą przestrzeń na siatkę. Następnie możesz użyć dowolnej z klasycznych technik RL zaprojektowanych dla dyskretnych, liniowych przestrzeni. Jednak, jak możesz sobie wyobrazić, jeśli nie będziesz ostrożny, może to spowodować wiele problemów!

Klasyczna książka Sutton & Barto Reinforcement Learning zawiera pewne sugestie dotyczące innych sposobów rozwiązania tego problemu. Jednym z nich jest kodowanie kafelkowe , opisane w sekcji 9.5.4 nowej, drugiej edycji . W kodowaniu kafelkowym generujemy dużą liczbę siatek, każda o różnych odstępach między siatkami. Następnie nakładamy na siebie siatki. Powoduje to powstawanie niejednorodnych kształtów w odrębnych obszarach i może dobrze działać w przypadku różnych problemów.

Sekcja 9.5 obejmuje również wiele innych sposobów kodowania ciągłej przestrzeni w dyskretnym MDP, w tym funkcje oparte na radiach i zgrubne kodowanie. Sprawdź to!

John Doucette
źródło