En introduktion til Q-Learning: forstærkningslæring

Denne artikel er den anden del af min “Deep reinforcement learning” -serie. Den komplette serie skal være tilgængelig både på Medium og i videoer på min YouTube-kanal.

I den første del af serien lærte vi det grundlæggende i forstærkningslæring .

Q-læring er en værdibaseret læringsalgoritme i forstærkningslæring. I denne artikel lærer vi om Q-Learning og dens detaljer:

  • Hvad er Q-Learning?
  • Matematik bag Q-Learning
  • Implementering ved hjælp af python

Q-Learning - et forenklet overblik

Lad os sige, at en robot skal krydse en labyrint og nå slutpunktet. Der er miner , og robotten kan kun flytte en flise ad gangen. Hvis robotten træder op på en mine, er robotten død. Robotten skal nå slutpunktet på kortest mulig tid.

Scorings / belønningssystemet er som nedenfor:

  1. Robotten mister 1 point ved hvert trin. Dette gøres, så robotten tager den korteste vej og når målet så hurtigt som muligt.
  2. Hvis robotten træder på en mine, er tabet af point 100, og spillet slutter.
  3. Hvis robotten får strøm ⚡️, får den 1 point.
  4. Hvis robotten når det endelige mål, får robotten 100 point.

Nu er det åbenlyse spørgsmål: Hvordan træner vi en robot til at nå det endelige mål med den korteste vej uden at træde på en mine?

Så hvordan løser vi dette?

Introduktion til Q-tabel

Q-Table er bare et fancy navn til en simpel opslagstabel, hvor vi beregner de maksimale forventede fremtidige belønninger for handling i hver stat. Dybest set vil denne tabel guide os til den bedste handling i hver stat.

Der vil være fire antal handlinger ved hver ikke-kantede flise. Når en robot er i en tilstand, kan den enten bevæge sig op eller ned eller til højre eller venstre.

Så lad os modellere dette miljø i vores Q-tabel.

I Q-tabellen er kolonnerne handlinger, og række er stater.

Hver Q-tabel score vil være den maksimale forventede fremtidige belønning, som robotten får, hvis den tager den handling i den tilstand. Dette er en iterativ proces, da vi har brug for at forbedre Q-tabellen ved hver iteration.

Men spørgsmålene er:

  • Hvordan beregner vi værdierne i Q-tabellen?
  • Er værdierne tilgængelige eller foruddefinerede?

For at lære hver værdi af Q-tabellen bruger vi Q-Learning-algoritmen.

Matematik: Q-Learning-algoritmen

Q-funktion

Den Q-funktion anvender Bellman ligningen og tager to indgange: tilstand ( s ) og handling ( a ).

Ved hjælp af ovenstående funktion får vi værdierne for Q for cellerne i tabellen.

Når vi starter, er alle værdierne i Q-tabellen nuller.

Der er en iterativ proces med opdatering af værdierne. Når vi begynder at udforske miljøet , giver Q-funktionen os bedre og bedre tilnærmelser ved løbende at opdatere Q-værdierne i tabellen.

Lad os nu forstå, hvordan opdateringen finder sted.

Introduktion til Q-læringsalgoritmeprocessen

Hver af de farvede kasser er et trin. Lad os forstå hvert af disse trin i detaljer.

Trin 1: initialiser Q-tabel

Vi bygger først en Q-tabel. Der er n kolonner, hvor n = antal handlinger. Der er m rækker, hvor m = antal stater. Vi initialiserer værdierne til 0.

I vores roboteksempel har vi fire handlinger (a = 4) og fem tilstande (s = 5). Så vi bygger en tabel med fire kolonner og fem rækker.

Trin 2 og 3: vælg og udfør en handling

Denne kombination af trin udføres i en udefineret tid. Dette betyder, at dette trin løber indtil det tidspunkt, hvor vi stopper træningen, eller træningsløkken stopper som defineret i koden.

Vi vælger en handling (a) i tilstanden (erne) baseret på Q-tabellen. Men som nævnt tidligere, når episoden oprindeligt starter, er hver Q-værdi 0.

Så nu kommer begrebet udforskning og udnyttelse af kompromis i spil. Denne artikel har flere detaljer.

Vi bruger noget, der hedder epsilon grådig strategi .

I begyndelsen vil epsilon-priserne være højere. Robotten vil udforske miljøet og tilfældigt vælge handlinger. Logikken bag dette er, at robotten ikke ved noget om miljøet.

Når robotten udforsker miljøet, falder epsilon-hastigheden, og robotten begynder at udnytte miljøet.

Under udforskningsprocessen bliver robotten gradvist mere sikker på at estimere Q-værdierne.

For robotteksemplet er der fire handlinger at vælge imellem : op, ned, venstre og højre.Vi starter træningen nu - vores robot ved intet om miljøet. Så robotten vælger en tilfældig handling, sig rigtigt.

Vi kan nu opdatere Q-værdierne for at være i starten og flytte til højre ved hjælp af Bellman-ligningen.

Trin 4 og 5: evaluere

Nu har vi taget en handling og observeret et resultat og en belønning. Vi har brug for at opdatere funktionen Q (s, a).

I tilfælde af robotspil er det at gentage scorings- / belønningsstrukturen:

  • effekt = +1
  • mine = -100
  • slut = +100

Vi gentager dette igen og igen, indtil læringen er stoppet. På denne måde opdateres Q-tabel.

Python-implementering af Q-Learning

Konceptet og implementering af kode forklares i min video.

Abonner på min YouTube-kanal For flere AI-videoer: ADL .

Endelig ... lad os sammenfatte

  • Q-Learning er en værdibaseret algoritme til forstærkningslæring, der bruges til at finde den optimale politik til valg af handling ved hjælp af en Q-funktion.
  • Vores mål er at maksimere værdifunktionen Q.
  • Q-tabellen hjælper os med at finde den bedste handling for hver stat.
  • Det hjælper med at maksimere den forventede belønning ved at vælge den bedste af alle mulige handlinger.
  • Q (tilstand, handling) returnerer den forventede fremtidige belønning for den handling i den tilstand.
  • Denne funktion kan estimeres ved hjælp af Q-Learning, som iterativt opdaterer Q (s, a) ved hjælp af Bellman-ligningen.
  • Oprindeligt undersøger vi miljøet og opdaterer Q-Table. Når Q-Table er klar, begynder agenten at udnytte miljøet og begynde at tage bedre handlinger.

Næste gang arbejder vi på et dybt Q-læringseksempel .

Indtil da, nyd AI?.

Vigtigt : Som tidligere nævnt er denne artikel den anden del af min “Deep Reinforcement Learning” -serie. Den komplette serie skal være tilgængelig både i artikler på Medium og i videoer på min YouTube-kanal.

Hvis du kunne lide min artikel, skal du klikke på? for ikke at hjælpe mig med at forblive motiveret til at skrive artikler. Følg mig venligst på M edium og andre sociale medier:

Hvis du har spørgsmål, så lad mig det vide i en kommentar nedenfor eller på Twitter .

Abonner på min YouTube-kanal for flere tekniske videoer.