+ All Categories
Home > Documents > Střední hra v go na 9x9

Střední hra v go na 9x9

Date post: 30-Dec-2015
Category:
Upload: solomon-guerrero
View: 42 times
Download: 0 times
Share this document with a friend
Description:
Střední hra v go na 9x9. Zápočtový projekt z Neuronových sítí Tomáš Kozelek & Dominik Fran ěk. 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 - PowerPoint PPT Presentation
18
Střední hra v go na 9x9 Zápočtový projekt z Neuronových sítí Tomáš Kozelek & Dominik Franěk
Transcript
Page 1: Střední hra v go na 9x9

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

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

Pravidla go Jednoduchá pravidla Efektivita vs. riziko

Page 4: Střední hra v go na 9x9

Ukázka partie

Rozehraná hra Konec

Page 5: Střední hra v go na 9x9

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

Vliv v programu TurboGo

Page 7: Střední hra v go na 9x9

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

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

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

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

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

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

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

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

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

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

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

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


Recommended