Sztuczne sieci neuronowe Badanie algorytmów ucz¡cych sieci MLP Michaª Ogrodowski 221193 22 pa¹dziernika 2012 Spis tre±ci 1 Wst¦p 2 2 Przebieg ¢wiczenia 2.1 Program logistyczny . . . . . 2.2 Badanie symetrii . . . . . . . 2.3 Problem dwu spiral . . . . . . 2.4 Aproksymacja zbioru danych 2 2 6 7 7 . . . . . . . . . . . . . . . . . . . . 3 Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1 1 Wst¦p Celem ¢wiczenia byªo badanie algorytmów uczenia sieci MLP z zastosowaniem problemów testuj¡cych, które nale»¡ do grupy problemów klasykacji, predykcji i aproksymacji. MLP (ang. Multi Layer Perceptron) to sie¢ jednokierunkowa, wielowarstwowa o neuronach typu sigmoidalnego. Jest równie» nazywana perceptronem wielowarstwowym. Sygnaªy w tej sieci przepªywaj¡ tylko od wej±cia do wyj±cia. Uczenie w sieci MLP odbywa si¦ najcz¦±ciej z nauczycielem. W wielowarstwowej sieci neurony uªo»one s¡ w warstwach wej±ciowych i wyj±ciowych oraz w co najmniej jednej warstwie ukrytej. wiczenie nale»aªo wykona¢ z u»yciem pakietu programów MLP w ±rodowisku Matlab. Uczenie sieci jest mo»liwe poprzez wybranie jednego z algorytmów ucz¡cych: najwi¦kszego spadku, najwi¦kszego spadku z momentem, gradientów sprz¦»onych, zmiennej metryki, LevenbergaMarquardta, heurystyczna RPROP (Resilient backPROPagation). Zadanie wymagaªo przetestowanie algorytmów ucz¡cych na problemach testowych: program logistyczny, badanie symetrii danych wej±ciowych, problem dwu spiral, aproksymacja zbioru danych. 2 Przebieg ¢wiczenia 2.1 Program logistyczny Krzywe uczenia sieci 1-5-1 dla ró»nych algorytmów ucz¡cych dla ograniczonej liczby cykli ucz¡cych (110 cykli) przedstawiono na Rysunku 1. Rysunek 1: Krzywe uczenia sieci perceptronowej 1-5-1 Krzywe uczenia sieci 1-5-1 bez ograniczonej liczby cykli dla algorytmów ucz¡cych wyma2 ganych dla uzyskania bª¦du MSE uczenia równego goal=0,000035 przedstawiono na: Rysunku 2 (BFSG), Rysunku 3 (gradienty sprz¦»one), Rysunku 4 (najwi¦kszy spadek), Rysunku 5 (najwi¦kszy spadek z momentem), Rysunku 6 (Levenberg-Marquardt), Rysunku 7 (heurystyczna RPROP). Rysunek 2: Krzywa Rysunek 3: Krzywa uczenia metod¡ BFSD uczenia metod¡ gradientów sprz¦»onych 3 Rysunek 4: Krzywa Rysunek 5: Krzywa uczenia metod¡ najwi¦kszego spadku uczenia metod¡ najwi¦kszego spadku z momentem 4 Rysunek 6: Krzywa Rysunek 7: Krzywa uczenia metod¡ Levenberga-Marquardta uczenia metod¡ heurystyczn¡ RPROP W Tabeli 1 pokazano porównanie algorytmów pod wzgl¦dem liczby cykli ucz¡cych wymaganych dla uzyskania bª¦du MSE uczenia równego goal=0,000035 (3,5 * 10−5 , E=10−3 , E=10−6 , E=10−9 . 5 Tabela 1: Zestawienie wyników uczenia sieci predykcyjnej przy ró»nych metodach uczenia Algorytm ucz¡cy BFSG gradient sprz¦»ony najwi¦kszy spadek najwi¦kszy spadek z momentem Levenberg-Marquardt RPROP 3,5 * 10 l. iter. 93 230 50000+ 100* 12 5948 −5 3,5 * 10 czas [s] 1,54 3,63 305+ 5* 1.26 32,18 −5 10−3 10−3 10−6 10−6 10−9 l. iter. czas [s] l. iter. czas [s] l. iter. czas [s] 20 0.7 191 2.9 1106 14,7 38 0,8 129 2,14 156 2,56 50000+ 305+ 50000+ 305+ 50000+ 305+ 100* 5* 100* 5* 100* 5* 7 0,25 15 0,35 354 3,67 27 0,3 60000+ 392+ 60000+ 392+ ∗ - w metodzie najwi¦kszego spadku z momentem sie¢ zostaªa przetrenowana po ok. 100 ite- racjach (5 sek) 2.2 Badanie symetrii Krzywe uczenia sieci 5-3-1 dla ró»nych algorytmów ucz¡cych dla ograniczonej liczby cykli ucz¡cych (500 cykli) przedstawiono na Rysunku 8. Rysunek 8: Krzywe uczenia sieci perceptronowej 5-3-1 Liczb¦ bª¦dów testowania prawidªowo nauczonej sieci na danych testuj¡cych, liczb¦ iteracji i czas przedstawiono w Tabeli 2. Za bª¡d uznano warto±¢ ró»nicy (y-d) wi¦ksz¡ ni» 0.5. Nale»aªo uzyska¢ funkcji celu goal=0,000035. Tabela 2: Zestawienie wyników uczenia sieci predykcyjnej przy ró»nych metodach uczenia Algorytm ucz¡cy BFSG gradient sprz¦»ony najwi¦kszy spadek najwi¦kszy spadek z momentem Levenberg-Marquardt RPROP liczba bª¦dów liczba iteracji czas [s] 4 135 2,23 2 219 3,55 6 10000+ 60+ 6 100* 6,46* 0 374 3,76 0 692 3,88 6 10−9 ∗ - w metodzie najwi¦kszego spadku z momentem sie¢ zostaªa przetrenowana po ok. 100 iteracjach (6,46 sek). 2.3 Problem dwu spiral Krzywe uczenia sieci 2-2-1 dla ró»nych algorytmów ucz¡cych dla ograniczonej liczby cykli ucz¡cych (300 cykli) przedstawiono na Rysunku 9. Rysunek 9: Krzywe uczenia sieci perceptronowej 2-2-1 Procentow¡ liczb¦ bª¦dów testowania prawidªowo nauczonej sieci na danych testuj¡cych, liczb¦ iteracji i czas przedstawiono w Tabeli 3. Za bª¡d uznano warto±¢ ró»nicy (y-d) wi¦ksz¡ ni» 0.5. Nale»aªo uzyska¢ funkcji celu goal=0,000035. Tabela 3: Zestawienie wyników uczenia sieci predykcyjnej przy ró»nych metodach uczenia Algorytm ucz¡cy BFSG gradient sprz¦»ony najwi¦kszy spadek najwi¦kszy spadek z momentem Levenberg-Marquardt RPROP % liczba bª¦dów liczba iteracji czas [s] 39 366 5,8 39 37 0,96 36 1000+ 5,5+ 20 100* 1,8* 42 97 1,05 13 2000+ 106 ∗ - w metodzie najwi¦kszego spadku z momentem sie¢ zostaªa przetrenowana po ok. 100 iteracjach (5,5 sek). 2.4 Aproksymacja zbioru danych Zadanie polegaªo na aproksymacja danych 1-wymiarowych i wielowyj±ciowych, np. funkcj¡ sin(x), sinc(x), sawtooth(x), square(x), etc., jednocze±nie przy jednym wspólnym wej±ciu x. Zastosowano funkcj¦ sin(x) do wygenerowania zbioru danych ucz¡cych (x,d) i testuj¡cych dla problemu. W Tabeli 4 przedstawiono porównanie liczby iteracji oraz czas dla sieci 1-20-4 oraz 1-150-4. 7 Tabela 4: Zestawienie wyników uczenia sieci predykcyjnej przy ró»nych metodach uczenia Algorytm ucz¡cy BFSG gradient sprz¦»ony najwi¦kszy spadek najwi¦kszy spadek z momentem Levenberg-Marquardt 3 20 neuronów 20 neuronów 150 neuronów 150 neuronów liczba iteracji czas [s] liczba iteracji czas [s] 107 55,34 2267 366 244 26,2 324 42 20000+ 480+ 20000+ 480+ 12507 124 20000+ 300+ 7 8,23 52 72,2 Wnioski Podczas ¢wiczenia nale»aªo przetestowa¢ dziaªanie algorytmów ucz¡cych na problemach testowych: program logistyczny, badanie symetrii danych wej±ciowych, problem dwu spiral, aproksymacja zbioru danych. Algorytmy porównano pod wzgl¦dem liczby iteracji oraz czasu oblicze«. Na podstawie Rysunku 1 (program logistyczny) mo»na stwierdzi¢, »e najbardziej skuteczny dla 110 cykli jest algorytm Levenberga-Marquardta. Równie efektywne s¡ algorytmy BFSG, RPROP, gradient sprz¦»ony, aczkolwiek potrzebuj¡ kilku iteracji wi¦cej dla osi¡gni¦cia minimum (niezauwa»alne dla u»ytkownika). Metoda najwi¦kszego spadku z momentem potrzebuje wi¦kszej ilo±ci cykli ucz¡cych ni» powy»sze algorytmy, aby osi¡gn¡¢ minimum funkcji celu, ale po okoªo 105 cyklach sie¢ zostaje przetrenowana. Najsªabiej radzi sobie algorytm najwi¦kszego spadku. W Tabeli 1 przedstawiono liczb¦ cykli ucz¡cych oraz czas pracy wymaganych przez ró»ne algorytmy dla uzyskania zadanej warto±ci funkcji celu: E=10-3, E=10-6, E=10-9, E=0.000035. W wi¦kszo±ci przypadków najlepiej wypadª algorytm Levenberga-Marquardta. Równie dobrze poradziªy sobie algorytmy gradientów sprz¦»onych, BFSG, RPROP (poza e=10-6 i e=10-9). W przypadku e=10-3 powy»sze algorytmy potrzebowaªy czasu poni»ej 1 s. Najmniej iteracji wymagaªa metoda Levenberga-Marquardta (7 iteracji), pozostaªe powy»sze porównywalnie (od 20 do 38). Przy e=10-9 najszybsze okazaªy si¦ metody Levenberga-Marquardta i gradientu sprz¦»onego - poni»ej 4 sekund. Algorytm RPROP przy e=10-6 i 10-9 przy 60000 (po 392 sekundach) iteracjach nie osi¡gn¡ª zadanej warto±ci funkcji celu. Metoda najwi¦kszego spadku we wszystkich przypadkach nie osi¡gn¦ªa zadanej warto±ci celu przy 50000 iteracjach (305 sekund), natomiast w przypadku algorytmu najwi¦kszego spadku z momentem sie¢ zostaªa przetrenowana po ok 100 iteracjach. Kolejnym problemem byªo badanie symetrii danych wej±ciowych. Krzywe uczenia sieci perceptronowej dla 500 cykli ucz¡cych przedstawiono na Rysunku 8. Ponownie najskuteczniejszy okazaª si¦ algorytm Levenberga-Marquardta. Mniej skuteczne, ale porównywalne do siebie s¡ metody gradientu sprz¦»onego, RPROP, i BFSG. Metoda najwi¦kszego spadku okazaªa si¦ najmniej efektywna, a w metodzie najwi¦kszego spadku z momentem po 100 cyklach sie¢ zostaªa przetrenowana. Tabela 2 przedstawia wyniki uczenia sieci: liczb¦ bª¦dów (y-d>0.5), liczb¦ iteracji oraz czas uczenia dla uzyskania warto±ci funkcji celu = 0.000035. Porównywalne czasy (poni»ej 4 sekund) wymagaªy metody BFSG, gradientu sprz¦»onego, Levenberga-Marquardta i RPROP. BFSG wykonaª najmniej iteracji. Zerow¡ liczb¡ bª¦dów testowania prawidªowo nauczonej sieci wykazaªy si¦ algorytmy Levenbrga-Marquardta i RPROP. Metoda najwi¦kszego spadku po 60000 iteracjach nie osi¡gn¦ªa zadanej warto±ci funkcji celu, a najwi¦kszego spadku z momentem po 8 ok. 100 iteracjach zostaªa przetrenowana. W problemie dwu spiral do 100 iteracji wszystkie algorytmy poradziªy sobie dobrze (Rysunek 9), jednak znowu najlepszy okazaª si¦ Levenberg-Marquardt. Po ok. 105 przy zastosowaniu algorytmu najwi¦kszego spadku z momentem sie¢ zostaªa przetrenowana. W Tabeli 1 pokazano porównanie procentowej liczby bª¦dów liczby iteracji, czasu dla osi¡gni¦cia zdanej funkcji celu 0.000035. Najefektywniejsze okazaªy si¦ metody gradientu sprz¦»onego, Levenberg-Marquardta i BFSG. Algorytmy RPROP i najwi¦kszego spadku nie osi¡gn¦ªy tej warto±ci. Kolejnym problemem testowym byªa aproksymacja zbioru danych. W tabeli 4 przedstawiono porównanie czasów oraz liczby iteracji dla sieci 1-20-4 oraz 1-50-4. W przypadku sieci o strukturze minimalnej (1-20-4) najlepszy okazaª si¦ algorytm Levenberga-Marquardta zarówno pod wzgl¦dem czasu uczenia i liczby iteracji. Przy 150 neuronach w warstwie ukrytej najszybszy byª algorytm gradientów sprz¦»onych. Algorytmy najwi¦kszego spadku i najwi¦kszego spadku z momentem znacznie odstaj¡ od pozostaªych. W wi¦kszo±ci przypadków najefektywniejsze okazywaªy si¦ algorytmy Levenberga-Marquaedta oraz gradientów sprz¦»onych. Natomiast metody najwi¦kszego spadku oraz najwi¦kszego spadku z momentem cz¦sto nie radziªy sobie z problemem. 9