Forsterkende læring

Forsterkende læring (engelsk: reinforcement learning) er en type maskinlæring, og dermed også en gren av kunstig intelligens. Forsterkende læring går ut på at maskiner eller programvare,  agenter, prøver å finne løsningen til et problem ved å definere den ideelle løsningen innenfor en bestemt kontekst, og så gir belønninger eller straff for hvorvidt oppførselen fører agenten nærmere eller lengre fra løsningen. Forsterkningslæring er inspirert av psykologiens behaviorisme og appellerer til mange forskere på grunn av sin generalitet.


== Dynamisk programmering ==
Forsterkende læring kombinerer to fagfelt for å kunne løse problemer som fagene ikke kan løse individuelt. Dynamisk programmering er et fagfelt innen matematikk og informatikk som normalt sett har vært brukt til å løse problemer tilknyttet optimalisering og kontroll. Imidlertidlig er tradisjonell dynamisk programmering begrenset i størrelse og kompleksitet til problemene den kan løse.


== Veiledet læring ==
Veiledet læring (også kjent som styrt læring) er en generell metode for å trene en funksjon som tilordner inndata til ønsket utdata, basert på kategoriserte treningsdata. Veiledet læring krever sample input-output par fra funksjonen som skal læres. Med andre ord, veiledet læring krever et sett med spørsmål med de riktige svarene. For eksempel, vi kjenner ikke nødvendigvis den beste måten å programmere en datamaskin til å gjenkjenne et infrarødt bilde av en tanks, men dersom vi har en stor samling av infrarøde bilder, og vi vet hvorvidt hvert bilde inneholder en tanks eller ikke så vil veiledet læring kunne se på alle eksemplene med svar, og lære å gjenkjenne tanker generelt. Dette gjøres ved at algoritmen prøver seg frem og får positiv tilbakemelding dersom den gjør noe riktig. 
Dessverre er det mange situasjoner der vi ikke kjenner de riktige svarene som overvåket læring krever, men gjennom teknikker som Markov beslutningprosess kan dette omgås. Enkel forsterkende læring kombinerer dog dynamisk programmering og veiledet læring.


== Bruk ==
Forsterkende læring gir agenten bare et mål å oppnå. Agenten lærer da hvordan man skal oppnå dette målet ved prøving og feiling gjennom interaksjoner med omgivelsene. Logiske spill er også godt egnet til forsterkning læring, slik de er tradisjonelt definert som en sekvens av handlinger: spill som poker, back-gammon, Othello og sjakk blitt taklet mer eller mindre vellykket. Det er tre grunnleggende deler av en forsterkning læring problem: miljø, den forsterkende funksjonen og verdi funksjonen.


== Omgivelsene ==
Hvert forsterkende læringssystem lærer en «kartlegging» fra tilstander til handlinger ved prøving og feiling. Omgivelsene må minst være delvis observerbar av læringssystemet.


== Den forsterkende funksjonen ==
Den kartleggingen som finnes mellom tilstand til handlinger gir agenten en belønning eller straff. Dersom agenten er i tilstand X så kan han motta forskjellige belønninger ut ifra hvilken handling den velger. Spørsmålet nå er hvorvidt den skal utforske og få mer kunnskap om omgivelsene, eller være grådig, noe som i maskinlære vil si å velge handlingen som gir størst belønning. Når agent er ferdig utlært vil den alltid være grådig og utfører de handlinger som maksimerer summen av belønninger.


== Verdi-funksjon ==
Verdi-funksjonen avgjør spørsmålet om hvordan agent lærer å velge "gode" handlinger, eller hvordan vi kan måle nytten av en gitt handling. Først trenger vi en plan som bestemmer hvilke  handlinger som skal utføres i hver tilstand. Verdien av en tilstand er definert som summen av belønningene som blir mottatt gjennom læringsprosessen. Dette blir omgjort til faste retningslinjer når læringen er ferdig. Den optimale planen vil derfor være at kartleggingen fra tilstand til handling har den maksimale summen av belønninger når agenten begynner i en vilkårlig tilstand og utfører handlinger til den endelige tilstanden er nådd. Et eksempel på en verdi funksjon kan bli sett ved hjelp av en enkel Markov-beslutningsprosess.


== Markov-beslutningsprosess ==
En Markov beslutningsprosess (MDP) består av et sett med tilstander X, et sett med start tilstander S som er en delmengde av X, et sett av handlinger A, en forsterkende funksjon R der R (X, A) er en forventet umiddelbar belønning for å utføre en handling som gir tilstand x, og en handlingsmodell P der P (x '| x, a) er sannsynligheten for at utførende handling i tilstand x vil føre til tilstand x'. Det er videre et krav at valg av handling skal være avhengig utelukkende av den nåværende observasjonen av x. Dersom kunnskap om tidligere handlinger eller tilstander påvirker dagens handlingsvalg da er det ikke en Markov-beslutningsprosess.


== Q-læring ==
En mye brukt algoritme innenfor forsterkende læring er Q-læring.


== Litteratur ==
S. Russel & P. Norvig (2003): Artificial Intelligence – a modern approach, ISBN 0-13-080302-2, Pearson Education
I. Millington & J. Funge (2009). Artificial intelligence for games (2nd ed. utgave). Burlington, MA: Morgan Kaufmann/Elsevier. ISBN 978-0-12-374731-0.
M. Harmon (1996) Reinforcement learning: a tutorial