Aktualności

Q-Learning i SARSA - bez ryzyka nie ma zabawy

Dodano: 2020-04-01

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.



Przed przystąpieniem do faktycznego omówienia algorytmów Q-Learning i SARSA istotne jest krótkie wprowadzenie na temat spotykanych metod uczenia oraz strategii, z której korzystają oba wymienione wcześniej algorytmy.


Istnieją trzy główne metody uczenia, wykorzystywane w Reinforcement Learning. Metoda programowania dynamicznego (ang. dynamic programming, DP), wykorzystywana przy algorytmie Value Iteration, metoda Monte Carlo oraz metoda różnic tymczasowych (ang. temporal difference, TD), która jest połączeniem dwóch poprzednich.


Dwie pierwsze metody są wykorzystywane jedynie w przypadku zadań epizodycznych (posiadających stan końcowy; np. gra Snake). Metoda różnic czasowych jest za to możliwa do implementacji dodatkowo w przypadku zadań ciągłych (bez stanu końcowego; np. przewidywanie sytuacji na giełdzie).


DYNAMIC PROGRAMMINGMONTE CARLOTEMPORAL DIFFERENCE
dzięki znajomości prawdopodobieństwa przejść, wartość stanu jest aktualizowana co krok w epizodziedzięki próbkowaniu otrzymanych wartości w każdym kroku, obliczona na końcu epizodu wartość stanu jest podobna do tej wyliczonej za pomocą DPpołączenie aktualizacji wartości stanu co wykonywany krok z nieznajomością prawdopodobieństw, umożliwiając użycie w zadaniach ciągłych

Algorytmy Q-Learning i SARSA do obliczenia wartości stanów korzystają z metody różnic tymczasowych, nie znając kompletnie prawdopodobieństw przejść. Czyni to z nich algorytmy model-free. Jest to przewaga nad Value Iteration, który jest algorytmem model-based - polegającym na modelu matematycznym z owymi prawdopodobieństwami. Sprawia to, iż algorytmy model-free są określane jako algorytmy bazujące na metodzie prób i błędów.


Warta wspomnienia jest jeszcze strategia ε-greedy. Bazuje ona na zbilansowaniu eksploatacji środowiska i jego eksploracji. Przy wyborze akcji, agent z prawdopodobieństwem 1 - ε będzie wybierał ją w sposób zachłanny (ang. greedy), czyli na podstawie maksymalnej wartości (eksploatacja). W przypadku kilku akcji o maksymalnej wartości, wybierana jest losowa z nich. Z prawdopodobieństwem ε zaś, agent wybiera losową z możliwych w danym stanie akcję (eksploracja).



[OBRAZEK]
Rysunek 1: Wpływu wartości ε na stosunek eksploracji do eksploatacji środowiska. Im wyższa, tym bardziej skupiamy się na eksploracji. [1]


Q-Learning to algorytm polegający na wyborze akcji wedle strategii ε-greedy i obliczenia wartości stanu na podstawie odpowiedzi środowiska. Wartość Q(s, a) przedstawia wartość nagrody, jaką spodziewamy się dostać po podjęciu akcji a w stanie s. Q wzięło się od Quality (z ang. jakość), co pomaga w zrozumieniu wzoru 1, wedle którego aktualizowana jest owa wartość.


Q(s, a) + α(r + γ*maxaQ(s’, a) - Q(s, a))

Wzór 1: Wzór do obliczania Q, gdzie: s-stan, a-akcja, s’ - następny stan, α - współczynnik uczenia, γ - czynnik osłabiający.

Algorytm ten w środowisku epizodycznym implementowany jest w następujący sposób:

  1. Stwórz tablicę wartości dla każdego stanu i powiązanych z nim możliwych akcji.
  2. Ustal liczbę epizodów.
  3. Dopóki nie zostanie osiągnięty stan końcowy:
    • wybierz akcję wedle obranej strategii,
    • wykonaj akcję a i obserwuj nagrodę r i kolejny stan s’,
    • zaktualizuj wartość oczekiwanej nagrody według wzoru: Q(s, a) + α(r + γ*maxaQ(s’, a) - Q(s, a)).
  4. Jeżeli został osiągnięty stan końcowy, przejdź do kolejnego epizodu.


Maxa oznacza, iż sprawdzamy wartości, jakie dadzą nam możliwe akcje w następnym stanie, i pod uwagę bierzemy tę najwyższą. Algorytm w ten sposób zakłada, że agent zawsze wybierze najbardziej “opłacalną jakościowo” akcję - rodzaj takich algorytmów nazywa się off-policy.


Podobnym algorytmem do Q-Learningu jest algorytm SARSA. Jego nazwa jest akronimem od wartości, które przyjmuje i zwraca: s, a, r, s’, a’. Łatwo zauważyć, że wykorzystuje on nie tylko obecny stan, wykonywaną akcję oraz zwrócone przez środowisko nagrodę i następny stan, ale również akcję następną, którą agent wykonuje w późniejszym kroku czasowym. Tutaj tkwi różnica w stosunku do algorytmu Q-Learning - SARSA jest algorytmem on-policy.


OFF-POLICYON-POLICY
algorytm do obliczenia wartości Q korzysta z wartości, jaką otrzyma przez postępowanie wedle strategii zachłannej (maksymalna wartość)algorytm do obliczenia wartości Q korzysta z wartości, jaką otrzyma przez postępowanie z założoną wcześniej strategią

Algorytm SARSA w środowisku epizodycznym przedstawia się więc następująco:

  1. Stwórz tablicę wartości dla każdego stanu i powiązanych z nim możliwych akcji.
  2. Ustal liczbę epizodów.
  3. Dopóki nie zostanie osiągnięty stan końcowy:
    • wykonaj akcję a (zapamiętaną w poprzednim kroku czasowym) i obserwuj nagrodę r oraz kolejny stan s’,
    • wybierz następną akcję a’ wedle obranej strategii i zapamiętaj ją,
    • zaktualizuj wartość oczekiwanej nagrody według wzoru: Q(s, a) + α(r + γ*Q(s’, a) - Q(s, a)).
  4. Jeżeli został osiągnięty stan końcowy, przejdź do kolejnego epizodu.



[OBRAZEK]
Rysunek 2: Różnica w wyborze wartości przy aktualizowaniu wartości Q między algorytmami SARSA i Q-Learning. Kropka czarna oznacza akcję, biały okrąg - stan. [2]

W obu algorytmach możliwe jest, by, zamiast na początku tworzyć tablicę wartości dla każdego stanu z każdą możliwą akcją, dodawać napotkane stany i interakcje na bieżąco, przy pierwszym zetknięciu się z nimi.


Jak wspomniano na początku artykułu, dzięki zastosowaniu metody różnic tymczasowych, powyższe algorytmy są możliwe do wykorzystania zarówno w zadaniach epizodycznych, jak i w zadaniach ciągłych. Wtedy zamiast powtarzać pętlę z kroku 3 do momentu wykonania zadania przez ustaloną wcześniej liczbę epizodów, możemy wykonywać ją w nieskończoność. Trzeba sobie jednak zdawać sprawę, że wielkość tablicy wartości bardzo szybko się powiększa. Lepsze zastosowanie znajdą więc nie w środowiskach ciągłych, a epizodycznych, z niezbyt wielką liczbą możliwych stanów.


Poniżej przedstawiamy oba algorytmy zaimplementowane przez nas w grach Snake oraz Pacman.

[OBRAZEK]
Rysunek 3: Algorytmy Q-Learning i SARSA na podstawie gry Snake.


[OBRAZEK]
Rysunek 4: Algorytm Q-Learning na podstawie gry Pacman.


[OBRAZEK]
Rysunek 5: Algorytmy SARSA na podstawie gry Pacman.


Źródła:
[1] https://pylessons.com/Epsilon-Greedy-DQN/
[2] https://lilianweng.github.io/lil-log/2018/02/19/a-long-peek-into-reinforcement-learning.html#temporal-difference-learning



Autorzy: Izabela Wiatrowska i Adrianna Cieńciała