Johdatus Q-oppimiseen: vahvistava oppiminen

Tämä artikkeli on "Deep reinforcement learning" -sarjan toinen osa. Koko sarja on saatavilla sekä Mediumissa että YouTube-kanavani videoissa.

Sarjan ensimmäisessä osassa opimme vahvistamisen oppimisen perusteet .

Q-oppiminen on arvopohjainen oppimisalgoritmi vahvistusoppimisessa. Tässä artikkelissa opit Q-oppimisesta ja sen yksityiskohdista:

  • Mikä on Q-oppiminen?
  • Q-oppimisen takana oleva matematiikka
  • Toteutus pythonilla

Q-Learning - yksinkertaistettu yleiskatsaus

Oletetaan, että robotin on ylitettävä sokkelo ja päästävä päätepisteeseen. On kaivokset , ja robotti voi siirtää vain yhden laatan kerrallaan. Jos robotti astuu miinalle, robotti on kuollut. Robotin on päästävä loppupisteeseen mahdollisimman nopeasti.

Pisteytys / palkitsemisjärjestelmä on seuraava:

  1. Robotti menettää yhden pisteen jokaisessa vaiheessa. Tämä tehdään niin, että robotti kulkee lyhyimmällä polulla ja saavuttaa tavoitteen mahdollisimman nopeasti.
  2. Jos robotti astuu miinalle, pistetappio on 100 ja peli päättyy.
  3. Jos robotti saa voimaa ⚡️, se saa yhden pisteen.
  4. Jos robotti saavuttaa lopullisen tavoitteen, robotti saa 100 pistettä.

Nyt on selvä kysymys: Kuinka voimme kouluttaa robotin saavuttamaan lopputavoitteen lyhyimmällä polulla astumatta miinalle?

Joten miten voimme ratkaista tämän?

Esittelyssä Q-taulukko

Q-taulukko on vain hienostunut nimi yksinkertaiselle hakutaulukolle, jossa laskemme toiminnan odotettavissa olevat enimmäispalkkiot kussakin tilassa. Periaatteessa tämä taulukko opastaa meidät parhaisiin toimiin jokaisessa osavaltiossa.

Jokaisessa reunan ulkopuolella olevassa ruudussa on neljä toimintojen lukumäärää. Kun robotti on tilassa, se voi joko liikkua ylös tai alas tai oikealle tai vasemmalle.

Joten mallinnetaan tämä ympäristö Q-taulukossamme.

Q-taulukon sarakkeet ovat toimintoja ja rivit tiloja.

Jokainen Q-taulukon piste on suurin odotettu tuleva palkkio, jonka robotti saa, jos se suorittaa kyseisen toiminnan kyseisessä tilassa. Tämä on iteratiivinen prosessi, koska meidän on parannettava Q-taulukkoa jokaisella iteraatiolla.

Mutta kysymykset ovat:

  • Kuinka laskemme Q-taulukon arvot?
  • Ovatko arvot saatavilla vai ennalta määritelty?

Q-taulukon kunkin arvon oppimiseksi käytämme Q-Learning-algoritmia.

Matematiikka: Q-Learning-algoritmi

Q-toiminto

Q-toiminto käyttää Bellman yhtälö ja ottaa kaksi tuloa: tila ( t ), ja toiminta ( ).

Edellä olevaa funktiota käyttämällä saadaan Q : n arvot taulukon soluille.

Kun aloitamme, kaikki Q-taulukon arvot ovat nollia.

Arvojen päivittäminen tapahtuu iteratiivisesti. Kun alamme tutkia ympäristöä , Q-funktio antaa meille parempia likiarvoja päivittämällä taulukon Q-arvoja jatkuvasti.

Ymmärretään nyt, kuinka päivitys tapahtuu.

Esittelyssä Q-oppimisalgoritmiprosessi

Jokainen värillinen laatikko on yksi askel. Ymmärretään jokainen näistä vaiheista yksityiskohtaisesti.

Vaihe 1: alustaa Q-taulukko

Rakennamme ensin Q-taulukon. Sarakkeita on n, joissa n = toimintojen lukumäärä. On m riviä, joissa m = tilojen lukumäärä. Alustamme arvot nollalla.

Robottiesimerkissämme meillä on neljä toimintoa (a = 4) ja viisi tilaa (s = 5). Joten rakennamme taulukon, jossa on neljä saraketta ja viisi riviä.

Vaiheet 2 ja 3: valitse ja suorita toiminto

Tämä vaiheiden yhdistelmä tehdään määrittelemättömän ajan. Tämä tarkoittaa, että tämä vaihe jatkuu siihen asti, kunnes lopetamme harjoittelun, tai harjoitussilmukka pysähtyy koodissa määritellyn mukaisesti.

Valitsemme toiminnan (a) tilassa (tiloissa) Q-taulukon perusteella. Mutta kuten aiemmin mainittiin, jakson alkaessa jokainen Q-arvo on 0.

Joten nyt etsintä- ja hyödyntämisvaihdon käsite tulee esiin. Tässä artikkelissa on lisätietoja.

Käytämme jotain, jota kutsutaan epsilonin ahneeksi strategiaksi .

Alussa epsilon-hinnat ovat korkeammat. Robotti tutkii ympäristöä ja valitsee satunnaisesti toiminnot. Tämän takana on, että robotti ei tiedä mitään ympäristöstä.

Kun robotti tutkii ympäristöä, epsilon-nopeus laskee ja robotti alkaa hyödyntää ympäristöä.

Tutkimusprosessin aikana robotti tulee asteittain varmemmaksi Q-arvojen arvioimisessa.

Robottiesimerkissä on neljä toimintoa, joista valita : ylös, alas, vasemmalle ja oikealle.Aloitamme koulutuksen nyt - robotti ei tiedä mitään ympäristöstä. Joten robotti valitsee satunnaisen toiminnan, sano oikein.

Voimme nyt päivittää alku- ja oikealle liikkumisen Q-arvot Bellman-yhtälön avulla.

Vaiheet 4 ja 5: arvioi

Nyt olemme ryhtyneet toimiin ja havainneet tuloksen ja palkkion, ja meidän on päivitettävä toiminto Q (s, a).

Robottipelin tapauksessa pisteytys / palkintorakenne on toistettava seuraavasti:

  • teho = +1
  • minun = -100
  • loppu = +100

Toistamme tämän uudestaan ​​ja uudestaan, kunnes oppiminen lopetetaan. Tällä tavalla Q-taulukko päivitetään.

Q-oppimisen Python-toteutus

Käsite ja koodin toteutus on selitetty videossani.

Tilaa YouTube-kanavani Lisää AI-videoita: ADL .

Vihdoin… kertaamme lyhyesti

  • Q-Learning on arvopohjainen vahvistusoppimisalgoritmi, jota käytetään optimaalisen toimintavalinnan käytännön löytämiseen Q-funktiota käyttämällä.
  • Tavoitteenamme on maksimoida arvofunktio Q.
  • Q-taulukko auttaa meitä löytämään parhaan toiminnan jokaiselle osavaltiolle.
  • Se auttaa maksimoimaan odotetun palkkion valitsemalla parhaan kaikista mahdollisista toimista.
  • Q (tila, toiminta) palauttaa kyseisen toiminnan odotetun tulevan palkkion kyseisessä tilassa.
  • Tämä toiminto voidaan arvioida käyttämällä Q-oppimista, joka päivittää Q (s, a) iteratiivisesti Bellman-yhtälön avulla.
  • Aluksi tutkimme ympäristöä ja päivitämme Q-taulukon. Kun Q-taulukko on valmis, agentti alkaa hyödyntää ympäristöä ja alkaa tehdä parempia toimia.

Seuraavan kerran teemme syvällisen Q-oppimisen esimerkin .

Nauti siihen asti tekoälystä?

Tärkeää : Kuten aiemmin todettiin, tämä artikkeli on Deep Reinforcement Learning -sarjan toinen osa. Koko sarja on saatavilla sekä Medium-artikkeleissa että YouTube-kanavani videoissa.

Jos pidit artikkelistani, napsauta? T o auttaa minua pitämään motivaation kirjoittaa artikkeleita. Seuraa minua M ediumissa ja muussa sosiaalisessa mediassa:

Jos sinulla on kysyttävää, ilmoita siitä minulle alla olevassa kommentissa tai Twitterissä .

Tilaa YouTube-kanavani saadaksesi lisää teknisiä videoita.