Cześć Drogi Czytelniku🙂
Obecnie głębokie uczenie przez wzmacnianie rozwija się bardzo dynamicznie 💪🧠
Niestety, bywa tak, że opisy najnowszych osiągnięć są trudne do zrozumienia aby można było je łatwo zastosować w praktycznych implementacjach 🤷♀️🤷
To źle, gdyż poprawne działanie aplikacji jest uwarunkowane gruntownym zrozumieniem przez Ciebie występującego problemu!
Przyjrzyjmy się zatem jednemu z nich ⬇

Zacznijmy od szybkiego podsumowania.
W każdym z kroków metoda iteracji wartości przetwarza w pętli wszystkie stany i aktualizuje ich wartości za pomocą równania Bellmana. Istnieje również wariant tej metody, który dotyczy wartości Q (wartości dla akcji). Działa prawie tak samo jak wersja oryginalna, ale wyznacza i przechowuje wartości dla każdego stanu i akcji.
W czym więc leży problem?
Pierwszą rzeczą, jaką trzeba wziąć pod uwagę, jest liczba stanów środowiska i zdolność programu do ich przetwarzania. Metoda iteracji wartości zakłada, że znamy z wyprzedzeniemwszystkie stany środowiska, potrafimy je przetwarzać, a także przechowywać przybliżone wartości z nimi związane. Jest to, ogólnie rzecz ujmując, prawdą w przypadku tak prostego środowiska świata siatki, jakim jest FrozenLake.
Jak jednak działa ta metoda w innych środowiskach?
Najpierw spróbujmy ustalić, jak bardzo skomplikowane mogą być problemy rozwiązywane za pomocą metody iteracji wartości. Innymi słowy, dowiedzmy się, ile stanów możemy przetworzyć w każdej pętli. Nawet komputer średniej wielkości może przechowywać w pamięci kilka miliardów liczb zmiennoprzecinkowych (8,5 miliarda w 32 GB pamięci RAM), więc nie jest to zbytnim ograniczeniem. Przetwarzanie miliardów stanów i akcji będzie co prawda wymagało użycia lepszego procesora (CPU), ale jest to również osiągalne.
Obecnie dostępne systemy wielordzeniowe są przez większość czasu bezczynne. Prawdziwym problemem jest liczba próbek wymaganych do uzyskania dobrych przybliżeń dynamiki przejść pomiędzy stanami. Załóżmy, że masz środowisko z miliardem stanów (co odpowiada mniej więcej światowi FrozenLake o wymiarach 31 600×31 600). Aby wyznaczyć z dużym przybliżeniem wartości dla każdego stanu tego środowiska, musielibyśmy przetworzyć setki miliardów przejść pomiędzy stanami, co nie ma zbytniego sensu.
Przykładem środowiska z jeszcze większą liczbą potencjalnych stanów jest konsola do gier Atari 2600. Była ona bardzo popularna w latach 80. XX wieku i zawierała wiele gier zręcznościowych. Jak na dzisiejsze standardy jest ona już archaiczna, ale jej gry stanowią doskonały zestaw zadań związanych z uczeniem przez wzmacnianie. Ludzie potrafią je dość szybko rozwiązywać, a z drugiej strony dla komputerów wciąż stanowią wyzwanie. Nic dziwnego, że ta platforma gier (w postaci emulatora) jest bardzo popularnym punktem odniesienia dla naukowców zajmujących się uczeniem przez wzmacnianie.
Obliczmy przestrzeń stanów dla platformy Atari. Rozdzielczość ekranu wynosi 210×160 pikseli, a każdy z nich może mieć jeden ze 128 kolorów. Tak więc każda klatka ma 210×160 = 33 600 pikseli, a liczba różnych ekranów wynosi 12833600, czyli nieco więcej niż 1070802. Gdybyśmy chcieli tylko raz wyliczyć wszystkie możliwe stany Atari, nawet najszybszemu superkomputerowi zajęłoby to miliardy miliardów lat. Ponadto 99,99% tej pracy byłoby stratą czasu, ponieważ większość kombinacji nigdy nie zostałaby wyświetlona podczas nawet długiej rozgrywki. Chociaż nigdy nie wykorzystywalibyśmy próbek niepotrzebnych stanów, metoda iteracji wartości i tak „na wszelki wypadek” chciałaby je przetwarzać.
Inny problem związany z podejściem wykorzystującym iterację wartości polega na tym, że jesteśmy ograniczeni do zajmowania się dyskretnymi przestrzeniami akcji. Zarówno w przypadku przybliżeń Q(s, a), jak i V(s) istnieje założenie, że akcje należą do zbioru wzajemnie wykluczających się danych dyskretnych. Przybliżenia te nie mogą więc zostać zastosowane podczas rozwiązywania problemów dotyczących sterowania ciągłego, w których akcje dotyczą zmiennych z wartościami ciągłymi, takich jak kąt skrętu kierownicy, siła elementu napędzającego lub temperatura grzejnika. Sposoby rozwiązywania takich trudnych zagadnień omówię w ostatniej części książki, w rozdziałach poświęconych problemom związanym z ciągłymi przestrzeniami akcji. Na razie załóżmy, że mamy pewną liczbę akcji i nie jest ona zbyt duża (w granicach 10).
Jak powinniśmy poradzić sobie z rozmiarem przestrzeni stanów?