Střední hra v go na 9x9
-
Upload
solomon-guerrero -
Category
Documents
-
view
48 -
download
0
description
Transcript of Střední hra v go na 9x9
![Page 1: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/1.jpg)
Střední hra v go na 9x9
Zápočtový projekt z
Neuronových sítí
Tomáš Kozelek & Dominik Franěk
![Page 2: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/2.jpg)
Co je go?
Nejstarší a nejsložitější desková hra Pochází z Číny, cca 4000 let stará Hraje se na desce 19x19, tj. 361 polí Stupeň komplexnosti 36 ( šachy 20 ) Populárnější než šachy
Zatím naprosto mimo možnosti počítačů Obrovský stavový prostor – nejde propočítat Vyžaduje velkou kreativitu – v tom se AI člověku
zdaleka nevyrovná Nejlepší program cca stupeň 12 (8. kyu)
![Page 3: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/3.jpg)
Pravidla go Jednoduchá pravidla Efektivita vs. riziko
![Page 4: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/4.jpg)
Ukázka partie
Rozehraná hra Konec
![Page 5: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/5.jpg)
Jak může hrát počítač go? Hru je nutné rozložit na části a každou
řešit jiným přístupem Konvenčně
Joseki (zahajovací sekvence v rozích) Databáze tvarů Život skupin
AI Rozeznání tvarů Propojení skupin Určení vlivu a směru hry Rozeznání kritických oblastí
![Page 6: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/6.jpg)
Vliv v programu TurboGo
![Page 7: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/7.jpg)
Co jsme zavrhli
Síť se bude učit jen pozice->tah Ukáže x nejlepších tahů
Složitá chybová funkce
Ohodnotí každé pole „zajímavostí“ pro tah Šlo by to taky
S předzpracováním vstupu Bude umět odůvodnit své tahy
Vyžaduje ruční zpracování
![Page 8: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/8.jpg)
Co jsme zvolili a proč
Učení sítě na některou z podůloh by vyžadovalo velmi složité předzpracování dat
Vyzkoušeli jsme nejjednodušší přístup - pozice -> tah v rozmezí 8.-12. tahu (pozice je dostatečně jednoduchá)
![Page 9: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/9.jpg)
První úvahy
Výhody NN je ideální na rozeznávání tvarů Měla by být schopná hrát zajímavé tahy i
bez znalosti pravidel
Nevýhody Síť netuší co je živá skupina V partii je víc dobrých tahů, uvidí jen jeden
![Page 10: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/10.jpg)
Co jsme očekávali
Pozitivní Dobré navrhované tahy Poměrně snadné hodnocení
Obavy Bude hrát pořád do středu – průměr tahů
Stalo se při malém počtu skrytých neuronů (30-30)
Příliš velká síť – 9x9 vstupů + skryté n. Síť navrhne dobrý tah, ale jiný než byl v partii, což
se pozná jen ručně
![Page 11: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/11.jpg)
Vstupní partie
partie ve formátu SGF ( zápis partie ) přibližně 1600 partií pokročilých hráčů ( věnují se
hře několik let ) ze serveru Little Golem problém s ,,ortogonalitou“ partií - ve velmi
podobných ( příp. stejných pozicích ) hráli různí hráči ( strategicky ) různé tahy
příklad partie ve formátu sgf: (;FF[4]PB[tasuki]PW[Xaver]KM[5.5]SZ[9]B[ee];W[ff
];B[ef];W[fe];B[fd];W[gd];B[gc];W[ed];B[fc];W[dd];B[fg];W[gg];B[eg])
![Page 12: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/12.jpg)
Preprocesing
Bash script/awk simulace jednotlivých tahů dle pravidel Go zmenšení pozice z 9x9 na 7x7 odstraněním 1. linky
( v zahájení a střední hře nepodstatná ) transformace pozice do řetězce 0, 1, -1 odstranění redundantních a neplatných pozic výstup: matice pozic a odp. matice správných tahů
výsledek preprocesingu pro 1 partii: 3 7;0 0 0 0 0 0 0 0 1 0 0 0 0 -1 1 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 -1 -1 0 0 0 1 -1 0 0 1 0 0 -1 0 0 0 0 0
![Page 13: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/13.jpg)
Algoritmus
Rozdělení vstupů asi 7000 pozic rozděleno na učící (7/10) a testovací
množinu Učení na různých architekturách vrstevnatých sítí
varianty algoritmu Back Propagation výstup sítě je souřadnice doporučeného tahu
Testování definované ohodnocení výstupu sítě ( ,,pošťácká metrika“ )
umožňuje statistické určení úspěšnost rychlé ohodnocení, ale vůči ,,lidskému posouzení“ nepřesné
( dobré tahy v jiné části desky nežli tah v partii jsou ohodnoceny špatně )
![Page 14: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/14.jpg)
Ohodnocení doporučeného tahu
neplatné tahy mimo desku, na obsazenou pozici ~ 0 b.
ohodnocení platných tahů pošťáckou metrikou správný tah ~ 5 b., vzdálenost 1 ~ 4 b., …
vzdálenost >= 5 ~ 0 b.
úspěšnost sítě získaných bodů / možných bodů ( vyjádřeno v procentech )
![Page 15: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/15.jpg)
Architektury použité VNS
Vyzkoušeno 6 různých architektur algoritmy učení: trainlm (mnoho paměti), trainrp
(rychlý ale potřebuje stovky epoch) dvou až čtyř vrstevné sítě různé parametry učení, různé cíle příklady:
[50,40,2], {tansig, tansig, purelin}, trainlm, l=0.05, g=0.07 [30,30,15,2], {tansig, tansig, tansig, purelin}, trainrp,
l=0.03, g=0.05
![Page 16: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/16.jpg)
Statistické výsledky I
Úspěšnost velmi podobné výsledky všech architektur díky použití učícího algoritmu trainrp ( pomalejší
konvergence, ale menší paměťové nároky než trainlm ) dosažení horších hodnot MSE (okolo 0.5) než byly požadované hodnoty (okolo 0.01 – 0.05)
95% úspěšnost na známých datech při učení na menší množině ( okolo 2000 pozic )
55% úspěšnost na známých datech při učení na velké množině ( 4500 pozic ) ( neortogonalita )
30% úspěšnost dle definovaného ohodnocení na testovacích (neznámých) datech při 4500 pozic na učení a 1800 na testování
![Page 17: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/17.jpg)
Statistické výsledky II
Výsledky na arch. [30,30,15,2] trainrp 4500 učících pozic, 1888 neznámých test. pozic >>distance 0 --> 73 results >>distance 1 --> 146 results >>distance 2 --> 218 results >>distance 3 --> 283 results >>distance 4 --> 207 results >>distance >=5 --> 961 results >>>Out of bounds 131 >>>Stone already there 577 >>>Efficiency: 30%:
![Page 18: Střední hra v go na 9x9](https://reader035.fdocuments.net/reader035/viewer/2022062221/56812aef550346895d8ed5c2/html5/thumbnails/18.jpg)
Myšlenky do budoucna
Zamezit nekorektním tahům znatelné procento neúspěchu tvoří kameny hrané
na obsazené pozice/na pozice mimo desku vylepšit operátor porovnání s požadovaným
výstupem při učení aby zohledňoval nekorektní tahy Lépe připravit vstupní množinu
pokusit se vynutit ortogonalitu vstupních pozic případně ručně předzpracovat partie ( označit
živé/mrtvé skupinky, oblasti vlivu, více možných tahů – náročné, ale síť má více informací o pozici => může lépe simulovat tahy