Patrzyłem na naukę wzmacniania, a konkretnie bawiłem się, tworząc własne środowiska do użycia z SI OpenAI Gym. Korzystam z agentów z projektu stable_baselines do testowania go.
Jedną z rzeczy, które zauważyłem w praktycznie wszystkich przykładach RL, jest to, że nigdy nie wydaje się, aby w żadnej sieci istniały warstwy usuwające. Dlaczego to?
Stworzyłem środowisko, które symuluje ceny walut i prosty agent, używając DQN, który próbuje dowiedzieć się, kiedy kupować i sprzedawać. Przeszkolenie go na ponad milion kroków czasowych zaczerpniętych z określonego zestawu danych składających się z 5-minutowych danych cenowych z jednego miesiąca wydaje się bardzo przeważać. Jeśli następnie ocenię agentów i model na podstawie danych z innego miesiąca, wyniki będą fatalne. Brzmi jak klasyczne przepasanie.
Ale czy istnieje powód, dla którego nie widzisz warstw usuwających w sieciach RL? Czy istnieją inne mechanizmy radzenia sobie z nadmiernym dopasowaniem? Czy w wielu przykładach RL to nie ma znaczenia? np. może istnieć tylko jedna prawdziwa droga do najwyższego wyniku w grze „breakout”, więc równie dobrze możesz się tego nauczyć i nie musisz generalizować?
Czy też uważa się, że chaotyczna natura samego środowiska powinna zapewniać wystarczająco różne kombinacje rezultatów, że nie trzeba mieć rezygnujących warstw?
źródło
Odpowiedzi:
Dropout zasadniczo wprowadza nieco więcej wariancji. W nadzorowanych ustawieniach uczenia się rzeczywiście pomaga to ograniczyć nadmierne dopasowanie (chociaż uważam, że porzucanie nauki staje się już coraz mniej .. modne w ostatnich latach niż kilka lat wcześniej; nie jestem jednak w 100% pewien, że nie jest to mój główny cel Obszar zainteresowań).
W uczeniu się zbrojenia dodatkowa wariancja nie jest tak naprawdę tym, czego szukamy. Już teraz występuje duża wariancja w sygnałach uczenia się, które otrzymujemy, i ta wariancja już stanowi poważny problem dla stabilności uczenia się i / lub prędkości uczenia się. Na przykład:
Wiele ważnych części algorytmów Deep RL (bez których nasze procesy szkoleniowe empirycznie okazują się destabilizować i załamać) są bardzo dostosowane do zmniejszenia tej wariancji. Na przykład sieci docelowe w DQN zostały wprowadzone specjalnie w celu zmniejszenia problemu ruchomego celu. Z tego punktu widzenia nie jest zaskakujące, że gdybyśmy ponownie dodali więcej sztucznej wariancji za pomocą innych środków (takich jak rezygnacja), to zaszkodziłoby to wydajności / uczeniu się destabilizującemu.
W większości obecnych badań (głębokiego) uczenia się nad wzmocnieniem nadmierne dopasowanie nie jest postrzegane jako problem. Zdecydowana większość badań RL polega na szkoleniu w jednym środowisku (na przykład Cartpole lub Breakout, lub na jednym konkretnym poziomie w Pacmanie, lub nawigowaniu w jednym konkretnym labiryncie itp.) Oraz ciągłej ocenie wydajności podczas tego procesu uczenia się lub ocenie wydajność po takim procesie uczenia się w tym samym środowisku .
Gdybyśmy porównali tę metodologię oceny do tego, co dzieje się w nauczaniu nadzorowanym ... zasadniczo oceniamy wyniki na zestawie szkoleniowym * . W uczeniu nadzorowanym byłoby to absolutnie nie do przyjęcia, ale w RL jest bardzo traktowane jako akceptowalne i więcej niż reguła. Niektórzy twierdzą, że jest to po prostu problem w obecnych badaniach RL, coś, co należy zmienić. Można również argumentować, że niekoniecznie jest to problem; jeśli naprawdę jesteśmy w stanie wyszkolić agenta w dokładnie tym samym środowisku, w którym chcemy go wdrożyć później ... cóż, na czym polega problem z dopasowaniem go do tego środowiska?
Tak więc, gdy stosujemy metodologię oceny opisaną powyżej, rzeczywiście pasujemy do jednego określonego środowiska, ale dopasowanie jest dobre, a nie złe, zgodnie z naszymi kryteriami oceny . Oczywiste jest, że ta metodologia nie prowadzi do agentów, które mogą dobrze uogólniać; jeśli konsekwentnie trenujesz agenta do poruszania się w jednym konkretnym labiryncie, prawdopodobnie nie będzie on w stanie nawigować po innym labiryncie po treningu.
* Uwaga: moim zdaniem prawda jest nieco bardziej szczegółowa niż to, że tak naprawdę „oceniamy na zestawie treningowym” w RL. Zobacz na przykład ten miły wątek tweetów: https://twitter.com/nanjiang_cs/status/1049682399980908544
Zauważ, że opisana tutaj metodologia oceny rzeczywiście nie pasuje już do bardziej „powszechnej” metodologii oceny. Masz problem ze znoszeniem koncepcji , z niestacjonarnością w środowisku. Oznacza to, że nadmierne dopasowanie może stanowić dla ciebie problem.
Nadal nie jestem pewien, czy rezygnacja pomogłaby (to wciąż dodatkowa wariancja, która może zaszkodzić). Przede wszystkim powinieneś upewnić się, że istnieje jakiś sposób, aby śledzić czas / miesiąc w swoich danych wejściowych, tak aby przynajmniej mieć szansę na poznanie polityki, która dostosowuje się z czasem. Jeśli masz wyraźną, stałą granicę między „fazą szkolenia” a „fazą oceny” i wiesz, że przesunięcie koncepcji zachodzi przez tę granicę (wiesz, że twoje środowisko zachowuje się inaczej w fazie szkolenia niż w fazie oceny) ... naprawdę nie mam wielkiej nadziei, że nauczę się zasad tylko z doświadczenia na etapie szkolenia, które nadal dobrze sprawdza się na etapie oceny. Podejrzewam, że musisz pozbyć się tej wyraźnej, solidnej granicy. Ty' Będę również chciał uczyć się przez cały okres oceny. Umożliwia to algorytmowi uczenia się gromadzenie doświadczeń w zmienionym środowisku i dostosowywanie się do niego.
źródło