RL – DQN Deep Q-network
Pot juca calculatoarele jocuri video ca un om? În 2015, DQN a învins experți umani în multe jocuri Atari. Dar, odată ajuns la jocuri complexe de strategie de război, AI nu se descurcă prea bine. În 2017, o echipă de profesioniști a învins cu ușurință un program DeepMind AI în Starcraft 2.
Cum este citat din lucrarea DeepMind:
Este o problemă multi-agent cu mai mulți jucători care interacționează; există informații imperfecte din cauza unei hărți observate parțial; are un spațiu de acțiune mare care implică selectarea și controlul a sute de unități; are un spațiu de stare mare care trebuie observat numai din planurile de caracteristici de intrare brute; și are o atribuire întârziată a creditelor care necesită strategii pe termen lung pe mii de pași.
Să reîncepem călătoria noastră înapoi la rețeaua Deep Q-Network DQN. În jocul Seaquest de mai jos, DQN învață cum să citească scorurile, să împuște inamicul și să salveze scafandrii din imaginile brute, de una singură. Ea descoperă, de asemenea, cunoștințe la care ne putem referi ca strategie, cum ar fi, când să aducem submarinul la suprafață pentru oxigen.
Învățarea Q învață funcția acțiune-valoare Q(s, a): cât de bine este să iei o acțiune la o anumită stare. De exemplu, pentru poziția pe tabla de joc de mai jos, cât de bine este să muți pionul cu doi pași înainte. La propriu, atribuim o valoare scalară asupra beneficiului de a face o astfel de mutare.
Q se numește funcția acțiune-valoare (sau funcția Q-valoare în acest articol).
Atât cu reluarea experienței, cât și cu rețeaua țintă, avem o intrare și o ieșire mai stabile pentru a antrena rețeaua și se comportă mai mult ca o instruire supravegheată.
Reproducerea experienței are cea mai mare îmbunătățire a performanței în DQN. Îmbunătățirea rețelei țintă este semnificativă, dar nu la fel de critică precum reluarea. Dar devine mai importantă atunci când capacitatea rețelei este mică.
Învățare Q profundă cu reluarea experienței
Iată algoritmul:
unde ϕ preprocesează ultimele 4 cadre de imagine pentru a reprezenta starea. Pentru a capta mișcarea, folosim patru cadre pentru a reprezenta o stare.
Detalii de implementare
Funcția de pierdere
Să trecem în revistă alte câteva detalii de implementare pentru a îmbunătăți performanța. DQN utilizează pierderea Huber (curba verde), unde pierderea este pătratică pentru valori mici ale lui a și liniară pentru valori mari.
Introducerea pierderii Huber permite schimbări mai puțin dramatice care adesea afectează RL.
Optimizare
Învățarea RL este sensibilă la metodele de optimizare. Programarea simplă a ratei de învățare nu este suficient de dinamică pentru a face față schimbărilor de intrare în timpul antrenamentului. Multe antrenamente RL utilizează RMSProp sau optimizatorul Adam. DQN este antrenat cu RMSProp. Utilizarea metodei de optimizare avansată în metodele Policy Gradient este, de asemenea, intens studiată.
ϵ-greedy
DQN utilizează ϵ-greedy pentru a selecta prima acțiune.
Pentru a îmbunătăți instruirea, ϵ începe la 1 și se recoace la 0.1 sau 0,05 pe parcursul primului milion de cadre folosind următoarea politică.
unde m este numărul de acțiuni posibile. La începutul antrenamentului, selectăm în mod uniform acțiunile posibile, dar pe măsură ce antrenamentul avansează, selectăm mai frecvent acțiunea optimă a*. Acest lucru permite o explorare maximă la început care, în cele din urmă, trece la exploatare.
Dar chiar și în timpul testării, putem menține ϵ la o valoare mică, cum ar fi 0,05. O politică deterministă poate rămâne blocată într-un optim local. O politică nedeterministă ne permite să ieșim pentru o șansă de a ajunge la un optim mai bun.
Arhitectura
Iată arhitectura DQN. Luăm ultimele 4 cadre video anterioare și le introducem în straturi convoluționale urmate de straturi complet conectate pentru a calcula valorile Q pentru fiecare acțiune.
În exemplul de mai jos, dacă nu mișcăm paleta în sus la cadrul 3, vom rata mingea. Așa cum era de așteptat din DQN, valoarea Q a mișcării paletei în sus este mult mai mare în comparație cu alte acțiuni.
Îmbunătățiri aduse DQN
Multe îmbunătățiri sunt aduse DQN. În această secțiune, vom prezenta câteva metode care demonstrează îmbunătățiri semnificative.
Double DQN
În învățarea Q, folosim următoarea formulă pentru valoarea țintă pentru Q.
Cu toate acestea, operația max creează o polarizare pozitivă față de estimările Q.
Din exemplul de mai sus, observăm că max Q(s, a) este mai mare decât valoarea convergentă 1.0. Adică operația max supraestimează Q. Prin teorie și experimente, performanța DQN se îmbunătățește dacă folosim rețeaua online θ pentru a selecta greșit acțiunea și rețeaua țintă θ- pentru a estima valoarea Q.
Reproducere prioritară a experienței
DQN eșantionează în mod uniform tranzițiile din bufferul de reproducere. Cu toate acestea, ar trebui să acordăm mai puțină atenție eșantioanelor care este deja aproape de țintă. Ar trebui să eșantionăm tranzițiile care au un decalaj mare față de țintă:
Prin urmare, putem selecta tranzițiile din memoria tampon
- în funcție de valoarea erorii de mai sus (se aleg mai frecvent tranzițiile cu eroare mai mare) sau
- se clasifică în funcție de valoarea erorii și se selectează în funcție de rang (se alege mai frecvent cea cu rang mai mare).
Pentru detalii cu privire la ecuațiile privind datele de eșantionare, vă rugăm să consultați documentul Prioritized Experience Replay.
Dueling DQN
În Dueling DQN, Q este calculat cu o formulă diferită de mai jos cu funcția de valoare V și o funcție de avantaj de acțiune A, dependentă de stare, de mai jos:
În loc să învățăm Q, folosim două capete separate pentru a calcula V și A. Experimentele empirice arată că performanța se îmbunătățește. DQN actualizează funcția de valoare Q a unei stări numai pentru o anumită acțiune. DQN în duel actualizează V, de care pot profita și alte actualizări Q(s, a’). Astfel, se consideră că fiecare iterație de instruire a DQN Dueling DQN are un impact mai mare.
Neturi zgomotoase pentru explorare
DQN utilizează ϵ-greedy pentru a selecta acțiunile. Alternativ, NoisyNet o înlocuiește prin adăugarea de zgomot parametric la stratul liniar pentru a ajuta explorarea. În NoisyNet, ε-greedy nu este utilizat. Acesta utilizează o metodă greedy pentru a selecta acțiunile din funcția de valoare Q. Dar pentru straturile complet conectate ale aproximatorului Q, adăugăm zgomot parametrizat antrenabil dedesubt pentru a explora acțiunile. Adăugarea de zgomot la o rețea profundă este adesea echivalentă sau mai bună decât adăugarea de zgomot la o acțiune ca cea din metoda ϵ-greedy.
Mai multe gânduri
DQN aparține unei clase importante de RL, și anume învățarea valorilor. În practică, deseori combinăm gradienții de politici cu metodele de învățare a valorilor în rezolvarea problemelor din viața reală.
.
Leave a Reply