Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć
Transkrypt
Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć
Kraków, 29. grudnia 2007 Małgorzata Tomanek e-mail: [email protected] Inteligencja obliczeniowa Informatyka, WFAiIS UJ PIMA Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową Spis treści: 1. Wstęp .......................................................................................................................................................3 2. Opis danych eksperymentalnych .................................................................................................................3 ♦ Podział na zbiór uczący i testowy 3. Model sieci ................................................................................................................................................5 4. Strategie uczenia sieci.................................................................................................................................6 5. Wyniki symulacji ......................................................................................................................................7 6. Wnioski i podsumowanie.........................................................................................................................11 PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 3 2 1. Wstęp Korzystając z bazy danych cukrzycy u Indian ze szczepu Pima (Pima Indians Diabetes Databasei) analizowałam zdolności klasyfikacyjne zbudowanych przeze mnie sieci typu Multilayer Perceptron, które uŜywały do uczenia algorytmu wstecznej propagacji błędów (backpropagation). 2. Opis danych eksperymentalnych Dane eksperymentalne zawierają 768 rekordów, z których kaŜdy zawiera 8 róŜnych atrybutów charakteryzujących pacjentkę (być moŜe związanych z występowaniem cukrzycy) oraz grupę, do której została ona zaklasyfikowana przez algorytm ADAP: cukrzyk / nie cukrzyk. Fragment pliku z danymi: 0,137,40,35,168,43.1,2.288,33,1 5,116,74,0,0,25.6,0.201,30,0 3,78,50,32,88,31.0,0.248,26,1 10,115,0,0,0,35.3,0.134,29,0 Cyfra 1 jest interpretowana jako wynik pozytywny dla testu cukrzycy (cukrzyk). W zbiorze jest 268 rekordów zaklasyfikowanych jako dane osoby chorej na cukrzycę i 500 rekordów zaklasyfikowanych jako wyniki badań osób zdrowych. Wszystkie dane pochodzą od kobiet ze szczepu Pima, mających conajmniej 21 lat. Znaczenie kolejnych atrybutów jest następujące: 1. Liczba przebytych ciąŜ (Number of times pregnant) 2. Plasma glucose concentration a 2 hours in an oral glucose tolerance test 3. Ciśnienie rozkurczowe (Diastolic blood pressure) [w mm Hg] 4. Triceps skin fold thickness [w mm] 5. 2-Hour serum insulin [mu U/ml] 6. Body mass index [waga w kg/(wysokość w metrach)2 ] 7. Funkcja zaleŜna od występowania cukrzycy w rodzinie (Diabetes pedigree function) 8. Wiek (Age) [w latach] Wszystkie parametry mają wartości liczbowe. ♦ Podział na zbiór uczący i testowy Analizując dane moŜna dojść do wniosku, Ŝe w zestawie jest wiele brakujących danych, które zostały po prostu zastąpione zerami. O ile w przypadku liczby ciąŜ zero jest wartością, która mogła wystąpić, to w przypadku cisnienia rozkurczowego czy body mass index zero nie ma sensu, zakładając, Ŝe badanie zostało przeprowadzone na Ŝywej osobie. Pozbywanie się rekordów z brakującymi informacjami ze zbioru uczącego i testowego nie jest dobrym pomysłem, gdyŜ ich rozmiary zmniejszyły by się o połowę. PoniŜsza tabelka przedstawia analizę zbioru – zawiera jedynie parametry, które nie powinny przyjmować wartości zero. Plasma glucose concentration Ilość wartości równych 0 w całym zbiorze Ilość wartości równych 0 w rekordach „cukrzyków” Ilość wartości równych 0 w rekordach „nie cukrzyków” 5 2 3 PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 3 Ciśnienie rozkurczowe 35 16 19 Triceps skin fold thickness 227 88 139 2-Hour serum insulin 374 138 236 Body mass index 11 2 9 Diabetes pedigree func. 0 0 0 Wiek 0 0 0 Ogólnie 376 138 238 Fakt niekompletnych informacji moŜna uwzględnić przy podziale danych na podzbiór uczący i testowy tak, aby stosunek danych kompletnych do niekompletnych w obu zbiorach - uczącym i testowym – była taka sama. PoniewaŜ zwykle jeŜeli juŜ w rekordzie brakowało jakiejkolwiek informacji, to brakowało od razu kiku, rekordy nie były rozpatrywane pod względem zer w kaŜdym atrybucie z osobna, ale ogólnie, tj. rekord posiadający zero w chociaŜ jednym z powyŜszych 7. parametrów, był klasyfikowany jako posiadający niekompletne dane (w ten sposób o wiele łatwiej moŜna było rozdzielić równomiernie wiersze z brakującymi danymi między 2 zbiory). Oprócz tego, przygotowano jeszcze drugi rodzaj zbioru danych, który wzbogacono o 5 kolejnych danych wejściowych – po jednej dla atrybutów od 2 do 6 (Plasma glucose concentration ... Body mass index). Dana przyjmowała wartość 1, gdy atrybut był równy 0, w przeciwnym przypadku przyjmowała wartość 0. Podstawowy podział na zbiory polega na przeznaczeniu 2/3 danych do nauki, a reszty do testowania. W kaŜdym ze zbiorów proporcja rekordów z pozytywnym wynikiem testu na cukrzycę do tych z negatywnym powinna wynosić ok. 268/500, czyli ma być taka sama jak w zbiorze wyjściowym. Aby ją otrzymać zbiór najpierw posortowano, a następnie co trzeci rekord przeznaczono do zbioru testowego. Pierwszy atrybut, tj. liczba przebytych ciąŜ, przyjmuje niewiele róŜnych wartości, które mieszczą się w przedziale [0:14], takŜe tą informację moŜna zakodować w sposób binarny (zdyskretyzować ją). Przeprowadzano wstępne testy na tak zakodowanym zbiorze, ale jakość nauki nie zwiększyła się zbytnio, więc do szczegółowych testów wykorzystywano jedynie dwa podstawowe rodzaje zbiorów: 1. z 8-mioma wejściami 2. z 13-stoma wejściami (5 dodatkowych wejść jest opisanych powyŜej) Kolejnymi operacjami przeprowadzanymi na zbiorze danych była standaryzacja po wierszach lub kolumnach do przedziałów [0:1] i [-1:1]. Do przeskalowania wartości do przedziału [0:1] uŜywano wzoru: f ( x) = xi − xmin xmax − xmin a do skalowania do przedziału [-1:1] : f ( x) = 2 ⋅ xi − xmin −1, xmax − xmin PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 4 gdzie xmin i xmax to odpowiednio najmniejsze i największe wartości znalezione w wierszu/kolumnie, a xi – liczba do przeskalowania. Bez stand. Standaryzacja do [0:1] Standaryzacja do [-1:1] Po kolumnach Po wierszach Po kolumnach Po wierszach Min Max Min Max Min Max Min Max Min Max Liczba ciąŜ 0 17 0 1 0 0.17 -1 1 -1 -0.66 Plasma glucose concentration 0 199 0 1 0 1 -1 1 -1 1 Ciśnienie rozkurczowe 0 122 0 1 0 1 -1 1 -1 1 Triceps skin fold thickness 0 99 0 1 0 0.64 -1 1 -1 0.28 2-Hour serum insulin 0 846 0 1 0 1 -1 1 -1 1 Body mass index 0 67.10 0 1 0 0.6 -1 1 -1 0.19 Diabetes pedigree func. 0.08 2.42 0 1 0 0.02 -1 1 -1 -0.96 Wiek 21 81 0 1 0.03 1 -1 1 -0.93 1 3. Model sieci Zastosowałam kilka modelów sieci - perceptronów wielowarstwowych - w celu porównania ich efektywności: Liczba neuronów w warstwie Funkcje aktywacji w warstwach: ukrytej i wyjsciowej wejściowej ukrytej I ukrytej II wyjściowej Funkcje aktywacji w warstwie wejściowej 1 8 27 7 1 identycznościowa tanh 2 8 21 7 1 identycznościowa tanh 3 8 17 7 1 identycznościowa tanh 4 8 27 7 1 identycznościowa logistyczna 5 8 21 7 1 identycznościowa logistyczna 6 8 17 7 1 identycznościowa logistyczna 7 13 27 7 1 identycznościowa tanh 8 13 21 7 1 identycznościowa tanh 9 13 17 7 1 identycznościowa tanh 10 13 27 7 1 identycznościowa logistyczna 11 13 21 7 1 identycznościowa logistyczna 12 13 17 7 1 identycznościowa logistyczna PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 5 We wcześniejszych doświadczeniach nie udalo mi się nauczyć sieci przy tylko jednej warstwie ukrytej, dlatego ograniczyłam testy do sieci z dwoma warstwami ukrytymi. TakŜe przy mniejszej ilości neuronów ukrytych niŜ 7 w drugiej warstwie ukrytej nie otrzymywałam poŜądanego wyniku. KaŜdą z powyŜszych sieci uczyłam metodą wstecznej propagacji, a wybrane wstecznej propagacji z momentum. Dla algorytmu wtecznej propagacji uŜywałam następujących wartości parametrów: • współczynnik uczenia się η: 0.15, 0.2, 0.25 • maksymalny niepropagowalny błąd dmax: 0.3 Dla algorytmu wtecznej propagacji z momentum uŜywałam następujących wartości parametrów: • współczynnik uczenia się η: taki, jak dla wstecznej propagacji bez momentum • momentum µ: 0.09 • maksymalny niepropagowalny błąd dmax: 0.3 • flat spot elimination (c): 0.01 Podczas modyfikacji współczynnika dmax w trakcie uczenia metodą wstecznej propagacji wychodziłam od wartości 0.35 i co 500 cykli zmniejszałam go o 0.05, a po osiągnięciu wartości 0.20 juŜ go nie zmieniałam. 4. Strategie uczenia sieci Dla zestawów osiągających najlepsze wyniki przeprowadzalam dodatkowe testy: • modyfikowałam współczynnik dmax w trakcie uczenia się sieci przyjmując coraz mniejsze wartości [Ryszard Tadeusiewicz: Sieci neuronowe, Akademicka Oficyna Wydawnicza, Warszawa 1993] • uczyłam sieć metodą wstecznej propagacji z momentum Symulacje były przeprowadzane przez program Batchman z pakietu Stuttgart Neural Network Simulator wersja 4.2 (uŜywające algorytmu wstecznej propagacji ze stałym i zmniennym współczynnikiem dmax) oraz przu uŜyciu programu Java Neural Network Simulator 1.1 (uŜywające algorytmu wstecznej propagacji z momentum). Dla kaŜdej sieci z 13-stoma wejściami w zestawieniu z kaŜdym zbiorem treningowym wykonywałam serię 5-ciu prób (pojedyncza próba kończyła się po pomyślnym nauczeniu się sieci lub przejściu 40 000 cykli uczących), po czym obliczałam: • wartość oczekiwaną E(x) i odchylenie standardowe S(x) liczby cykli potrzebnych do nauki (z prób, które zakończyły się sukcesem – zatem jeŜeli odchylenie standardowe wyniosło 0, to znaczy, Ŝe tylko jedna próba zakończyła się sukcesem) • wartość oczekiwaną E(x) i odchylenie standardowe S(x) błędu MSE względem zbioru uczącego – ze wszystkich prób (odchylenie std. równe 0.001 zwykle oznacza, Ŝe jedna próba na 5 zakończyła się poraŜką, tj. sieć się nie nauczyła) • wartość oczekiwaną E(x) i odchylenie standardowe S(x) błędu MSE generalizacji sieci MSE był liczony za pomocą wzoru: MSE = 1 P ∑ ∑ p∈ patterns j∈output (t pj − o pj ) 2 PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 6 gdzie t to odpowiedź, jaka powinna być na wyjściu wg ciągu uczącego/testowego, o to rzeczywista odpowiedź, jaką dała sieć, j – wyjścia sieci (w tym przypadku 1), p – poŜądane odpowiedzi z ciągów uczących/testowych, P – liczba ciągów uczących/testowych Dla kaŜdej sieci uŜywałam zbiorów treningowych: • nieznormalizowanych • normalizowanych po kolumnach do przedziału [0:1] • normalizowanych po wierszach do przedziału [0:1] • normalizowanych po kolumnach do przedziału [-1:1] • normalizowanych po wierszach do przedziału [-1:1] Dla sieci z 13-stoma wejściami zbiór posiadał 5 dodatkowych informacji na wejściu opisanych w sekcji „Opis danych eksperymentalnych” tego dokumentu. Wzorce do nauki podawano w losowej kolejności. 5. Wyniki symulacji PoniŜsza tabela przedstawia wyniki symulacji nauki sieci. Wszystkie wyniki zostały podane z dokładnością do trzech miejsc po przecinku. Szarym tłem zaznaczono kombinacje (modelu sieci i zbioru uczącego), które się przy kaŜdej próbie nauczyły lub „prawie” nauczyły, tzn. ze średnim błędem sieci równym 0 oraz odchyleniem standardowym błędu sieci równym 0 lub 0.001. Wśród kombinacji, które się uczyły (szare tło) wybrałam takie, które potrzebowały średnio najmniej cykli do nauki, a takŜe najlepiej generalizowały – te kombinacje zaznaczyłam pogrubioną czcionką. Sieć Dane uczące normalizacja η (1) 8-27-71 tanh Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 (2) 8-21-7-1 tanh Średnia liczba cykli i odchylenie std liczby cykli Średni błąd sieci / odchylenie std tego blędu 14803.500 14350.865 0.000 0.001 Średni błąd generalizacji sieci / odchylenie std tego błędu 0.268 0.025 1623.000 8612.750 11906.250 4984.200 9179.000 30641.000 16876.000 4258.000 277.891 10591.728 12653.086 938.430 23.000 0.000 0.000 2977.767 0.000 0.006 0.001 0.000 0.003 0.233 0.238 0.243 0.010 0.021 0.416 0.033 0.025 0.351 0.000 0.000 0.011 0.002 0.000 0.004 0.003 0.011 0.007 0.008 0.009 0.048 0.029 0.015 0.090 0.000 0.281 0.293 0.288 0.266 0.278 0.269 0.247 0.265 0.341 0.312 0.358 0.337 0.425 0.270 0.270 0.023 0.056 0.035 0.011 0.035 0.037 0.041 0.049 0.036 0.023 0.129 0.020 0.192 0.029 0.020 10503.500 2845.400 6557.333 6442.000 11030.000 - 14186.673 492.143 1538.119 1297.273 5353.000 - 0.001 0.000 0.001 0.001 0.020 0.234 0.227 0.235 0.028 0.115 0.192 0.059 0.002 0.000 0.001 0.002 0.032 0.006 0.003 0.005 0.014 0.033 0.081 0.035 0.282 0.284 0.285 0.260 0.289 0.219 0.240 0.262 0.349 0.320 0.335 0.333 0.020 0.041 0.018 0.031 0.046 0.033 0.014 0.036 0.053 0.039 0.064 0.025 PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 7 (3) 8-17-7-1 tanh (4) 8-27-7-1 log (5) 8-21-7-1 log (6) 8-17-7-1 log (7) 13-277-1 tanh Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 3344.000 387.000 0.083 0.292 0.002 0.051 0.113 0.002 0.317 0.389 0.283 0.008 0.080 0.044 5703.600 3154.667 6494.667 8014.333 11665.750 14722.250 2382.309 323.911 1256.242 2206.980 4683.207 7104.370 0.000 0.007 0.001 0.003 0.000 0.229 0.229 0.230 0.117 0.151 0.243 0.108 0.147 0.256 0.002 0.000 0.008 0.001 0.005 0.001 0.003 0.002 0.006 0.028 0.062 0.102 0.030 0.035 0.093 0.005 0.292 0.259 0.285 0.265 0.277 0.225 0.235 0.247 0.312 0.398 0.295 0.284 0.316 0.425 0.254 0.041 0.041 0.022 0.030 0.038 0.025 0.006 0.050 0.042 0.118 0.040 0.052 0.101 0.154 0.043 7846.250 7120.600 18576.000 20321.000 22278.000 27953.000 35301.000 9444.400 5351.435 5205.444 0.000 8178.205 0.000 0.000 0.000 4477.691 0.000 0.000 0.008 0.004 0.017 0.220 0.221 0.220 0.013 0.019 0.020 0.020 0.013 0.012 0.000 0.001 0.000 0.004 0.006 0.013 0.003 0.005 0.003 0.011 0.002 0.011 0.014 0.007 0.012 0.000 0.260 0.268 0.268 0.263 0.229 0.223 0.228 0.234 0.309 0.265 0.249 0.307 0.306 0.310 0.260 0.012 0.031 0.029 0.035 0.040 0.018 0.008 0.002 0.022 0.013 0.014 0.040 0.022 0.015 0.023 8878.200 13546.250 34107.333 29187.000 16551.333 8470.000 5048.894 11147.498 2305.542 0.000 5014.330 3724.760 0.000 0.000 0.004 0.006 0.007 0.219 0.221 0.221 0.030 0.012 0.024 0.012 0.022 0.022 0.003 0.000 0.001 0.006 0.005 0.009 0.001 0.004 0.002 0.011 0.008 0.011 0.006 0.012 0.012 0.004 0.265 0.274 0.252 0.273 0.255 0.235 0.231 0.233 0.283 0.303 0.282 0.309 0.296 0.277 0.254 0.018 0.022 0.034 0.025 0.041 0.003 0.005 0.002 0.031 0.010 0.016 0.026 0.025 0.033 0.030 14262.600 11306.400 39084.000 27151.000 10367.250 11254.850 5044.972 0.000 0.000 14470.747 0.000 0.000 0.011 0.013 0.013 0.221 0.223 0.223 0.023 0.020 0.029 0.019 0.017 0.033 0.000 0.000 0.000 0.006 0.005 0.009 0.004 0.002 0.002 0.013 0.006 0.005 0.006 0.005 0.013 0.001 0.274 0.264 0.254 0.253 0.242 0.232 0.222 0.230 0.289 0.316 0.277 0.315 0.277 0.267 0.228 0.020 0.016 0.024 0.023 0.014 0.003 0.023 0.004 0.043 0.036 0.027 0.030 0.033 0.040 0.017 PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 8 (8) 13-21-71 tanh (9) 13-17-71 tanh (10) 13-277-1 log (11) 13-217-1 log Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach Po kolumnach Po kolumnach Po kolumnach 0.20 0.25 0.15 0.20 do [-1:1] do [-1:1] do [0:1] do [0:1] 2118.600 3651.333 5250.750 12841.667 4962.000 532.329 590.057 712.723 11168.751 2062.227 0.000 0.113 0.001 0.000 0.003 0.231 0.234 0.245 0.092 0.145 0.432 0.057 0.172 0.431 0.000 0.000 0.042 0.001 0.001 0.006 0.009 0.009 0.009 0.035 0.108 0.030 0.032 0.070 0.020 0.000 0.249 0.250 0.245 0.243 0.288 0.250 0.271 0.237 0.300 0.304 0.367 0.313 0.399 0.492 0.260 0.028 0.078 0.026 0.019 0.043 0.020 0.031 0.038 0.018 0.040 0.089 0.032 0.109 0.086 0.039 3781.000 4225.333 3891.800 5060.400 7404.500 8981.000 1451.696 1211.585 402.385 604.799 1306.259 3451.869 0.001 0.021 0.000 0.000 0.000 0.225 0.231 0.230 0.083 0.188 0.353 0.124 0.269 0.347 0.006 0.003 0.027 0.000 0.000 0.001 0.002 0.002 0.002 0.020 0.066 0.094 0.032 0.057 0.065 0.012 0.239 0.271 0.267 0.255 0.279 0.223 0.244 0.239 0.310 0.302 0.364 0.287 0.376 0.359 0.264 0.018 0.022 0.020 0.020 0.022 0.022 0.038 0.034 0.012 0.055 0.073 0.033 0.074 0.059 0.028 19940.000 9744.500 7262.500 5211.400 7772.667 10696.500 0.000 5164.500 2776.947 795.137 1150.649 7384.145 0.029 0.021 0.000 0.000 0.002 0.225 0.228 0.231 0.137 0.235 0.354 0.152 0.205 0.325 0.000 0.027 0.027 0.000 0.000 0.004 0.002 0.003 0.004 0.035 0.061 0.069 0.043 0.064 0.066 0.001 0.258 0.283 0.272 0.267 0.270 0.229 0.263 0.225 0.313 0.309 0.417 0.291 0.301 0.324 0.251 0.046 0.020 0.013 0.021 0.027 0.028 0.038 0.025 0.030 0.052 0.108 0.017 0.052 0.044 0.021 6443.000 13007.800 16198.400 15758.500 9046.750 29330.000 7657.333 1730.226 12768.330 5437.763 7830.751 5258.894 0.000 2195.364 0.000 0.000 0.000 0.001 0.000 0.217 0.221 0.223 0.016 0.016 0.012 0.019 0.027 0.037 0.001 0.000 0.000 0.000 0.002 0.001 0.005 0.003 0.001 0.013 0.014 0.006 0.011 0.018 0.010 0.001 0.237 0.230 0.249 0.268 0.256 0.228 0.230 0.217 0.290 0.289 0.306 0.275 0.265 0.264 0.249 0.015 0.005 0.016 0.012 0.004 0.009 0.003 0.021 0.018 0.032 0.024 0.024 0.036 0.032 0.025 5039.400 7947.800 21391.250 17776.000 1422.774 2572.981 7846.787 5765.611 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.001 0.256 0.233 0.242 0.252 0.012 0.009 0.022 0.005 PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 9 (12) 13-177-1 log Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] Po kolumnach do [-1:1] Po kolumnach do [0:1] Po kolumnach do [0:1] Po kolumnach do [0:1] bez bez bez Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [-1:1] Po wierszach do [0:1] Po wierszach do [0:1] Po wierszach do [0:1] 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 0.15 0.20 0.25 24675.800 20372.250 8083.100 13041.779 0.000 0.218 0.220 0.223 0.016 0.029 0.028 0.022 0.020 0.026 0.000 0.000 0.002 0.003 0.003 0.013 0.004 0.013 0.011 0.014 0.010 0.001 0.264 0.234 0.233 0.231 0.311 0.282 0.289 0.308 0.291 0.287 0.275 0.013 0.004 0.003 0.003 0.030 0.021 0.026 0.016 0.025 0.026 0.018 11020.000 7876.333 14027.250 15644.000 18243.750 - 9810.810 1575.822 5457.996 2843.084 10605.976 - 0.000 0.001 0.001 0.001 0.000 0.219 0.221 0.222 0.031 0.038 0.046 0.037 0.041 0.031 0.001 0.001 0.001 0.001 0.001 0.006 0.003 0.004 0.008 0.005 0.005 0.012 0.018 0.013 0.252 0.248 0.271 0.264 0.267 0.227 0.231 0.230 0.275 0.265 0.263 0.281 0.288 0.273 0.016 0.016 0.011 0.012 0.013 0.010 0.002 0.004 0.026 0.021 0.020 0.023 0.025 0.018 Jako kombinacje sieci i zbiorów uczących uzykujące najlepsze wyniki wybrałam: Sieć (1) 8-27-7-1 tanh (7) 13-27-71 tanh (7) 13-27-71 tanh (10) 13-277-1 log Dane uczące normalizacja η Po kolumnach do [-1:1] 0.20 Po kolumnach do [-1:1] 0.15 Po kolumnach do [-1:1] 0.20 Po kolumnach do [-1:1] 0.25 Średnia liczba cykli i odchylenie std liczby cykli Średni błąd sieci / odchylenie std tego blędu 1 623.000 277.891 0.000 0.000 Średni błąd generalizacji sieci / odchylenie std tego błędu 0.281 0.023 10 367.250 14 470.747 0.000 0.001 0.228 0.017 2 118.600 532.329 0.000 0.000 0.249 0.028 13 007.800 12 768.330 0.000 0.000 0.230 0.005 „Zwycięzców” uczyłam metodą wtecznej propagacji z momentum (inne parametry uczenia niŜ η opisane są wczesniej) i otrzymałam poniŜsze rezultaty: Sieć (1) 8-27-7-1 tanh (7) 13-27-71 tanh (7) 13-27-71 tanh (10) 13-277-1 log Dane uczące normalizacja η Średnia liczba cykli i odchylenie std liczby cykli Średni błąd sieci / odchylenie std tego blędu Średni błąd generalizacji sieci / odchylenie std tego błędu Po kolumnach do [-1:1] 0.20 2 340.000 397.995 0.000 0.000 0.277 0.031 Po kolumnach do [-1:1] 0.15 2 160.000 224.499 0.000 0.000 0.239 0.023 Po kolumnach do [-1:1] 0.20 3 000.000 734.847 0.000 0.000 0.254 0.017 Po kolumnach do [-1:1] 0.25 3 660.000 1046.136 0.000 0.000 0.245 0.009 oraz zmieniałam współczynnik dmax (sposób zmiany jest opisany wcześniej) w trakcie uczenia: Sieć (1) 8-27-7-1 tanh (7) 13-27-71 tanh η Średnia liczba cykli i odchylenie std liczby cykli Średni błąd sieci / odchylenie std tego blędu Średni błąd generalizacji sieci / odchylenie std tego błędu Po kolumnach do [-1:1] 0.20 2 213.800 497.202 0.000 0.000 0.291 0.024 Po kolumnach do [-1:1] 0.15 3 125.000 911.683 0.000 0.000 0.261 0.030 Dane uczące normalizacja PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 10 (7) 13-27-71 tanh (10) 13-277-1 log Po kolumnach do [-1:1] 0.20 2 178.800 296.633 0.000 0.000 0.249 0.023 Po kolumnach do [-1:1] 0.25 12 151.800 11 462.166 0.000 0.000 0.260 0.013 W powyŜszych sieciach przeprowadziłam równieŜ 5-krzyŜową walidację (walidację przeprowadzałam na odpowiedziach sieci na dane ze zbioru testowego i uŜywałam do tego nauczonych sieci z 5-ciu prób). Pole powierzchni pod krzywą ROC* (Receiver operating characteristic) przedstawia poniŜsza tabelka: Sieć (1) 8-27-7-1 tanh (7) 13-27-71 tanh (7) 13-27-71 tanh (10) 13-277-1 log Dane uczące normalizacja η Pole powierzchni pod krzywą ROC Średni błąd generalizacji sieci Po kolumnach do [-1:1] 0.20 0.704 0.281 Po kolumnach do [-1:1] 0.15 0.724 0.228 Po kolumnach do [-1:1] 0.20 0.695 0.249 Po kolumnach do [-1:1] 0.25 0.749 0.230 * pole powierzchni obliczałam jako zwykłą sumę pól trapezów, tzn. 1 N −1 pole = ∑ ( yi + yi+1 ) ⋅ ( xi +1 − xi ) , 2 i =1 gdzie x to otrzymana dla danej wartości progowej wartość FPF (False Positive Fraction), czyli specyficzność; y to to otrzymana dla danej wartości progowej wartość TPF (True Positive Fraction), czyli czułość; N – liczba wartości progowych 6. Wnioski i podsumowanie Porównanie normalizacji zbiorów uczących Zarówno normalizacja po wierszach jak i brak normalizacji zupełnie się nie sprawdziły – w kilku przypadkach zaledwie 1 próba na 5 kończyła się nauczeniem sieci. Za to normalizacja po kolumnach dawała juŜ całkiem ciekawe rezultaty. W powyŜszych przypadkach częsciej uczyły się sieci mając zbiór normalizowany po kolumnach do przedziału [-1:1] (22 przypadki, w tym najszybciej ucząca się kombinacja oraz najlepiej generalizująca) niŜ do przedziału [0:1] (14 przypadków). Porównanie funkcji aktywacji Minimalnie lepiej wypadł jako funkcja aktywacji w sieci tanh niŜ funkcja logistyczna, m.in. dlatego, Ŝe najszybciej uczaca się i najlepiej generalizująca sieć miała tangens hiperboliczny jako funkcję aktywacji. Za to, wbrew oczekiwaniom, nie zaobserwowałam lepszej nauki sieci przy tanh i zbiorze normalizowanym do przedziału [-1:1] niŜ przy znormalizowanym do przedziału [0:1] – być moŜe dlatego, Ŝe wyjście sieci było zawsze znormalizowane do przedziału [0:1]. Wpływ kodowania dodatkowej informacji o tym, czy ciąg uczący ma wszytskie wiarygodne dane Dodatkowe wejścia nie przyspieszyły procesu uczenia – ale za to miały wpływ na zmniejszenie błędu generalizacji sieci. Sieć (7) 13-27-7-1 tanh ma najmniejszy błąd generalizacji, ponadto tylko sieci z 13-stoma wejściami miały błędy generalizacji poniŜej wartości 0.25. PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 11 Porównanie wstecznej propagacji z momentum oraz zwykłej wstecznej propagacji Dodanie momentum skróciło czas nauki sieci, które wcześniej miały średnią liczbę cykli powyŜej 10 000, jednak nie poprawiło wyników sieci juŜ szybko uczących się metodą wstecznej propagacji (poniŜej 3 000 cykli) – nawet, w trakcie 5-ciu eksperymentów, dało gorsze wyniki. Pogorszyły się teŜ srednie zdolności generalizacji sieci (większy błąd na zbiorze testowym). Kombinacja sieci (7) ze wspólczynnikiem η = 0.15 po wprowadzeniu momentum nauczyła się za kaŜdym razem (czego nie uzyskała przy zwykłej wstecznej propagacji), ale byc moŜe to kwestia za małej ilości eksperymentów. Wpływ modyfkacji współczynnika dmax w trakcie uczenia się sieci na wyniki Właściwie tylko w przypadku jednej sieci modyfikacja wspólczynnika dmax w trakcie uczenia przyniosla pozytywne efekty (zmniejszona licznba cykli potrzebna do nauki), tj. (7) 13-27-7-1 tanh i η = 0.15, w pozostałych przypadkach otrzymano takie same lub gorsze wyniki (zarówno szybkości nauki jak i błędu generalizacji). Błąd generalizacji sieci W najlepszych przypadkach sieci średni błąd generalizacji sieci wypadł średnio - poniŜej wartości 0.25 (przy moŜliwych prawidłowych odpowiedziach 0 lub 1). Błąd walidacyjny sieci – krzywa ROC Pole powierzchni pod krzywą ROC wynosiło w najlepszym przypadku 0.749 (sieć (10) 13-27-7-1 log z η = 0.25, czyli wcale nie ta z najlepszym błędem walidacyjnym), a patrząc się na 4 najlepsze sieci – pole wynosiło ponad 0.69, zatem błąd walidacyjny wypadł podobnie jak błąd generalizacji sieci – średnio. i http://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes PIMA - Diagnozowanie cukrzycy u Indian ze szczepu Pima przez sieć neuronową 12