RL – DQN Deep Q-network
Kunnen computers videospellen spelen als een mens? In 2015 versloeg DQN menselijke experts in veel Atari-spellen. Maar als het aankomt op complexe oorlogsstrategiegames, doet AI het niet goed. In 2017 versloeg een professioneel team met gemak een AI-programma van DeepMind in Starcraft 2.
Zoals geciteerd uit de DeepMind-paper:
Het is een multi-agentprobleem met meerdere spelers die op elkaar inwerken; er is onvolmaakte informatie vanwege een gedeeltelijk waargenomen kaart; het heeft een grote actieruimte waarbij honderden eenheden moeten worden geselecteerd en bestuurd; het heeft een grote toestandsruimte die uitsluitend moet worden waargenomen op basis van ruwe invoerfunctievlakken; en het heeft vertraagde krediettoewijzing die langetermijnstrategieën over duizenden stappen vereist.
Laten we onze reis hervatten naar het Deep Q-Network DQN. In het onderstaande spel Seaquest leert DQN uit zichzelf hoe je scores kunt lezen, op de vijand kunt schieten en duikers kunt redden uit de ruwe beelden. Het ontdekt ook kennis die we als strategie kunnen aanduiden, zoals wanneer de onderzeeër naar de oppervlakte moet worden gebracht voor zuurstof.
Q-learning leert de actie-waarde functie Q(s, a): hoe goed is het om een actie te ondernemen bij een bepaalde toestand. Bijvoorbeeld, voor de onderstaande bordpositie, hoe goed het is om de pion twee stappen vooruit te zetten. Letterlijk gesproken kennen we een scalaire waarde toe aan het voordeel van zo’n zet.
Q wordt de actie-waarde functie (of Q-waarde functie in dit artikel) genoemd.
In Q-learning bouwen we een geheugentabel Q op om Q-waarden op te slaan voor alle mogelijke combinaties van s en a. Als u een schaker bent, is dit het schaakblad voor de beste zet. In het voorbeeld hierboven kunnen we ons realiseren dat de pion 2 stappen vooruit zetten de hoogste Q-waarden heeft boven alle andere. (Het geheugengebruik zal te hoog zijn voor het schaakspel. Maar laten we nog even bij deze aanpak blijven.)
Technisch gesproken, bemonsteren we een actie uit de huidige toestand. We achterhalen de beloning R (indien aanwezig) en de nieuwe toestand s’ (de nieuwe bordpositie). Uit de geheugentabel bepalen we de volgende actie a’ die de maximale Q(s’, a’) heeft.
In een videospelletje scoren we punten (beloningen) door de vijand neer te schieten. In een schaakspel is de beloning +1 als we winnen of -1 als we verliezen. Er wordt dus maar één beloning gegeven en het duurt even voordat we die krijgen.
Q-learning gaat over het maken van het schaakblad Q.
Om de training te verbeteren, begint ϵ bij 1 en gloeit af naar 0.1 of 0,05 over de eerste miljoen frames met behulp van het volgende beleid.
waar m het aantal mogelijke acties is. In het begin van de training selecteren we de mogelijke acties op uniforme wijze, maar naarmate de training vordert, selecteren we vaker de optimale actie a*. Dit maakt maximale exploratie in het begin mogelijk, die uiteindelijk overgaat in exploitatie.
Maar zelfs tijdens het testen kunnen we ϵ op een kleine waarde houden, zoals 0,05. Een deterministisch beleid kan in een lokaal optimum blijven steken. Een niet-deterministisch beleid stelt ons in staat om uit te breken voor een kans om een beter optimum te bereiken.
Architectuur
Hier volgt de DQN-architectuur. We nemen de laatste 4 video frames en voeren deze in convolutionele lagen, gevolgd door volledig verbonden lagen om de Q waarden voor elke actie te berekenen.
In het onderstaande voorbeeld, als we de peddel niet omhoog bewegen in frame 3, zullen we de bal missen. Zoals verwacht van de DQN, is de Q waarde van het omhoog bewegen van de peddel veel hoger in vergelijking met andere acties.
Verbetering van DQN
Vele verbeteringen zijn aangebracht in DQN. In dit gedeelte laten we enkele methoden zien die significante verbeteringen laten zien.
Double DQN
In Q-learning gebruiken we de volgende formule voor de streefwaarde voor Q.
De max-operatie veroorzaakt echter een positieve vertekening van de Q-schattingen.
Van het bovenstaande voorbeeld zien we dat max Q(s, a) hoger is dan de geconvergeerde waarde 1.0. D.w.z. de max operatie overschat Q. Door theorie en experimenten, verbetert de DQN prestatie als we het online netwerk θ gebruiken om greedy de actie te selecteren en het doelnetwerk θ- om de Q waarde te schatten.
Priorized Experience Replay
DQN bemonstert de overgangen uit de replay buffer op uniforme wijze. We moeten echter minder aandacht besteden aan monsters die al dicht bij het doel liggen. We moeten monsters nemen van overgangen die een groot doelgat hebben:
Daarom kunnen we overgangen uit de buffer
- selecteren op basis van de bovenstaande foutwaarde (kies vaker overgangen met een hogere foutwaarde), of
- ze rangschikken op basis van de foutwaarde en ze volgens rang selecteren (kies vaker degene met een hogere rangorde).
Voor details over de vergelijkingen op sampling data, zie de Prioritized Experience Replay paper.
Dueling DQN
In Dueling DQN, wordt Q berekend met een andere formule hieronder met waardefunctie V en een toestandsafhankelijke actievoordeelfunctie A hieronder:
In plaats van Q te leren, gebruiken we twee afzonderlijke koppen om V en A te berekenen. Uit empirische experimenten blijkt dat de prestaties verbeteren. DQN werkt de Q-waardefunctie van een toestand alleen bij voor een specifieke actie. Dueling DQN werkt V bij, waar andere Q(s, a’) updates ook van kunnen profiteren. Dus elke Dueling DQN training iteratie wordt verondersteld een grotere impact te hebben.
Noisey Nets for Exploration
DQN gebruikt ϵ-greedy om acties te selecteren. NoisyNet vervangt het door parametrische ruis toe te voegen aan de lineaire laag om exploratie te helpen. In NoisyNet wordt ε-greedy niet gebruikt. Het gebruikt een greedy-methode om acties te selecteren uit de Q-waarde functie. Maar voor de volledig aangesloten lagen van de Q-benaderaar voegen we hieronder trainbare geparametriseerde ruis toe om acties te verkennen. Het toevoegen van ruis aan een diep netwerk is vaak gelijkwaardig of beter dan het toevoegen van ruis aan een actie zoals in de ϵ-greedy methode.
Meer gedachten
DQN behoort tot een belangrijke klasse van RL, namelijk value-learning. In de praktijk combineren we vaak policy gradients met value-learning methoden bij het oplossen van real-life problemen.
Leave a Reply