Upload
rashad-ballard
View
45
Download
1
Embed Size (px)
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
Citation preview
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
?