Aktualności

Function approximation - jakość, nie ilość

Dodano: 2020-04-08

Jest to kolejny artykuł z serii o Reinforcement Learning - uczeniu maszynowym ze wzmocnieniem. Zalecamy przeczytanie poprzednich, zaczynając od pierwszego [LINK], by w pełni zrozumieć pojęcia, którymi się posługujemy.


Do tej pory agent zapisywał swoje doświadczenie ze środowiska w postaci informacji o tym, jak dobrze jest być w danym stanie czy jak dobrze jest wykonać daną akcję w danym stanie. Problem zaczyna się, kiedy stanów jest coraz więcej, pamięć komputera błaga tylko o litość, a procesor nie nadąża z aktualizacją tablicy stanów. Z pomocą przychodzi Function Approximation.


Jest to mechanizm pozwalający na przechowywanie doświadczenia nie w postaci tablicy wartości dla stanu/stanu-akcji, a w postaci wartości wag. Pozwala to na przetrzymywanie doświadczeń z podobnych sytuacji w jednym miejscu. Taki mechanizm może zostać zaimplementowany na różne sposoby: kombinacja cech środowiska, sieć neuronowa, drzewo decyzyjne czy najbliższy sąsiad [1]. Jednak w tym artykule omówimy liniową funkcję aproksymacji na podstawie algorytmu Q-learning.


[OBRAZEK]

Rysunek 1.: Z punktu widzenia standardowego algorytmu Q-Learning każda z tych sytuacji jest inna, natomiast aproksymacja pozwala na interpretowanie ich jako podobne. [2]

Value function approximation korzysta z wartości obliczonych na podstawie środowiska, które nazywane są cechami. Cecha może stanowić odległość pacmana od duszka czy najbliższej znajdki. Może być też informacją, czy wąż wpadł na ścianę lub czy pozycja jego głowy pokrywa się ze znajdką. W skrócie: cecha opisuje sytuację, w której znajduje się agent wykonując akcję ze stanu, w którym aktualnie przebywa. Zestaw cech pozwala na szerszy pogląd na sytuację. Jak jednak wygląda nauka przy pomocy tych danych? Wagi, które opisują ważność danej cechy, na początku mają losowe wartości - natomiast wraz eksploracją środowiska polepszają się, dając optymalne wartości. Wartość stanu przy wykonanej akcji to suma iloczynów odpowiadających sobie cech i wag.


[OBRAZEK]
gdzie: s-stan, a-akcja, fi - cecha z kolekcji cech, wi - waga odpowiadająca danemu atrybutowi

Krótkie wyjaśnienie, jak działa algorytm Approximate Q-Learning:

  1. ustawienie liczby iteracji
  2. ustalenie cech i wag
  3. przypisanie losowe wartości do wag
  4. dla każdej iteracji (dopóki aktualny stan nie będzie końcowym):
    • wybór akcji:
      > ε - wybór najlepszej akcji
    • < ε - wybór losowej akcji (eksploracja)
    • odświeżanie wartości wag za pomocą wzoru: wi = wi + α * difference * fi(s,a), gdzie difference = (r + γ*maxaQ(s’, a)) - Q(s, a)

Takie rozwiązanie ma wiele zalet. Fakt, że potrzebna jest jedynie pamięć na wagi, pozwala na eksplorację agenta na większych planszach. Dodatkowo stany posiadające podobny zestaw cech można ujednolicić do jednego stanu, a co za tym idzie, akcja podjęta w takich stanach będzie niemalże ta sama. Ponadto, agent uczy się znacznie szybciej w porównaniu do standardowego algorytmu Q-Learningu. Jednakże każdy kij ma dwa końce. Nie zawsze należy użyć wszystkich cech, jak i nie zawsze jedna cecha współpracuje z drugą. Oznacza to, że nawet przy dużej liczbie iteracji taki algorytm może uczyć się źle ze względu na niedopasowanie się atrybutów.


[OBRAZEK]

Rysunek 2.: Snake po 20 iteracjach. Użyte cechy: czy dany stan to ściana oraz odległość od znajdki.


Źródła:
[1] https://www.cs.swarthmore.edu/~bryce/cs63/s16/slides/3-25_approximate_Q-learning.pdf
[2] https://youtu.be/9wCRlNa1_c0

Autorzy: Izabela Wiatrowska i Adrianna Cieńciała