Wprowadzenie do RL i Deep Q Networks

Wstęp

Uczenie się przez wzmacnianie (RL) to ogólna struktura, w której agenci uczą się wykonywać działania w środowisku, aby zmaksymalizować nagrodę. Dwa główne komponenty to środowisko, które reprezentuje problem do rozwiązania, oraz agent, który reprezentuje algorytm uczenia.

Agent i środowisko stale oddziałują na siebie. Na każdym kroku czasowym, agent wykonuje działania na środowisko na podstawie jego polityki π(at|st), gdzie st jest bieżąca obserwacja ze środowiska, a otrzymuje nagrodę rt+1 i obok obserwacji st+1 ze środowiska . Celem jest udoskonalenie polityki tak, aby zmaksymalizować sumę nagród (zwrotu).

Pętla interakcji agent-środowisko

Jest to bardzo ogólna struktura i może modelować różne sekwencyjne problemy związane z podejmowaniem decyzji, takie jak gry, robotyka itp.

Środowisko Cartpole

Środowisko Cartpole jest jednym z najbardziej znanych klasycznych problemów w uczeniu się zbrojenie (dalej „Hello, World!” RL). Do wózka przymocowany jest drążek, który może poruszać się po torze pozbawionym tarcia. Słup zaczyna się pionowo, a celem jest zapobieganie jego przewróceniu poprzez kontrolowanie wózka.

  • Obserwacja ze środowiska st jest wektorem 4D reprezentujący położenie i prędkość wózka, a kąt i prędkość kątową bieguna.
  • Środek można sterować systemem poprzez podejmowanie działań jednego z 2 at: popchnąć wózek prawo (+1) lub w lewo (-1).
  • Nagroda rt+1=1 przewidziano każdym kroku to, że Polak pozostaje w pozycji pionowej. Odcinek kończy się, gdy spełniony jest jeden z poniższych warunków:
    • kij przechyla się powyżej pewnego kąta
    • wózek wyjeżdża poza granice świata
    • Mija 200 kroków czasu.

Celem środka jest nauczyć politykę π(at|st) tak aby maksymalizować sumę nagród w epizodzie t=0Tγtrt. Tutaj γ jest czynnikiem zniżki w [0,1] że rabaty przyszłych nagród w stosunku do natychmiastowych nagród. Ten parametr pomaga nam skoncentrować politykę, sprawiając, że bardziej zależy jej na szybkim zdobywaniu nagród.

Agent DQN

Algorytm DQN (Głębokie Q-Network) została opracowana w 2015 roku przez DeepMind To było w stanie rozwiązać szeroką gamę gier Atari (niektóre na poziomie nadludzkiej) poprzez połączenie nauki zbrojenia i głębokie sieci neuronowych w skali. Algorytm został opracowany przez zwiększanie klasyczny algorytm RL nazwie Q-learning z głębokimi sieci neuronowych i technika zwana doświadczenie powtórki.

Q-Learning

Q-Learning opiera się na pojęciu funkcji Q. Q-function (aka funkcja wartość state-action) z polityki π, Qπ(s,a)mierzy oczekiwanego zwrotu lub zdyskontowana suma nagród otrzymanych z państwowej s poprzez podejmowanie działań a pierwszy i Poniższe zasady π później. Zdefiniować optymalnej funkcji P- Q(s,a) jako powrót maksymalnej, która może zostać uzyskane, począwszy od obserwacji sbiorąc działania a i zgodnie z polityką optymalne później. Optymalna P funkcja wypełnia następujące równanie optymalność Bellman:

Q(s,a)=E[r+γmaxaQ(s,a)]

Oznacza to, że maksymalny zwrot z państwowej s i działanie a jest sumą natychmiastowa nagroda r i powrót (zdyskontowana przez γ) otrzymano zgodnie z polityką optymalną potem do końca odcinka ( czyli maksymalna nagroda od kolejnego państwa s). Oczekiwanie jest obliczany zarówno nad dystrybucją natychmiastowych nagród r i ewentualnych kolejnych stanach s.

Podstawową ideą Q-learning jest użycie Bellman równania optymalności jako iteracyjny aktualizacji Qi+1(s,a)E[r+γmaxaQi(s,a)]i można udowodnić, że ten jest zbieżny do optymalnego Q-function, tj QiQ jako i (patrz DQN papier ).

Głębokie Q-Learning

Dla większości problemów, jest możliwa do reprezentowania Q-function jako tabeli zawierającej wartości dla każdej kombinacji s i a. Zamiast tego, możemy trenować Aproksymator funkcji, takich jak sieci neuronowe z parametrami θ, aby oszacować Q-wartości, tj Q(s,a;θ)Q(s,a). Można to zrobić poprzez zminimalizowanie następujące straty na każdym kroku i:

Li(θi)=Es,a,r,sρ(.)[(yiQ(s,a;θi))2] gdzie yi=r+γmaxaQ(s,a;θi1)

Tutaj yi nazywa TD (różnica czasowa) cel, a yiQ nazywa błąd TD. ρ przedstawia rozkład zachowaniem, a rozkład na przemian {s,a,r,s} zebranych z otoczenia.

Należy zauważyć, że parametry z poprzedniej iteracji θi1 są stałe i nie aktualizowane. W praktyce zamiast ostatniej iteracji używamy migawki parametrów sieci sprzed kilku iteracji. Ta kopia jest nazywana siecią docelową.

Q-learning jest algorytmem off-polityka, który dowiaduje się o polityce chciwy a=maxaQ(s,a;θ) podczas korzystania inną politykę zachowanie dla działających w środowisku / zbieranie danych. Ta polityka zachowanie jest zwykle ϵ-greedy polityka, który wybiera chciwy akcja z prawdopodobieństwem 1ϵ i przypadkowej akcji z prawdopodobieństwem ϵ aby zapewnić dobre pokrycie przestrzeni state-action.

Przeżyj powtórkę

Aby uniknąć obliczania pełnej wartości oczekiwanej straty DQN, możemy ją zminimalizować za pomocą stochastycznego spadku gradientu. Jeśli ubytek jest obliczany za pomocą tylko ostatniego przejścia {s,a,r,s}, zmniejsza standardowej Q Nauk.

Prace Atari DQN wprowadziły technikę o nazwie Experience Replay, aby uczynić aktualizacje sieci bardziej stabilnymi. Na każdym etapie w czasie zbierania danych, dodawane są do przejścia w buforze cyklicznym zwany bufor do odtwarzania. Następnie podczas treningu, zamiast używać tylko ostatniego przejścia do obliczenia straty i jej gradientu, obliczamy je za pomocą mini-partii przejść próbkowanych z bufora powtórek. Ma to dwie zalety: lepszą wydajność danych dzięki ponownemu wykorzystaniu każdego przejścia w wielu aktualizacjach oraz lepszą stabilność przy użyciu nieskorelowanych przejść w partii.

DQN na Cartpole w TF-Agents

TF-Agents zapewnia wszystkie komponenty niezbędne do szkolenia agenta DQN, takie jak sam agent, środowisko, polityki, sieci, bufory odtwarzania, pętle zbierania danych i metryki. Komponenty te są zaimplementowane jako funkcje Pythona lub operacje wykresów TensorFlow, a także mamy wrappery do konwersji między nimi. Dodatkowo TF-Agents obsługuje tryb TensorFlow 2.0, który umożliwia nam używanie TF w trybie imperatywnym.

Następnie spojrzeć w poradniku do szkolenia agenta DQN na środowisko Cartpole używając TF-Agentów .