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