270 likes | 383 Views
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.
E N D
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 • 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 01201203039129128 128120303 wist W wist N wist E wist S BEZ ATU • 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 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%] 1 ... 13 ... ... ... ... 7 x 4 ... ... ... ... 26 x 4 W(13 par neuronów) N E S
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] 1 ... 13 ... ... ... ... 7 x 4 ... ... ... ... 13 x 4 ... ... ... ... 26 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] 1 ... 7 ... ... 7 x 2 ... ... ... ... 7 x 4 ... ... ... ... 13 x 4 ... ... ... ... 26 x 4
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] 1 ... 13 ... 26 ... ... ... ... 13 x 4 ... ... ... ... 13 x 4 ... ... ... ... 26 x 4
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] 1 ... 5 ... ... ... ... 7 x 4 ... ... ... ... 13 x 4 ... ... ... ... 26 x 4
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
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
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ą
Eksperyment na danych:Przedział wartości danych • Sieć (26x4)-(13x4)-(7x4)-13-120 tys. iteracji
Eksperyment na danych:Zamiana rąk w parach • Sieć (26x4)-(13x4)-(7x4)-13-120 tys. iteracji • Podwojenie liczby rozdań - zduplikowanie rozdań przez zamianę rąk w parach
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
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: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