Egyszerűen elmagyarázva: Hogyan tudta egy mesterséges intelligencia program elsajátítani a Go ősi játékát

Ez az AlphaGo- ról szól , a Google DeepMind Go játékáról, amely AI-t játszik, amely 2016-ban megrázta a technológiai világot azzal, hogy legyőzte a világ egyik legjobb játékosát, Lee Sedolt.

A Go egy ősi társasjáték, amelynek annyi lehetséges mozdulata van minden lépésnél, hogy a jövőbeni helyzeteket nehéz megjósolni - ezért a játékhoz erős intuícióra és elvont gondolkodásra van szükség. Emiatt úgy gondolták, hogy csak az emberek tudnak jól játszani a Go-ban. A legtöbb kutató úgy gondolta, hogy még mindig évtizedekbe telik egy olyan AI létrehozása, amely így gondolkodhat. Valójában ma adom ki ezt az esszét, mert ezen a héten (március 8–15.) Az AlphaGo vs Sedol mérkőzés kétéves évfordulója van!

De az AlphaGo nem állt meg itt. 8 hónappal később 60 profi játékot játszott egy Go weboldalon, „Master” nevű játékosnak álcázva, és minden egyes játékot megnyert , több tucat világbajnok ellen , természetesen anélkül, hogy a játékok között pihent volna.

Természetesen ez hatalmas teljesítmény volt a mesterséges intelligencia területén, és világszerte megbeszéléseket váltott ki arról, hogy izgatottak-e vagy aggódnunk-e a mesterséges intelligencia miatt.

Ma fogjuk venni a DeepMind által a Nature folyóiratban megjelent eredeti kutatási cikket , és azt egyszerű angol nyelv segítségével szakaszokról lebontjuk .

Ezen esszé után nagyon világosan tudni fogja, mi az AlphaGo, és hogyan működik. Remélem azt is, hogy ennek elolvasása után nem fogja elhinni az újságírók által készített összes hírcímet, hogy megijesszenek az AI-vel kapcsolatban, és inkább izgatottnak érzi magát.

Az AI növekvő eredményei miatt aggódni ugyanolyan, mint a Microsoft Powerpoint növekvő képességeitől. Igen, idővel jobb lesz, ha új funkciókat adunk hozzá, de nem csak irányíthatatlanul nőhet valamilyen hollywoodi szörnyeteggé.

A cikk megértéséhez NEM kell tudnia a Go játékot. Valójában én magam csak a Wikipedia kezdő bekezdésének első 3–4 sorát olvastam róla. Ehelyett meglepő módon az alap sakk néhány példáját használom az algoritmusok magyarázatára. Csak tudnod kell, mi az a 2 fős társasjáték, amelyben minden játékos felváltva játszik, és a végén egy győztes van. Ezen túl nem kell tudnod semmilyen fizikát, haladó matematikát vagy bármit.

Ez hozzáférhetőbbé teszi azok számára, akik csak most kezdték el megismerni a gépi tanulást vagy az ideghálózatokat. És különösen azok számára, akik nem az angolt használják első nyelvként (ami nagyon megnehezítheti az ilyen cikkek olvasását).

Ha nincs előzetes ismerete AI és a neurális hálózatok, akkor olvassa el a „Deep Learning” részében egyik korábbi esszék itt . Miután elolvasta, képes lesz átvészelni ezt az esszét.

Ha sekély megértést szeretne kapni a megerősítő tanulásról is (opcionális olvasmány), itt megtalálja .

Itt van az eredeti papír, ha el akarja próbálni elolvasni:

Ami engem illet: Szia Aman vagyok, AI és autonóm robotmérnök. Remélem, hogy munkám sok időt és fáradságot megspórol Önnek, ha önállóan tanulmányozná ezt.

Beszélsz japánul? Ryohji Ikebe írt egy rövid emlékeztetőt erről az esszéről japánul, a Tweets sorozatban.

Kezdjük el!

Absztrakt

Mint tudják, ennek a kutatásnak az volt a célja, hogy egy AI programot képezzenek a Go játékra a világszínvonalú profi emberi játékosok szintjén.

Ennek a kihívásnak a megértése érdekében hadd beszéljek először valami hasonlóról, amelyet a Sakkért tettek. A kilencvenes évek elején az IBM megjelent a Deep Blue számítógéppel, amely sakkban legyőzte a nagy bajnok Garry Kaszparovot . (Nagyon klassz srác is, mindenképpen olvass el róla később!) Hogyan játszott a Deep Blue?

Nos, nagyon durva erő módszerrel dolgozott. A játék minden egyes lépésében megvizsgálta az összes lehetséges jogi lépést, amelyet el lehetett játszani, és folytatta, hogy feltárja minden egyes lépését, hogy mi történjen. És ez egy ideig mozgás után kutatna, egyfajta HATALMAS döntési fát alkotva, több ezer mozdulatból. És akkor visszajön a fa mentén, megfigyelve, hogy melyik mozdulatok tűnnek valószínűleg jó eredménnyel. De mit értünk a „jó eredmény” alatt? Nos, a Deep Blue sok gondosan megtervezett sakkstratégiát épített bele szakértő sakkozók, hogy segítsenek neki jobb döntéseket hozni - például hogyan lehet eldönteni, hogy megvédjük-e a királyt, vagy valahol másutt szerezzünk előnyöket? Erre a célra külön „értékelési algoritmust” készítettek,összehasonlítani, hogy a tábla különböző pozíciói mennyire előnyösek vagy hátrányosak (az IBM szigorúan kódolt szakértői sakk stratégiák ebbe az értékelési funkcióba). És végül gondosan kiszámított lépést választ. A következő körben alapvetően újra végigcsinálja az egészet.

Amint láthatja, ez azt jelenti, hogy a Deep Blue elméleti pozíciók millióin gondolkodott, mielőtt minden mozdulatot lejátszott volna. Ez nem volt annyira lenyűgöző a Deep Blue AI szoftverét tekintve, inkább a hardver szempontjából - az IBM azt állította, hogy az akkoriban a piacon elérhető egyik legerősebb számítógép volt. Ez másodpercenként 200 millió tábla pozíciót nézhet meg.

Most a Go-hoz érkeztünk. Csak hidd el, hogy ez a játék sokkal nyitottabb, és ha kipróbálnád a Deep Blue stratégiát a Go-on, akkor nem tudnál jól játszani. Olyan sok helyzet lenne, hogy megnézzük az egyes lépéseket, hogy egyszerűen nem praktikus, ha egy számítógép átmegy ezen a pokolon. Például a sakk nyitó lépésénél 20 lehetséges lépés van. A Go-ban az első játékosnak 361 lehetséges mozdulata van, és ez a választási lehetőség széles a játék során.

Ezt értik a „hatalmas keresési tér” alatt. Sőt, a Go-ban nem olyan könnyű megítélni, hogy az adott tábla pozíció mennyire előnyös vagy hátrányos a játék bármely pontján - bizonyos ideig az egész játékot el kell játszania, mielőtt meghatározhatja, ki nyer. De tegyük fel, hogy varázslatosan volt módja mindkettőre. És itt jön be a mély tanulás!

Tehát ebben a kutatásban a DeepMind mind a két feladat elvégzéséhez neurális hálózatokat használt (ha még soha nem olvasott az ideghálózatokról, íme a hivatkozás újra). Kiképeztek egy „politikai ideghálózatot” annak eldöntésére, hogy melyik a legésszerűbb lépés az adott tábla helyzetében (tehát olyan, mintha intuitív stratégiát követnénk, ha bármilyen pozícióból választanánk a lépéseket). És kiképeztek egy „érték neurális hálózatot” annak megbecsülésére, hogy egy adott tábla elrendezése mennyire előnyös a játékos számára (vagy más szavakkal, mennyire valószínű, hogy megnyeri a játékot ebből a pozícióból). Ezeket az ideghálózatokat először emberi játékpéldákkal képezték ki (a te jó, régi, felügyelt tanulásoddal). Ezt követően az AI képes volt bizonyos mértékig utánozni az emberi játékot, így gyenge emberi játékosként viselkedett. És aztán még tovább képezni a hálózatokat,milliókat késztettek arra, hogy az AI önmagával játsszon (ez a „megerősítő tanulás” része). Ezzel az AI jobb lett, mert több gyakorlata volt.

Csak ezzel a két hálózattal a DeepMind mesterséges intelligenciája jól tudott játszani a korszerű Go játékprogramokkal szemben, amelyeket más kutatók korábban építettek. Ezek a más programok már korábban is népszerű, már létező játék-algoritmust használtak, az úgynevezett „Monte Carlo Tree Search” (MCTS) nevet. Bővebben erről később.

De találd ki, mi még mindig nem beszéltünk az igazi ügyről. A DeepMind mesterséges intelligenciája nem csak a házirendről és az értékhálózatokról szól. Nem használ a két hálózat egy csere a Monte Carlo fa keresése. Ehelyett a neurális hálózatokat használja az MCTS algoritmus jobb működéséhez ... és annyira jobb lett, hogy emberfeletti szintet ért el. Az MCTS EZ a továbbfejlesztett változata az „AlphaGo”, az AI, amely legyőzte Lee Sedolt, és az AI történelmében az egyik legnagyobb áttörésnek számított. Tehát lényegében az AlphaGo egyszerűen egy nagyon hétköznapi informatikai algoritmus továbbfejlesztett megvalósítása . Megértette most, hogy az AI a jelenlegi formájában miért nem fél semmitől ?

Hú, sok időt töltöttünk egyedül az Absztrakton.

Rendben - hogy a cikket ettől a ponttól kezdve megértsük, először a Monte Carlo Tree Search algoritmus nevű játékstratégiáról beszélünk. Egyelőre csak elég mélyen elmagyarázom ezt az algoritmust, hogy értelmes legyen ez az esszé. De ha alaposan meg akarja ismerni, néhány okos ember kiváló videókat és blogbejegyzéseket is készített erről:

1. Egy rövid videósorozat az Udacity-től

2. Jeff Bradberry magyarázata az MCTS-ről

3. A Fullstack Academy MCTS oktatóprogramja

A következő szakasz hosszú, de könnyen érthető (mindent megteszek) és NAGYON fontos, ezért maradj velem! Az esszé többi része sokkal gyorsabban megy.

Beszéljünk a fenti esszé első bekezdéséről. Emlékszel, mit mondtam arról, hogy a Deep Blue a játék minden egyes lépésénél hatalmas fát készített, több millió tábla helyzetből és mozdulatból? Szimulációkat kellett végrehajtania, és meg kellett vizsgálnia és össze kellett hasonlítania minden lehetséges mozdulatot. Mint már korábban mondtam, ez egyszerű és nagyon egyszerű megközelítés volt - ha egy átlagos szoftvermérnöknek egy AI-t játszó játékot kellene megterveznie, és a világ összes legerősebb számítógépével rendelkezne, valószínűleg hasonló megoldást tervezne.

De gondolkodjunk el azon, hogy az emberek maguk hogyan sakkoznak? Tegyük fel, hogy a játék közepén egy adott tábla pozícióban van. A játékszabályok alapján tucatnyi különböző dolgot tehetsz - ide helyezheted ezt a gyalogot, ide a négy királynőt vagy oda három négyzetet stb. De tényleg összeállít egy listát az összes lehetséges mozdulatról, amelyet az összes darabjával megtehet, majd kiválaszt egy lépést ebből a hosszú listából? Nem - „intuitív módon” szűkítasz néhány kulcslépésre (tegyük fel, hogy 3 értelmes mozdulattal állsz elő), amelyeknek szerinted van értelme, majd kíváncsi vagy arra, hogy mi fog történni a játékban, ha e három lépés egyikét választottad. 15–20 másodpercet tölthet el mind a 3 lépés, mind a jövőjük figyelembevételével - és vegye figyelembe, hogy ez alatt a 15 másodperc alatt nem kell alaposan megterveznie minden egyes lépés jövőjét;csak túl sok körültekintő gondolkodás nélkül „kigördítheti” néhány szellemi mozdulatát az intuíciója vezetésével (nos, egy jó játékos messzebb és mélyebben gondolkodna, mint egy átlagos játékos). Ez azért van, mert korlátozott az időd,és nem tudod pontosan megjósolni, mit fog tenni ellenfeled abban a szép jövőben, amelyet az agyadban főzöl. Tehát csak hagynod kell, hogy a beled érzése vezessen. A gondolkodási folyamatnak ezt a részét „bevezetésnek” fogom nevezni, ezért vegye tudomásul!

Tehát néhány értelmes mozdulatod „kigördítése” után végül azt mondod, hogy csavarja be, és csak játssza le azt a mozdulatot, amelyet a legjobban talál.

Ezután az ellenfél megmozdul. Lehet, hogy ez egy olyan lépés, amelyet már nagyon várt, ami azt jelenti, hogy most már eléggé magabiztos abban, hogy mit kell tennie a továbbiakban. Nem kell újra túl sok időt tölteni a bevezetésekkel. VAGY előfordulhat, hogy az ellenfél egy elég hűvös mozdulattal eltalál, amire nem számított, ezért még óvatosabbnak kell lennie a következő lépésével.

A játék így folytatódik, és ahogy egyre közelebb kerül a végponthoz, könnyebben meg tudja jósolni lépései kimenetelét - így a bevezetése nem vesz igénybe annyi időt.

Ennek a hosszú történetnek az a célja, hogy leírja, mit csinál az MCTS algoritmus felszínes szinten - utánozza a fenti gondolkodási folyamatot azáltal, hogy minden alkalommal létrehoz egy mozdulatokból és pozíciókból álló „keresőfát”. Ismét, további részletekért nézze meg az előbb említett linkeket. Az újítás itt az, hogy ahelyett, hogy minden helyzetben végigvenné az összes lehetséges mozdulatot (amit Deep Blue tett), ehelyett intelligensen kiválaszt egy ésszerű mozdulatok egy kis sorozatát, és ezeket feltárja. Felfedezésükhöz ezeknek a mozdulatoknak a jövőjét „kigördíti”, és elképzelt eredményeik alapján összehasonlítja őket .

(Komolyan - szerintem csak erre van szükséged, hogy megértsd ezt az esszét)

Most - visszatérve a képernyőképre a papírról. A Go egy „tökéletes információs játék” (kérjük, olvassa el a definíciót a linken, ne aggódjon, hogy nem ijesztő). És elméletileg , az ilyen játékok, nem számít, melyik adott pozícióban van az a játék (akkor is, ha csak játszott 1-2 mozog), lehetséges, hogy akkor helyesen kitalálni, ki fog nyerni, vagy veszíteni (feltételezve, hogy mindkét játékos játszik „Tökéletesen” attól kezdve). Fogalmam sincs, ki állt elő ezzel az elmélettel, de ez egy alapvető feltételezés ebben a kutatási projektben, és működik.

Tehát ez azt jelenti, hogy a játék s állapotában van egy v * (s) függvény, amely meg tudja jósolni az eredményt, mondjuk annak valószínűségét, hogy megnyeri ezt a játékot, 0-tól 1-ig. Ők ezt hívják „optimális értékfüggvénynek”. . Mivel egyes testületi pozíciók nagyobb valószínűséggel eredményeznek győzelmet, mint a többi tábla pozíciók, ezeket „értékesebbnek” lehet tekinteni, mint a többieknek. Hadd mondjam el újra: Érték = Valószínűség 0 és 1 között nyeri meg a játékot.

De várjon - mondjuk, ott ült melletted egy Foma nevű lány, miközben sakkoztál, és minden lépésnél folyamatosan elmondja, hogy nyersz vagy veszítesz. "Nyersz ... veszítesz ... Nem, még mindig veszítesz ..." Azt hiszem, ez nem sokat segítene abban, hogy melyik mozdulatot kell elvégezned. Ő is elég idegesítő lenne. Mi segítene önnek abban, ha megrajzolja az összes fát az összes lehetséges mozdulatból, és azokat az állapotokat, amelyekhez ezek a lépések vezetnek -, majd Foma elmondaná az egész fának, hogy mely államok nyerő állapotok és melyek vesztes államok. Ezután kiválaszthatja azokat a lépéseket, amelyek folyamatosan vezetnek a nyertes államokhoz. Foma hirtelen a bűnözés partnere, nem pedig idegesítő barát. Itt a Foma az optimális értékfüggvényként viselkedik v * (s). Korábban,úgy gondolták, hogy a Go játékához nem lehet olyan pontos értékfüggvény, mint a Foma, mert a játékokban annyi bizonytalanság volt.

DE - még akkor is, ha megvan a csodálatos Foma, ez a csodaországi stratégia, amely kihúzza a Foma számára az összes lehetséges helyzetet, értékelni fog, nem fog nagyon működni a való világban. Egy olyan játékban, mint a Sakk vagy a Go, amint azt korábban mondtuk, ha megpróbálsz elképzelni akár 7–8 lépést is a jövőbe, annyi helyzet állhat elő, hogy nincs elég időd mindegyiket ellenőrizni a Foma-val.

Tehát a Foma nem elég. Szűkíteni kell a mozdulatok listáját néhány értelmes mozdulatra, amelyeket a jövőben is kipróbálhat. Hogyan fogja a program ezt megtenni? Írja be Lusha-t. Lusha ügyes sakkozó és rajongó, aki évtizedekig nézte, ahogy a nagymesterek sakkoznak egymás ellen. Megnézheti a deszkád helyzetét, gyorsan megnézheti az összes rendelkezésre álló mozdulatot, és meg tudja mondani, mennyire valószínű, hogy egy sakkszakértő bármelyik mozdulatot megteszi, ha az asztalodnál ülnek. Tehát, ha 50 lehetséges mozdulatod van egy ponton, Lusha megmondja annak valószínűségét, hogy minden mozdulatot egy szakértő válogat. Természetesen néhány értelmes mozdulat sokkal nagyobb valószínűséggel, más értelmetlen mozdulatok pedig nagyon kevéssé valószínűek. Például: ha sakkban van, tegyük fel, hogy királynője veszélyben van a játék egyik sarkában,lehet, hogy még mindig lehetősége van egy kis gyalogot mozgatni a játék másik sarkábanpolitikai funkció , p (a \ s). Egy adott állam esetében valószínűségeket adhat minden lehetséges mozdulatra, amelyet egy szakértő végezne.

Hú - Lusha segítségét igénybe veheti, hogy kiválasszon néhány értelmes mozdulatot, és Foma megmondja a győzelem valószínűségét ezekből a mozdulatokból. Kiválaszthatja azt a lépést, amelyet Foma és Lusha is jóváhagy. Vagy ha extra óvatosságra vágyik, kigördítheti a Lusha által kiválasztott mozdulatokat, kérheti a Fomát, hogy értékelje őket, válasszon közülük néhányat, hogy tovább terjesszen a jövőbe, és hagyja, hogy Foma és Lusha NAGYON előrejelezhessék a játék jövője - sokkal gyorsabb és hatékonyabb, mint a jövő minden egyes lépésénél minden lépés megtétele. EZT értik a „keresési tér csökkentésével”. Használjon értékfüggvényt (Foma) az eredmények megjóslásához, és egy házirend-függvényt (Lusha) használjon nagy valószínűségek megadásához, amelyek segítenek szűkíteni a végrehajtott lépéseket. Ezeket „Monte Carlo bevezetéseknek” hívják.Ezután miközben visszalép a jövőről a jelenre, felveheti az összes különböző lépés átlagos értékét, és kiválaszthatja a legmegfelelőbb műveletet. Eddig ez csak gyenge amatőr szinten működött a Go-ban, mert a politikai funkciók és az értékfunkciók, amelyekkel ezeket a bevezetéseket irányították, nem voltak olyan nagyok.

Phew.

Az első sor magától értetődő. Az MCTS-ben szakképzetlen Fomával és képzetlen Lushával indulhat. Minél többet játszol, annál jobban meg tudják jósolni a szilárd eredményeket és mozdulatokat. „A keresés szűkítése nagy valószínűségű műveletekre” csak egy kifinomult módja annak, hogy azt mondjuk: „Lusha segít szűkíteni a mozgáshoz szükséges lépéseket, olyan valószínűségeket rendelve hozzájuk, hogy egy szakértő játszaná őket”. Korábbi munkájuk során ezt a technikát alkalmazták erős amatőr szintű AI játékosok elérésére, még egyszerű (vagy „sekély”, ahogy ők hívják) politikai funkciókkal is.

Igen, a konvolúciós neurális hálózatok nagyszerűek a képfeldolgozáshoz. És mivel egy neurális hálózat vesz egy adott bemenetet és kimenetet ad, ez lényegében függvény, ugye? Tehát egy neurális hálózattal komplex funkcióvá válhat. Tehát egyszerűen átadhatja a tábla helyzetének képét, és hagyhatja, hogy az ideghálózat magától kitalálja, mi történik. Ez azt jelenti, hogy lehetséges neurális hálózatokat létrehozni, amelyek NAGYON pontos házirend- és értékfüggvényként viselkednek. A többi eléggé magától értetődő.

Itt megvitatjuk, hogyan képezték ki Foma és Lusha. A szakpolitikai hálózat kiképzéséhez (előrejelzés egy adott pozícióra, amelyet a szakértők választanának), egyszerűen példákat használ az emberi játékokra, és felhasználja őket adatokként a jó, felügyelt tanuláshoz.

És ki akarja képezni ennek a házirend-hálózatnak egy másik, kissé eltérő változatát, amelyet használni kíván a bevezetéshez; ez kisebb és gyorsabb lesz. Mondjuk, hogy mivel Lusha annyira tapasztalt, ezért időbe telik az egyes pozíciók feldolgozása. Jó, ha a szűkítési folyamatot elkezdi, de ha megpróbálja megismételni a folyamatot, akkor is egy kicsit túl sok időt vesz igénybe. Tehát egy * gyorsabb szakpolitikai hálózatot * képez ki a bevezetési folyamathoz (nevezem ... Lusha öccse, Jerry? Tudom, tudom, elég ezekkel a nevekkel). Ezt követően, miután elegendően kiképezte mindkét lassú és gyors politikai hálózatot az emberi játékosok adatainak felhasználásával, megpróbálhatja Lusha-t néhány napig saját maga ellen játszani a Go táblán, és további gyakorlatot szerezhet. Ez a megerősítő tanulás része - a szakpolitikai hálózat jobb változatának elkészítése.

Ezután képzi a Foma-t az előrejelzéshez: meghatározza a győzelem valószínűségét. Hagyod, hogy az AI gyakorolja önmagát egy szimulált környezetben, újra és újra játsszon, minden alkalommal megfigyelje a végeredményt, és tanuljon hibáiból, hogy egyre jobbá váljon.

Nem részletezem, hogy miként képzik ki ezeket a hálózatokat. További technikai részleteket a cikk későbbi szakaszában („Módszerek”) olvashat, amelyeket itt nem ismertettem. Valójában e cikk valódi célja nem annak bemutatása, hogy miként használták a megerősítő tanulást ezeken az ideghálózatokon. A DeepMind egyik korábbi tanulmánya, amelyben az AI-t ATARI-játékokra tanították, már alaposan megvitatott néhány megerősítő tanulási technikát (és itt már írtam magyarázatot erre a cikkre). Ehhez a cikkhez, amint azt az összefoglalóban könnyedén megemlítettem, és a fenti képernyőképen is aláhúzom, a legnagyobb újítás az volt , hogy az RL-t neurális hálózatokkal használtáka már népszerű játék-algoritmus, az MCTS fejlesztésére. Az RL egy hűvös eszköz egy eszköztárban, amelyet a rendszeres felügyelt tréning után finomítottak a házirend és értékfüggvény neurális hálózataihoz. Ez a kutatási cikk arról szól, hogy bebizonyítsuk, mennyire sokoldalú és kiváló ez az eszköz, és nem arról, hogy megtanítsuk, hogyan kell használni. A televíziós szóhasználatban az Atari papír RL infomercial volt, és ez az AlphaGo papír reklám.

Rendben, végre elkészültünk a „bevezetés” részekkel. Mostanra már nagyon jól érzi, hogy miről szól az AlphaGo.

Ezután kissé mélyebben elmélyülünk a fent tárgyalt dolgokban. Talán láthat néhány csúnya és veszélyes kinézetű matematikai egyenletet és kifejezést, de ezek egyszerűek (mindet elmagyarázom). Pihenjen.

Egy gyors megjegyzés, mielőtt továbblépne. Szeretne segíteni abban, hogy több ilyen esszét írjak, amelyek magyarázzák a klassz kutatási cikkeket? Ha komolyan gondolod, szívesen dolgoznék veled. Kérjük, hagyjon megjegyzést, és kapcsolatba lépek Önnel.

Tehát az első lépés az NN (Lusha) szakpolitikánk képzése, hogy megjósoljuk, melyik lépéseket valószínűsíti egy szakértő. Ennek az NN-nek az a célja, hogy lehetővé tegye az AI számára, hogy hasonlóan játsszon, mint egy szakértő ember. Ez egy konvolúciós neuronhálózat (amint azt már korábban említettem, ez egy speciális NN, amely nagyon hasznos a képfeldolgozásban), amely egyszerűsített képet készít a táblarendszerről. Az „egyenirányító nemlinearitások” olyan rétegek, amelyek hozzáadhatók a hálózat architektúrájához. Képességet adnak arra, hogy összetettebb dolgokat tanuljon meg. Ha korábban valaha is képzett NN-eket, akkor használhatja a „ReLU” réteget. Ezek ezek.

Az edzésadatok itt véletlenszerű deszkahely-párok voltak, és a címkék azok az intézkedések voltak, amelyeket az emberek választottak, amikor ezekben a pozíciókban voltak. Csak rendszeres felügyelt tanulás.

Itt „sztochasztikus gradiens ASCENT” -t használnak. Nos, ez a backpropagation algoritmusa. Itt próbálja maximalizálni a jutalom funkciót. A jutalomfüggvény pedig csak az emberi szakértő által megjósolt cselekvés valószínűsége; növelni szeretné ezt a valószínűséget. De hát - igazából nem kell túl sokat gondolkodni ezen. Normál esetben úgy képzi a hálózatot, hogy az minimalizálja a veszteségfüggvényt, ami lényegében az előrejelzett eredmény és a tényleges címke közötti hiba / különbség. Ezt gradiens DESCENT-nek nevezzük. A kutatás tényleges megvalósításakor valóban a rendszeres gradiens süllyedést alkalmazták . Könnyedén találhat olyan veszteségfüggvényt, amely a jutalomfüggvénnyel ellentétesen viselkedik, így a veszteség minimalizálása maximalizálja a jutalmat.

A házirend-hálózat 13 rétegből áll, és „SL-irányelv” hálózatnak hívják (SL = felügyelt tanulás). Az adatok egy… Mondom, hogy ez egy népszerű webhely, amelyen emberek milliói játszanak a Go-val. Mennyire teljesített ez az SL irányelv-hálózat?

Pontosabb volt, mint amit korábban más kutatók tettek. A bekezdés további része magától értetődő. Ami a „bevezetési házirendet” illeti, néhány bekezdéssel ezelőtt emlékszik, hogy a Lusha az SL házirend-hálózat lassú, így nem tud jól integrálódni az MCTS algoritmushoz? És kiképeztük a Lusha másik gyorsabb változatát, Jerry-t, aki az öccse volt? Nos, ez itt Jerryre vonatkozik. Amint láthatja, Jerry éppen fele pontosabb, mint Lusha, DE ezerszer gyorsabb! Ez valóban segít abban, hogy gyorsabban átvészeljük a jövő szimulációit, amikor alkalmazzuk az MCTS-t.

Ehhez a következő szakaszhoz nem kell * tudnia * a megerősítő tanulásról, de akkor feltételeznie kell, hogy bármi, amit mondok, működik. Ha valóban bele akarsz merülni a részletekbe és mindenről meggyőződni, akkor érdemes először elolvasnod egy kicsit az RL-ről.

Miután megkapta az SL hálózatot, felügyelt módon kiképezve az emberi játékos mozog az emberi mozgási adatokkal, amint azt már korábban mondtam, meg kell engednie, hogy ő maga gyakoroljon és jobbá váljon. Ezt csináljuk itt. Tehát csak meg kell vennie az SL házirend-hálózatot, fájlba mentenie, és egy újabb másolatot készítenie.

Ezután a megerősítő tanulást használja a finomhangoláshoz. Itt arra készteti a hálózatot, hogy önmagával szemben játsszon, és tanuljon az eredményekből.

De van egy probléma ebben a képzési stílusban.

Ha csak örökké gyakorolsz EGY ellenfél ellen, és ez az ellenfél is csak veled gyakorol, akkor nem sok új tanulást tehetsz. Csak arra fogsz edzeni, hogy gyakorold, hogyan legyőzheted AZ EGY játékost. Azt hiszed, túlfeszített: technikáid jól játszanak egy ellenféllel szemben, de nem általánosítanak más ellenfelekkel szemben. Szóval hogyan lehet ezt kijavítani?

Nos, minden alkalommal, amikor finomhangol egy neurális hálózatot, egy kicsit másfajta lejátszóvá válik. Tehát a neurális hálózat ezen verzióját elmentheti a „játékosok” listájába, akik valamennyien másképp viselkednek, igaz? Nagyszerű - most az ideghálózat edzése közben véletlenszerűen rá lehet játszani az ellenfél számos különböző régebbi és újabb verziójával szemben, amelyeket ebből a listából választottak ki. Ugyanazon játékos verziói, de valamennyien másképp játszanak. És minél többet edz, annál TÖBB játékossal fog még többet edzeni! Bingó!

Ebben a képzésben az egyetlen dolog, ami a képzési folyamatot irányítja, a végső cél, vagyis a győzelem vagy a veszteség. Nem kell speciálisan kiképezni a hálózatot olyan dolgok elvégzésére, mint például a terület nagyobb részének elfoglalása a táblán, stb. Csak meg kell adnia neki az összes lehetséges jogi lépést, amelyek közül választhat, és azt mondja: „nyerned kell”. És ezért olyan sokoldalú az RL; felhasználható politikák vagy értékhálózatok képzésére bármilyen játékhoz, nem csak a Go-hoz.

Itt tesztelték, hogy mennyire pontos ez az RL házirend-hálózat, önmagában, mindenféle MCTS algoritmus nélkül. Mint emlékezne rá, ez a hálózat közvetlenül elfoglalhat egy tábla pozíciót, és eldöntheti, hogy egy szakértő hogyan játssza el - így önállóan is játszhat vele.

Nos, az eredmény az volt, hogy az RL finomhangolt hálózata nyert az SL hálózattal szemben, amelyet csak emberi mozdulatokra oktattak. Győzött más erős Go játékprogramokkal szemben is.

Itt kell megjegyeznem, hogy még az RL házirend-hálózat képzése előtt az SL szakpolitikai hálózat már jobb volt, mint a technika állása - és most tovább javult ! És még a folyamat többi részéhez sem jutottunk el, például az értékhálózathoz.

Tudta, hogy a pingvinbabák hangosabban tüsszenthetnek, mint a kutya ugathatnak? Valójában ez nem igaz, de arra gondoltam, hogy szeretne itt egy kis poént, hogy elterelje a figyelmét a fenti félelmetes megjelenésű egyenletekről. Ismét visszatérve az esszére: itt végeztünk Lusha képzésével. Most térjünk vissza a Foma-hoz - ne feledjük az „optimális értékfüggvényt”: v * (s) ->, amely csak azt mondja meg, mennyire valószínű, hogy nyerünk a jelenlegi táblapozíciónkban, ha ettől a ponttól kezdve mindkét játékos tökéletesen játszik?

Tehát nyilvánvalóan ahhoz, hogy egy NN-t betanítsunk értékfüggvényünkké, tökéletes játékosra lenne szükségünk ... amire nincs. Tehát csak mi látjuk a legerősebb plafonunkat, ami történetesen az RL szakpolitikai hálózatunk.

Ehhez az aktuális állami testület állapotaira van szükség, és annak valószínűségét adja ki, hogy megnyeri a játékot. Játszik egy játékot, és megismeri az eredményt (győzelem vagy veszteség). Mindegyik játékállapot adatmintaként működik, és a játék eredménye címkeként működik. Tehát egy 50 lépéses játékkal 50 adatminta áll rendelkezésre az érték előrejelzéséhez.

Lol nem. Ez a megközelítés naiv. Nem használhatja fel a játék mind az 50 mozdulatát, és hozzáadhatja őket az adatkészlethez.

Az edzés adatkészletét gondosan kellett megválasztani, hogy elkerüljük a túlillesztést. A játék minden mozdulata nagyon hasonlít a következőre, mert csak egyszer mozogsz, és ez új pozíciót ad neked, igaz? Ha ezekből a mozdulatokból mind az 50 állapotot felveszi, és ugyanazzal a címkével adja hozzá az edzésadatokhoz, akkor alapvetően rengeteg „kinda duplicate” adata van, és ez túlillesztést okoz. Ennek megakadályozása érdekében csak nagyon eltérő megjelenésű játékállapotokat választ. Tehát például a játék mind a 50 mozdulata helyett csak 5-öt választ ki közülük, és hozzáadja az edzéskészlethez. A DeepMind 30 millió pozíciót foglalt el 30 millió különféle játékból, ezzel csökkentve annak esélyét, hogy ismétlődő adatok legyenek. És sikerült!

Most itt valami konceptuális : kétféleképpen értékelhetjük a tábla pozíciójának értékét. Az egyik lehetőség egy mágikus optimális értékfüggvény (például a fent képzetthez). A másik lehetőség az, hogy egyszerűen a jövőben terjeszkedjen a jelenlegi politikája (Lusha) használatával, és nézze meg a bevezetés végső eredményét. Nyilvánvaló, hogy az igazi játék ritkán menne a tervei szerint. De a DeepMind összehasonlította mindkét lehetőség lehetőségét. Mindkét lehetőség keverékét is megteheti. Ezt a „keverési paramétert” egy kicsit később megtudjuk, ezért jegyezd meg ezt a koncepciót!

Nos, egyetlen neurális hálózata, amely megpróbálja közelíteni az optimális értékfüggvényt, még JOBB is, mint ezer mentális szimuláció elvégzése a bevezetési irányelvek segítségével! Foma itt nagyon rúgott. Amikor felváltotta a gyors közzététel politika a kétszer-as-pontos (de lassú) RL politika Lusha, és nem több ezer szimulációt , hogy ez nem jobb, mint a Foma. De csak valamivel jobb, és túl lassan. Tehát Foma nyertese ennek a versenynek, bebizonyította, hogy őt nem lehet pótolni.

Most, hogy kiképeztük a politikai és értékfunkciókat, kombinálhatjuk őket az MCTS-szel , és megszülhetjük egykori világbajnokunkat, a nagymesterek rombolóját, egy generáció áttörését, amely kétszázhatvannyolc fontot nyom , egyetlen és egyetlen Alphaaaaa GO !

Ebben a részben ideális esetben egy kicsit mélyebben meg kell ismernie az MCTS algoritmus belső működését, de az eddig tanultaknak elegendőnek kell lenniük ahhoz, hogy jól érezzék az itt zajló eseményeket. Az egyetlen dolog, amit meg kell jegyeznie, hogy hogyan használjuk a házirend valószínűségeit és az értékbecsléseket. Kombináljuk őket a kigördülés során, hogy szűkítsük az egyes lépések során kiosztani kívánt mozgások számát. Q (s, a) az értékfüggvényt képviseli, és u (s, a) az adott pozíció tárolt valószínűsége. Elmagyarázom.

Ne feledje, hogy a házirend-hálózat felügyelt tanulást használ a szakértői lépések előrejelzéséhez? És ez nemcsak a legvalószínűbb mozgást, hanem inkább a valószínűségeket is megadjaminden lehetséges lépésről, amely megmondja, mennyire valószínű, hogy szakértői lépés. Ez a valószínűség tárolható minden egyes művelethez. Itt „előzetes valószínűségnek” hívják, és nyilvánvalóan használják, miközben kiválasztják, hogy mely műveleteket vizsgálják. Tehát alapvetően két dolgot mérlegel annak eldöntése érdekében, hogy felfedezzen-e egy adott lépést, vagy sem: Először is, mennyire valószínű, hogy megnyeri ezt a lépést? Igen, már megvan az „értékhálózatunk”, hogy megválaszoljuk ezt az első kérdést. A második kérdés pedig az, hogy mennyire valószínű, hogy egy szakértő ezt a lépést választaná? (Ha nem valószínű, hogy egy lépést szakértő választana, akkor miért is pazarolja az időt annak mérlegelésére. Ezt a szakpolitikai hálózattól kapjuk)

Ezután beszéljünk a „keverési paraméterről” (lásd: jött vissza rá!). Amint azt korábban említettük, a pozíciók értékeléséhez két lehetőség van: az egyik, egyszerűen használja az értékhálózatot, amelyet végig az állapotok értékeléséhez használt. Másodszor: megpróbálhat gyorsan játszani egy kiépítési játékot a jelenlegi stratégiájával (feltételezve, hogy a másik játékos is hasonlóan fog játszani), és megnézheti, nyer vagy veszít. Láttuk, hogy az érték függvény jobb-e, mint általában a bevezetések. Itt mindkettőt egyesítik. Megpróbál minden egyes jóslatnak 50–50 fontosságot, vagy 40–60, vagy 0–100, stb. Ha az X-hez% -ot csatol, akkor a másodikhoz 100-X-et kell csatolnia. Ezt jelenti ez a keverési paraméter. Ezeket a találati és próbaeredményeket később a cikkben láthatja.

Minden egyes bevezetés után frissíti a keresési fát a szimuláció során megszerzett információkkal, hogy a következő szimulációja intelligensebb legyen. És az összes szimuláció végén csak a legjobb lépést választja.

Érdekes betekintés itt!

Emlékszel, hogy az RL finomhangolt NN politikája jobb volt, mint az SL által képzett NN politika? De amikor az AlphaGo MCTS algoritmusába helyezzük őket, az ember által képzett NN használata jobb választásnak bizonyult, mint a finomhangolt NN. De az értékfüggvény esetében (amire emlékezne, hogy egy erős játékost használ a tökéletes játékos megközelítéséhez), a Foma képzése az RL politika használatával jobban működik, mint az SL házirend gyakorlása.

„Ennyi értékelés elvégzése sok számítási teljesítményt igényel. Valóban elő kellett vennünk a nagy fegyvereket, hogy futtathassuk ezeket az átkozott programokat.

Magától értetődő.

"LOL, programunk szó szerint lefújta a nadrágot minden más programról, ami elénk került"

Ez ismét arra a „keverési paraméterre” vezet vissza. A pozíciók kiértékelése közben az értékfüggvénynek és a bevezetéseknek egyaránt fontosságot tulajdonítva jobban teljesített, mint csak az egyiket használni. A többi magától értetődő, és érdekes betekintést tár fel!

Magától értetődő.

Magától értetődő. De olvassa el újra azt a piros aláhúzott mondatot. Remélem, most már tisztán láthatja, hogy ez a vonal itt nagyjából összefoglalja, hogy miről szólt ez az egész kutatási projekt.

Záró bekezdés. "Dicsekedjünk még egy kicsit itt, mert megérdemeljük!" :)

Ja és ha tudós vagy technológiai vállalat vagy, és segítségre van szükséged a tudomány elmagyarázatában nem technikai embereknek marketing, PR vagy képzések stb. Céljából, akkor segíthetek. Dobj nekem egy üzenetet a Twitteren: @mngrwl