Wat is Q-learning?
Q-learning is eenOff-Policy waarde-gebaseerde methode die een TD-aanpak gebruikt om zijn actie-waarde-functie te trainen:
- Off-beleid: We zullen daarover praten aan het einde van deze eenheid.
- Op waarde gebaseerde methode: vindt het optimale beleid indirect door een waarde of actie-waarde-functie te trainen die ons zal vertellende waarde van elke toestand of elk staat-actionpaar.
- TD -aanpak:Werkt de actie-waarde-functie bij elke stap bij in plaats van aan het einde van de aflevering.
Q-learning is het algoritme dat we gebruiken om onze Q-functie te trainen, eenActie-waarde-functieDat bepaalt de waarde van het zijn in een bepaalde staat en het nemen van een specifieke actie in die staat.
![Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (1) Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (1)](https://i0.wp.com/huggingface.co/datasets/huggingface-deep-rl-course/course-images/resolve/main/en/unit3/Q-function.jpg)
DeQ komt van "de kwaliteit" (de waarde) van die actie in die staat.
Laten we het verschil tussen waarde en beloning samenvatten:
- Dewaarde van een staat, of eenstaat-actiepaaris de verwachte cumulatieve beloning die onze agent krijgt als deze begint bij deze staat (of staat-action-paar) en vervolgens dienovereenkomstig naar zijn beleid handelt.
- Debeloningis deFeedback die ik uit de omgeving krijgNa het uitvoeren van een actie in een staat.
Intern wordt onze Q-functie gecodeerd doorEen Q-tafel, een tabel waarbij elke cel overeenkomt met een toestand-actiepaarwaarde.Denk aan deze Q-Table alshet geheugen of spiekbriefje van onze Q-functie.
Laten we door een voorbeeld van een doolhof gaan.
De Q-tafel is geïnitialiseerd.Daarom zijn alle waarden = 0. Deze tabelBevat voor elke toestand en actie de overeenkomstige staat-actiewaarden.Voor dit eenvoudige voorbeeld wordt de status alleen bepaald door de positie van de muis.Daarom hebben we 2*3 rijen in onze Q-tafel, één rij voor elke mogelijke positie van de muis.In meer complexe scenario's kan de staat meer informatie bevatten dan de positie van de acteur.
Hier zien we dat deStaat-actiewaarde van de initiële toestand en omhoog gaan is 0:
Dus: de Q-functie gebruikt een Q-TableDat heeft de waarde van elk staat-actiepaar.Gegeven een staat en actie,Onze Q-functie zoekt in de Q-Table om de waarde uit te voeren.
![Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (5) Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (5)](https://i0.wp.com/huggingface.co/datasets/huggingface-deep-rl-course/course-images/resolve/main/en/unit3/Q-function-2.jpg)
Als we samenvatten,Q-learningis het RL -algoritme dat:
- TreinenQ-functie(eenActie-waarde-functie), wat intern isQ-table die alle waarden van het status-actiepaar bevat.
- Gegeven een staat en actie, onze Q-functieZoekt de Q-Table naar de overeenkomstige waarde.
- Als de training is gedaan,We hebben een optimale Q-functie, wat betekent dat we een optimale Q-Table hebben.
- En als weeen optimale Q-functie hebben, Wijeen optimaal beleid hebbensinds weKen de beste actie om elke staat te ondernemen.
In het begin,Onze Q-tafel is nutteloos, omdat het willekeurige waarden geeft voor elk staat-actiepaar(Meestal initialiseren we de Q-Table naar 0).Als de agentOnderzoekt de omgeving en we werken de Q-Table bij, het geeft ons een betere en betere benaderingnaar het optimale beleid.
![Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (7) Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (7)](https://i0.wp.com/huggingface.co/datasets/huggingface-deep-rl-course/course-images/resolve/main/en/unit3/Q-learning-1.jpg)
Nu we begrijpen wat Q-learning, Q-functies en Q-Tables zijn,Laten we dieper in het Q-learning-algoritme duiken.
Het q-learning-algoritme
Dit is de q-learning pseudocode;Laten we elk deel bestuderen enZie hoe het werkt met een eenvoudig voorbeeld voordat u het implementeert.Wees er niet door geïntimideerd, het is eenvoudiger dan het lijkt!We zullen elke stap doornemen.
Stap 1: We initialiseren de Q-Table
We moeten de Q-Table initialiseren voor elk staat-action-paar.Meestal initialiseren we met waarden van 0.
Stap 2: Kies een actie met behulp van de Epsilon-Greedy-strategie
De Epsilon-Greedy-strategie is een beleid dat de afweging van exploratie/exploitatie behandelt.
Het idee is dat, met een initiële waarde van ɛ = 1.0:
- Met waarschijnlijkheid 1 - ɛ: wij doenexploitatie(aka onze agent selecteert de actie met de hoogste waarde-actiepaarwaarde).
- Met waarschijnlijkheid ɛ:We verkennen(willekeurige actie proberen).
Aan het begin van de training,De kans op verkenning zal enorm zijn, omdat ɛ erg hoog is, dus meestal zullen we verkennen.Maar naarmate de training vordert, en bijgevolg onzeQ-Table wordt beter en beter in zijn schattingen, we verminderen geleidelijk de Epsilon-waardeOmdat we steeds minder verkenning en meer uitbuiting nodig hebben.
Stap 3: Actie uitvoeren op, haal beloning rt+1 en volgende status st+1
Stap 4: Update Q (st, at)
Vergeet niet dat we in het leren van TD onze beleid of waardefunctie bijwerken (afhankelijk van de RL -methode die we kiezen)Na een stap van de interactie.
Om ons TD -doel te produceren,We hebben de onmiddellijke beloning gebruiktRT+1Plus de kortingwaarde van de volgende staat, berekend door de actie te vinden die de huidige Q-functie in de volgende status maximaliseert (we noemen die bootstrap).
Daarom onzeQ((ST,,AT))Update formule gaat als volgt:
Dit betekent dat om ons bij te werkenQ((ST,,AT)):
- Wij hebben nodigST,,AT,,RT+1,,ST+1.
- Om onze Q-waarde bij te werken bij een bepaald staat-actiepaar, gebruiken we het TD-doel.
Hoe vormen we het TD -doel?
- We verkrijgen de beloningRT+1Na het ondernemen van de actieAT.
- Om deBeste toestand-actiepaarwaardeVoor de volgende staat gebruiken we een hebzuchtig beleid om de volgende beste actie te selecteren.Merk op dat dit geen Epsilon-Greedy-beleid is, dit zal altijd de actie ondernemen met de hoogste staatswaarde.
Wanneer de update van deze Q-waarde is voltooid, beginnen we in een nieuwe staat en selecteren we onze actieEen Epsilon-Greedy-beleid opnieuw gebruiken.
Daarom zeggen we dat Q-leren een algoritme buiten de policy is.
Off-policy versus on-policy
Het verschil is subtiel:
- Off-beleid: gebruik makend vaneen ander beleid voor acteren (inferentie) en update (training).
Met Q-learning is het Epsilon-Greedy-beleid (waarnemend beleid) bijvoorbeeld anders dan het hebzuchtige beleid dat isGebruikt om de beste nodige actiewaarde te selecteren om onze Q-waarde bij te werken (bijwerken van beleid).
![Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (15) Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (15)](https://i0.wp.com/huggingface.co/datasets/huggingface-deep-rl-course/course-images/resolve/main/en/unit3/off-on-1.jpg)
Verschilt van het beleid dat we tijdens het trainingsgedeelte gebruiken:
![Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (16) Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (16)](https://i0.wp.com/huggingface.co/datasets/huggingface-deep-rl-course/course-images/resolve/main/en/unit3/off-on-2.jpg)
- Policy:de ... gebruikenHetzelfde beleid voor handelen en bijwerken.
Bijvoorbeeld, met SARSA, een ander op waarde gebaseerd algoritme,Het Epsilon-Greedy-beleid selecteert het volgende staatspaar, geen hebzuchtig beleid.
![Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (17) Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (17)](https://i0.wp.com/huggingface.co/datasets/huggingface-deep-rl-course/course-images/resolve/main/en/unit3/off-on-3.jpg)
![Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (18) Introductie van Q -learning - knuffelende gezicht diepe RL -cursus (18)](https://i0.wp.com/huggingface.co/datasets/huggingface-deep-rl-course/course-images/resolve/main/en/unit3/off-on-4.jpg)