Zastosowanie sieci neuronowych do oceny liczby lew w rozdaniach brydżowych

Post on 30-Dec-2015

45 views 1 download

description

Zastosowanie sieci neuronowych do oceny liczby lew w rozdaniach brydżowych. Studium przypadku. mgr inż. Krzysztof Mossakowski Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej. Warszawa, 3 grudnia 2003. Zagadnienie. - PowerPoint PPT Presentation

Transcript of Zastosowanie sieci neuronowych do oceny liczby lew w rozdaniach brydżowych

Zastosowanie sieci neuronowych do oceny liczby lew w rozdaniach brydżowych

Studium przypadku

mgr inż. Krzysztof MossakowskiWydział Matematyki i Nauk Informacyjnych

Politechniki WarszawskiejWarszawa, 3 grudnia 2003

Zagadnienie Dane są rozdania brydżowe z

obliczoną liczbą lew wziętych przez parę NS (przy założeniu optymalnej gry obu stron)

Stworzyć sieć neuronową, która na podstawie podanych wszystkich rąk poda spodziewaną liczbę lew dla pary NS

Pochodzenie danych GIB (Ginsberg Intelligent

Bridgeplayer) - najsilniejszy program brydżowy [http://www.gibware.com]

GIB Library - zbiór rozdań brydżowych z obliczoną liczbą lew wziętych przez parę NS przy optymalnej grze obu stron [http://www.cirl.uoregon.edu/ginsberg/gibresearch.html]

Dane 717102 rozdania Pojedyncze rozdanie:

karty wszystkich rąkW: AT85432.4.J32.K9 N: Q6.AJ2.Q98764.JT E: KJ.953.T5.AQ8643 S: 97.KQT876.AK.752

liczba lew pary NS dla wszystkich możliwości koloru atutowego i osoby wistującego

01201203039129128128120303

wist Wwist Nwist Ewist S

BEZ

ATU

PIKI

KIERY

KARA

TREFLE

Oczekiwane rezultaty W ilu procentach przypadków

pomyłka nie będzie większa niż 2 lewy?

W ilu procentach przypadków pomyłka nie będzie większa niż 1 lewa?

W ilu procentach przypadków nie będzie pomyłki?

?

Wykorzystane narzędzie JNNS 1.1 - Java Neural Network

Simulator następca SNNS - Stuttgart Neural

Network Simulator

Testowane sieci neuronowe Jednokierunkowe wielowarstwowe Losowa inicjalizacja wag z przedziału

[-1.0, 1.0] Neurony

funkcja aktywacji: sigmoidalna unipolarna (logistyczna)

funkcja wyjściowa: identyczność

Algorytm uczący RProp (Resilient Propagation)

przy zmianie wag uwzględniany jest tylko znak składowej gradientu

współczynnik gradientu jest dobierany w każdym cyklu dla każdej wagi na podstawie zmian wartości gradientu

zgodny znak zmiany gradientu w dwóch kolejnych krokach zwiększa wsp. uczenia, przeciwny - zmniejsza

parametry0 = 0.1 max = 50.0 = 4.0

Reprezentacja danych Liniowe przekształcenie danych do

przedziału [min, max] dla danych: wartość karty [dwójka, as] kolor: [bez atu, trefle] wistujący: [nie, tak] liczba lew: [0, 13]

Testowane przedziały: min: 0 0.1 0.2 max: 1 0.9 0.8

Najczęściej stosowane zbiory danych Uczący - 10 tys. rozdań

numery od 1 do 10000 Walidacyjny - 1 tys. rozdań

numery od 500001 do 501000 charakter wyłącznie informacyjny

Testowy - 1 tys. rozdań numery od 600001 do 601000

Pierwsza sieć neuronowa (26x4)-(7x4)-13-1

Wyniki (37 tys. iteracji): uczący: [92%, 71%, 28%]

walidacyjny: [86%, 59%, 22%]testowy: [87%, 63%, 23%]

...

W(13 par neuronów)

...26 x 4

7 x 4

... ... ...

N E S

... ... ......13

1

Pomysł:Zgrupować karty (26x4)-(13x4)-(7x4)-13-1

Wyniki (20 tys. iteracji): uczący: [95%, 78%, 32%] [+3,+7,+4]

walidacyjny: [93%, 73%, 29%] [+7,+14,+7]testowy: [93%, 76%, 33%][+6,+13,+10]

...

...

26 x 4

7 x 4

... ... ...

... ... ......13

1

13 x 4 ... ... ... ...

Pomysł:Połączyć ręce parami (26x4)-(13x4)-(7x4)-(7x2)-7-1

Wyniki (20 tys. iteracji): uczący: [92%, 71%, 28%] [-3,-7,-4]

walidacyjny: [88%, 64%, 24%] [-5,-9,-5]testowy: [89%, 68%, 27%] [-4,-8,-6]

...26 x 4

7 x 4

... ... ...

...7

1

13 x 4 ... ... ... ...

... ... ......

... ...7 x 2

Pomysł:Powiększyć sieć (26x4)-(13x4)-(13x4)-26-13-1

Wyniki (20 tys. iteracji): uczący: [95%, 77%, 31%] [0,-1,-1]

walidacyjny: [89%, 67%, 26%] [-4,-6,-3]testowy: [90%, 70%, 29%] [-3,-6,-4]

...26 x 4

13 x 4

... ... ...

...13

1

13 x 4 ... ... ... ...

... ... ......

...26

Pomysł:Zmniejszyć sieć (26x4)-(13x4)-(3x4)-5-1

Wyniki (20 tys. iteracji): uczący: [94%, 75%, 29%] [-1,-3,-3]

walidacyjny: [92%, 71%, 28%] [-1,-2,-1]testowy: [91%, 73%, 28%] [-2,-3,-5]

...

...

26 x 4

7 x 4

... ... ...

... ... ......5

1

13 x 4 ... ... ... ...

Zestawienie wyników

Sieć Uczący Walidacyjny Testowy

(26x4)-(7x4)-13-1[37 tys. iteracji]

92%71%28%

86%59%22%

87%63%23%

(26x4)-(13x4)-(7x4)-13-1[20 tys. iteracji]

95%78%32%

93%73%29%

93%76%33%

(26x4)-(13x4)-(7x4)-(7x2)-7-1[20 tys. iteracji]

92%71%28%

88%64%24%

89%68%27%

(26x4)-(13x4)-(13x4)-26-13-1[20 tys. iteracji]

95%77%31%

89%67%26%

90%70%29%

(26x4)-(13x4)-(3x4)-5-1[20 tys. iteracji]

94%75%29%

92%71%28%

91%73%28%

Eksperyment:Mała sieć, dużo iteracji (26x4)-(13x4)-(3x4)-5-1

Dla 150 tys. i 175 tys. iteracji nie ma różnic w wartościach wyjściowych

Liczba iteracji Uczący Walidacyjny Testowy

1 tys. 87%, 63%, 24% 86%, 61%, 22% 86%, 61%, 23%

10 tys. 92%, 72%, 28% 90%, 69%, 26% 90%, 69%, 27%

20 tys. 94%, 75%, 29% 92%, 71%, 28% 91%, 73%, 28%

50 tys. 93%, 75%, 30% 92%, 73%, 29% 94%, 73%, 29%

100 tys. 94%, 76%, 30% 93%, 74%, 29% 93%, 73%, 30%

150 tys. 94%, 76%, 30% 93%, 74%, 29% 93%, 73%, 30%

175 tys. 94%, 76%, 30% 93%, 74%, 29% 93%, 73%, 30%

Eksperyment:Duża sieć, dużo iteracji (26x4)-(13x4)-(13x4)-26-13-1

Od ok. 55 tys. iteracji maleje błąd dla zbioru uczącego, a wzrasta dla zbioru walidacyjnego

Liczba iteracji Uczący Walidacyjny Testowy

1 tys. 87%, 64%, 23% 85%, 60%, 23% 85%, 61%, 21%

5 tys. 92%, 71%, 28% 89%, 66%, 26% 90%, 67%, 25%

20 tys. 95%, 77%, 31% 89%, 67%, 26% 90%, 70%, 29%

50 tys. 97%, 81%, 34% 90%, 68%, 29% 91%, 72%, 28%

80 tys. 97%, 82%, 35% 90%, 68%, 27% 91%, 70%, 29%

Eksperyment:Najlepsza sieć, dużo iteracji (26x4)-(13x4)-(7x4)-13-1

Wykresy błędów dla zbiorów uczącego i walidacyjnego wciąż miały tendencję malejącą

Liczba iteracji Uczący Walidacyjny Testowy

20 tys. 95%, 78%, 32% 93%, 73%, 29% 93%, 76%, 33%

50 tys. 95%, 79%, 32% 93%, 75%, 30% 93%, 74%, 30%

100 tys. 96%, 80%, 33% 94%, 75%, 30% 93%, 75%, 31%

115 tys. 96%, 80%, 34% 94%, 76%, 30% 93%, 76%, 30%

Eksperyment na danych:Przedział wartości danych Sieć (26x4)-(13x4)-(7x4)-13-1

20 tys. iteracji

Przedział Uczący Walidacyjny Testowy

<0, 1> 95%, 79%, 32% 91%, 71%, 28% 93%, 75%, 29%

<0.1, 0.9> 95%, 78%, 32% 93%, 73%, 29% 93%, 76%, 33%

<0.2, 0.8> 93%, 74%, 31% 91%, 71%, 28% 92%, 72%, 29%

Eksperyment na danych:Zamiana rąk w parach Sieć (26x4)-(13x4)-(7x4)-13-1

20 tys. iteracji Podwojenie liczby rozdań -

zduplikowanie rozdań przez zamianę rąk w parach

Rozdania Uczący Walidacyjny Testowy

Pojedyncze(10 tys.)

95%, 79%, 32% 91%, 71%, 28% 93%, 75%, 29%

Podwójne(20 tys.)

95%, 77%, 31% 93%, 73%, 28% 94%, 76%, 31%

Eksperyment na danych:Nie tylko bez atu Sieć (26x4)-(13x4)-(7x4)-13-1 Sieć (26x4;1)-(13x4)-(7x4)-13-1

dodatkowe wejście z wartością atu pięciokrotne zwiększenie liczby danych

20 tys. iteracji

Rozdania Uczący Walidacyjny Testowy

bez atu 95%, 79%, 32% 91%, 71%, 28% 93%, 75%, 29%

wszystkie (5) 97%, 82%, 35% 96%, 79%, 33% 96%, 81%, 35%

Analiza:Liczba punktów na rękach Sieć (26x4)-(13x4)-(7x4)-13-1

115 tys iteracji zbiór uczący: 96%, 80%, 34%

Szacunek:LiczbaLew = 13/40 * punktyNS zbiór uczący: 96%, 70%, 24%

Analiza:Punkty, układy, wisty

DIFF # %Med( StdDev( POINTS ))

Med( StdDev( COLORS ))

Med( StdDev( NT TRICKS ))

-4 23 0% 3,783968 1,801436 0,344414-3 150 2% 4,320747 1,597275 0,355326-2 834 8% 4,390149 1,428514 0,294703-1 2354 24% 4,483401 1,354568 0,3535300 3357 34% 4,537989 1,322999 0,5047591 2303 23% 4,445004 1,388238 0,7973442 754 8% 4,511918 1,490400 1,2468213 178 2% 4,388856 1,640246 2,0408664 40 0% 4,655450 1,766998 3,3102365 6 0% 3,660006 1,660928 2,6943016 1 0% 1,632993 1,959824 6,928203

TOTAL: 10000 Med: 4,183520 1,363043

Analiza:Najgorsze rozdanie Rozdanie (S-H-D-C):

W: AT85432 - 4 - J32 - K9 N: Q6 - AJ2 - Q98764 - JT E: KJ - 953 - T5 - AQ8643 S: 97 - KQT876 - AK - 752

Liczba lew NS przy grze w bez atu: wist N lub S: 12 wist E lub W: 0 odpowiedź sieci: 6

Problemy

Czas

zbiór uczący 40 tys. danych sieć (26,1x4)-(13x4)-(7x4)-13-1 1 tys. iteracji 1 godzina

PomysłyDyskusja

?