En kort introduktion til forstærkningslæring

Forstærkningslæring er et aspekt af maskinlæring, hvor en agent lærer at opføre sig i et miljø ved at udføre bestemte handlinger og observere de belønninger / resultater, som den får af disse handlinger.

Med fremskridtene inden for Robotics Arm Manipulation, Google Deep Mind, der slog en professionel Alpha Go-spiller, og for nylig OpenAI-teamet, der slog en professionel DOTA-spiller, er forstærkningslæringsområdet virkelig eksploderet i de seneste år.

I denne artikel vil vi diskutere:

  • Hvad forstærkning læring er og dens nitty-grynet som belønninger, opgaver osv
  • 3 kategoriseringer af forstærkningslæring

Hvad er forstærkningslæring?

Lad os starte forklaringen med et eksempel - sig, at der er en lille baby, der begynder at lære at gå.

Lad os opdele dette eksempel i to dele:

1. Baby begynder at gå og når frem til sofaen

Da sofaen er det endelige mål, er babyen og forældrene glade.

Så babyen er glad og modtager påskønnelse fra sine forældre. Det er positivt - babyen har det godt (Positive Reward + n).

2. Baby begynder at gå og falder på grund af en hindring imellem og bliver forslået.

Av! Babyen får ondt og har smerter. Det er negativt - babyen græder (negativ belønning -n).

Sådan lærer vi mennesker - ved spor og fejl. Forstærkningslæring er konceptuelt den samme, men er en beregningsmetode til at lære ved handlinger.

Forstærkningslæring

Lad os antage, at vores forstærkende læringsagent lærer at spille Mario som et eksempel. Forstærkningsindlæringsprocessen kan modelleres som en iterativ sløjfe, der fungerer som nedenfor:

  • RL-agenten modtager tilstand S ⁰ fra miljøet, dvs. Mario
  • Baseret på denne tilstand S⁰ tager RL-agenten en handling A ⁰, siger - vores RL-agent bevæger sig til højre. Oprindeligt er dette tilfældigt.
  • Nu er miljøet i en ny tilstand (ny ramme fra Mario eller spilmotoren)
  • Miljø giver en belønning R ¹ til RL-agenten. Det giver sandsynligvis +1, fordi agenten endnu ikke er død.

Denne RL-løkke fortsætter, indtil vi er døde, eller når vi når vores destination, og den udsender kontinuerligt en sekvens af tilstand, handling og belønning.

Det grundlæggende mål med vores RL-agent er at maksimere belønningen.

Belønningsmaksimering

RL-agenten arbejder grundlæggende på en hypotese om belønningsmaksimering. Derfor bør forstærkningslæring have den bedst mulige handling for at maksimere belønningen.

De kumulative belønninger på hvert gangstrin med den respektive handling skrives som:

Ting fungerer dog ikke på denne måde, når man opsummerer alle belønningerne.

Lad os forstå dette detaljeret:

Lad os sige, at vores RL-agent (robotmus) er i en labyrint, der indeholder ost, elektricitetsstød og katte . Målet er at spise den maksimale mængde ost, før den spises af katten eller får et elektrisk stød.

Det synes åbenlyst at spise osten i nærheden af ​​os snarere end osten tæt på katten eller el-chokket, for jo tættere vi er på el-chokket eller katten, øges faren for at være død. Som et resultat diskonteres belønningen nær katten eller el-chokket, selvom det er større (mere ost). Dette gøres på grund af usikkerhedsfaktoren.

Det giver mening, ikke?

Diskontering af belønninger fungerer sådan:

Vi definerer en diskonteringssats kaldet gamma . Det skal være mellem 0 og 1. Jo større gamma, jo mindre er rabatten og omvendt.

Så vores kumulative forventede (nedsatte) belønninger er:

Opgaver og deres typer i forstærkningslæring

En opgave er en enkelt forekomst af et forstærkningsproblem. Vi har grundlæggende to typer opgaver: kontinuerlig og episodisk.

Løbende opgaver

Dette er de typer opgaver, der fortsætter for evigt. For eksempel en RL-agent, der foretager automatiseret Forex / Stock-handel.

I dette tilfælde skal agenten lære at vælge de bedste handlinger og samtidig interagere med miljøet. Der er intet udgangspunkt og sluttilstand.

RL-agenten skal fortsætte, indtil vi beslutter at stoppe det manuelt.

Episodisk opgave

I dette tilfælde har vi et startpunkt og et slutpunkt kaldet terminaltilstanden. Dette skaber en episode : en liste over stater (S), handlinger (A), belønninger (R).

Tileksempel , spiller et spil counter strike , hvor vi skyder vores modstandere eller vi bliver dræbt af them.We skyde dem alle og fuldføre episoden eller vi bliver dræbt. Så der er kun to tilfælde til at fuldføre episoderne.

Efterforskning og udnyttelse kompromis

Der er et vigtigt koncept for efterforskning og udnyttelse af kompromis med forstærkningslæring. Efterforskning handler om at finde mere information om et miljø, mens udnyttelse udnytter allerede kendte oplysninger for at maksimere fordelene.

Eksempel på virkelige liv: Sig, at du går til den samme restaurant hver dag. Du udnytter dybest set . Men på den anden side, hvis du søger efter ny restaurant hver gang inden du går til en af ​​dem, så er det udforskning . Efterforskning er meget vigtigt for søgningen efter fremtidige belønninger, som måske er højere end de nærmeste belønninger.

I ovenstående spil kan vores robotmus have en god mængde lille ost (+0,5 hver). Men øverst i labyrinten er der en stor sum ost (+100). Så hvis vi kun fokuserer på den nærmeste belønning, når vores robotmus aldrig den store sum ost - den vil bare udnytte.

Men hvis robotmusen udforsker lidt, kan den finde den store belønning, dvs. den store ost.

Dette er det grundlæggende koncept for efterforskning og udnyttelse af kompromis.

Tilgange til forstærkningslæring

Lad os nu forstå fremgangsmåderne til løsning af forstærkende indlæringsproblemer. Dybest set er der 3 tilgange, men vi tager kun 2 store tilgange i denne artikel:

1. Politikbaseret tilgang

I politikbaseret forstærkningslæring har vi en politik, som vi skal optimere. Politikken definerer grundlæggende, hvordan agenten opfører sig:

Vi lærer en politikfunktion, der hjælper os med at kortlægge hver stat til den bedste handling.

Når vi kommer dybt ind i politikker, opdeler vi yderligere politikker i to typer:

  • Deterministisk : en politik i en eller flere givne stater vil altid returnere den samme handling (a). Det betyder, at det er kortlagt som S = (s) ➡ A = (a).
  • Stokastisk : Det giver en fordeling af sandsynligheden over forskellige handlinger . dvs. stokastisk politik ➡ p (A = a | S = s)

2. Værdibaseret

I værdibaseret RL er agentens mål at optimere værdifunktionen V (s), der er defineret somen funktion, der fortæller os den maksimale forventede fremtidige belønning, som agenten får i hver stat.

Værdien af ​​hver stat er det samlede beløb for den belønning, en RL-agent kan forvente at samle i fremtiden, fra en bestemt stat.

Agenten bruger ovenstående værdifunktion til at vælge hvilken tilstand, der skal vælges ved hvert trin. Agenten tager altid staten med den største værdi.

I nedenstående eksempel ser vi, at vi ved hvert trin vil tage den største værdi for at nå vores mål: 1 3 4 ➡ 6 så videre ...

Spillet med Pong - En intuitiv casestudie

Lad os tage et virkeligt eksempel på at spille pong. Denne casestudie vil bare introducere dig til Intuition of How reinforcement Learning Works . Vi vil ikke komme i detaljer i dette eksempel, men i den næste artikel vil vi helt sikkert grave dybere.

Antag, at vi lærer vores RL-agent at spille Pong.

Dybest set fodrer vi i spilrammerne (nye stater) til RL-algoritmen og lader algoritmen beslutte, hvor den skal op eller ned. Dette netværk siges at være et politisk netværk, som vi vil diskutere i vores næste artikel.

Metoden, der bruges til at træne denne algoritme, kaldes politikgradienten . Vi fodrer tilfældige rammer fra spilmotoren, og algoritmen producerer et tilfældigt output, der giver en belønning, og dette føres tilbage til algoritmen / netværket. Dette er en iterativ proces.

Vi vil diskutere politikgradienter i den næste artikel med flere detaljer.

I sammenhæng med spillet fungerer scorebordet som en belønning eller feed-back til agenten. Hver gang agenten har en tendens til at score +1, forstår den, at den handling, den har taget, var god nok i den tilstand.

Nu træner vi agenten til at spille pong-spillet. For at starte, vil vi føde en masse spilrammer (tilstande) til netværket / algoritmen og lade algoritmen bestemme handlingen. Agentens indledende handlinger vil tydeligvis være dårlige, men vores agent kan undertiden være heldig nok til at score en punkt, og dette kan være en tilfældig begivenhed. Men på grund af denne heldige tilfældige begivenhed modtager den en belønning, og dette hjælper agenten med at forstå, at række handlinger var gode nok til at hente en belønning.

Så i fremtiden vil agenten sandsynligvis tage de handlinger, der vil hente en belønning frem for en handling, der ikke vil. Intuitivt læner RL-agenten sig for at spille spillet.

Begrænsninger

Når en agent mister en episode under agentens træning, vil algoritmen kassere eller mindske sandsynligheden for at tage alle de handlingsserier, der eksisterede i denne episode.

Men hvis agenten presterede godt fra starten af ​​episoden, men bare på grund af de sidste to handlinger, mistede agenten spillet, giver det ikke mening at kassere alle handlinger. Det giver snarere mening, hvis vi bare fjerner de sidste 2 handlinger, som resulterede i tabet.

Dette kaldes kreditfordelingsproblemet. Dette problem opstår på grund af en sparsom belønningsindstilling. Det vil sige, i stedet for at få en belønning ved hvert trin, får vi belønningen i slutningen af ​​episoden. Så det er på agenten at lære, hvilke handlinger der var korrekte, og hvilke faktiske handlinger, der førte til at miste spillet.

Så på grund af denne sparsomme belønningsindstilling i RL er algoritmen meget prøve-ineffektiv. Dette betyder, at der skal indføres store træningseksempler for at træne agenten. Men faktum er, at sparsomme belønningsindstillinger mislykkes under mange omstændigheder på grund af miljøets kompleksitet.

Så der er noget, der kaldes rewards shaping, der bruges til at løse dette. Men igen lider formgivning af belønninger også under en vis begrænsning, da vi skal designe en brugerdefineret belønningsfunktion til hvert spil.

Afslutningsnote

I dag er forstærkningslæring et spændende studieområde. Der er sket store udviklinger i marken, hvor dyb forstærkning læring er en.

Vi vil dække dyb forstærkningslæring i vores kommende artikler. Denne artikel dækker mange koncepter. Tag din egen tid til at forstå de grundlæggende begreber forstærkningslæring.

Men jeg vil gerne nævne, at forstærkning ikke er en hemmelig sort boks. Uanset hvilke fremskridt vi ser i dag inden for forstærkningslæring, er det et resultat af lyse sind, der arbejder dag og nat med specifikke applikationer.

Næste gang vi arbejder på en Q-læringsagent og også dækker nogle mere basale ting i forstærkningslæring.

Indtil, så nyd AI? ...

Vigtigt : Denne artikel er 1. del af Deep Reinforcement Learning-serien. Den komplette serie skal være tilgængelig både på tekstlæsbare formularer på Medium og i videoforklarende form på min kanal på YouTube.

For en dybere og mere intuitiv forståelse af forstærkningslæring, vil jeg anbefale, at du ser nedenstående video:

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

Hvis du kunne lide min artikel, skal du klikke på ? a s Jeg er fortsat motiveret til at skrive ting og følg mig venligst på Medium &

Hvis du har spørgsmål, så lad mig det vide i en kommentar nedenfor eller Twitter . Abonner på min YouTube-kanal for flere tekniske videoer: ADL .