Nowoczesne technii informatyczne - Ćwiczenie 5: UCZENIE WIELOWARSTWOWEJ SIECI JEDNOKIERUNKOWEJ str. Ćwiczenie 5: UCZENIE SIECI WIELOWARSTWOWYCH. METODA WSTECZNEJ PROPAGACJI BŁĘDU WYMAGANIA. Sztuczne sieci neuronowe budowa sieci ednoierunowych, metoda wsteczne propagaci błędu, rola funci celu podczas uczenia sieci 2. Środowiso Matlab, w szczególności z zaresu: tworzenia sieci ednoierunowe (newff), znaczenia parametrów tworzonego obietu net uczenia sieci (train) symulaca pracy sieci (sim) WPROWADZENIE TEORETYCZNE MoŜliwości poedynczych sztucznych neuronów są bardzo ograniczone, edna poprzez połączenie sztucznych neuronów w sieci ich moŝliwości bardzo gwałtownie wzrastaą i uawnia się rzeczywista moc obliczeń neuronowych. Jest ona wyniiem ednoczesne (równoległe) pracy wielu neuronów połączonych w sieci tworzące róŝnorodne strutury (architetury). Ze względu na architeturę wyróŝnia się: sieci ednoierunowe (ednowarstwowe i wielowarstwowe) sieci reurencyne sieci omórowe Sieci ednoierunowe (feedforward) Sieci ednoierunowe wielowarstwowe cieszą się nawięszym zainteresowaniem spośród wszystich znanych architetur sztucznych sieci neuronowych. Spowodowane est to prostą ich struturą - łatwą do opisania, a równieŝ prostymi i łatwymi do realizaci metodami uczenia tychŝe sieci. NaleŜy podreślić, Ŝe taa strutura sieci est zbliŝona do budowy mózgu, tóry równieŝ posiada struturę warstwową, w duŝe części ednoierunową. Rys. 5. Schemat sieci ednoierunowe wielowarstwowe
Nowoczesne technii informatyczne - Ćwiczenie 5: UCZENIE WIELOWARSTWOWEJ SIECI JEDNOKIERUNKOWEJ str. 2 W sieciach ednoierunowych moŝna wyróŝnić uporządowane warstwy neuronów (w tym warstwę weściową i warstwę ściową). Liczba neuronów w aŝde z warstw moŝe być róŝna, przy czym w dane warstwie wszystie neurony maa taą sama funcę prześcia neurony z róŝnych warstw mogą mieć róŝne funce prześcia. Połączenia występuą tylo pomiędzy neuronami z sąsiednich warstw, wg zasady aŝdy z aŝdym i maą one charater asymetryczny. Sygnały przesyłane są od warstwy weściowe poprzez warstwy uryte (eśli występuą) do warstwy ściowe (w ednym ierunu). Neurony warstwy weściowe posiadaą tylo edno weście i uproszczoną funcę prześcia (umownie est to warstwa zerowa sieci). Zadaniem neuronów z warstwy weściowe est wstępna obróba sygnału (np.: normalizaca, odowanie itp.). Z olei za przetwarzanie decyzyne odpowiedzialne są neurony warstw urytych i warstwy ściowe, a odpowiedź udzielana est przez neurony warstwy ściowe. WaŜnym problem est dobór właściwych funci atywaci dla neuronów w poszczególnych warstwach wielowarstwowe sieci ednoierunowe. Naczęście w warstwach urytych wyorzystue się funce atywaci typu sigmoidalnego (sinus hiperboliczny, tangens hiperboliczny). Natomiast typ funci atywaci neuronów warstwy ściowe zaleŝy od przeznaczenia sieci onieczne est dostosowanie typu funci prześcia do wartości odpowiedzi aich spodziewamy się na ściu sieci. Funce sigmoidalne ograniczaą wartości ścia do przedziału (0,) lub (-,) dlatego teŝ bardzo często onieczne est zastosowanie w warstwie ściowe neuronów z liniową funcą prześcia, gdyŝ nie limitue ona w Ŝaden sposób wartości odpowiedzi. Zbudowanie sieci wielowarstwowe, w tóre neurony, aŝde warstwy posiadaą liniowe funce prześcia est bezcelowe, gdyŝ złoŝenie funci liniowych est funcą liniową i taa sieć wielowarstwową moŝna zastąpić siecią ednowarstwową. Uczenie sieci ednoierunowych Uczenie sieci ednoierunowych moŝe być realizowane w trybie nadzorowanym (z nauczycielem) i trybie nienadzorowanym (bez nauczyciela). Uczenie w trybie nadzorowanym wymaga znaomości oczeiwanych odpowiedzi neuronów poszczególnych warstw. Niestety znane są one tylo dla warstwy ściowe, dla warstw urytych nie są one oreślone! Problem ten przez wiele lat stawiał pod znaiem zapytania moŝliwość efetywnego uczenia sieci wielowarstwowych. Dopiero opracowanie metody, tóra pozwalała matematycznie wyznaczyć błąd popełniany przez neurony warstw urytych - na podstawie błędu warstwy ściowe - i wyorzystanie go do orety wag neuronów tychŝe, warstw umoŝliwił efetywne wyorzystanie reguł uczenia nadzorowanego do treningu sieci wielowarstwowych. Metoda ta nosi nazwę metody wsteczne propagaci błędu (bacpropagation) i e idea est powszechnie stosowana do uczenia sieci wielowarstwowych. Istniee wiele metod uczenia sieci ednoierunowych wielowarstwowych. Do nawaŝnieszych naleŝy zaliczyć: Bac Propagation (metoda wsteczne propagaci błędów), Quic Propagation (metoda szyba propagaci błędów). Conugate Gradients (metoda gradientów sprzęŝonych), Quasi-Newton (metoda zmienne metryi), Levenberg Marquardt (metoda paraboloidalnych modeli funci błędów), Algorytm wsteczne propagaci błędu Algorytm wsteczne propagaci błędu zdecydowanie dominue wśród metod uczenia ednoierunowych sieci wielowarstwowych. Nazwa metody oddae zasadę e
Nowoczesne technii informatyczne - Ćwiczenie 5: UCZENIE WIELOWARSTWOWEJ SIECI JEDNOKIERUNKOWEJ str. 3 działania, tóra polega na przenoszeniu" błędu, ai popełniła sieć, w ierunu od warstwy ściowe do warstwy weściowe (a więc wstecz w stosunu do ierunu przepływu informaci). Rys. 5.2. Schemat sieci realizuące uczenie metodą wsteczne propagaci błędu. Cyl uczenia metodą wsteczne propagaci błędu (bacpropagation) słada się z następuących etapów:. Wyznaczenie odpowiedzi neuronów warstwy ściowe oraz warstw urytych na zadany sygnał weściowy. 2. Wyznaczenie błędu popełnianego przez neurony znaduące się w warstwie ściowe i przesłanie go w ierunu warstwy weściowe. 3. Adaptaca wag. Algorytm wsteczne propagaci błędu (bacpropagation) oreśla procedurę orety wag w sieci wielowarstwowe przy wyorzystaniu gradientowych metod optymalizaci. Koreta wetora wag sieci oparta est na minimalizaci funci miary błędu (funci celu), tórą oreślono ao sumę wadratów błędów na ściach sieci. JeŜeli atualizaca wag uczonych neuronów odbywać się będzie po prezentaci aŝdego elementu wówczas funca celu ma postać: m E = ) 2 = ( ) 2 z ( t) y ( t Alternatywnym podeściem est oreta wag po prezentaci całego ciągu uczącego wówczas w funci celu naleŝy uwzględnić liczbę wetorów weściowych. W celu minimalizaci błędu średniowadratowego moŝna wyorzystać regułę naszybszego spadu. w = η E w Po przeształceniach uzysuemy zaleŝności na wielość orety wag: dla warstwy ściowe sieci: w = η ( z y ) x d f du gdzie: czynni = z y oreśla błąd popełniany przez -ty neuron warstwy ściowe sieci:
Nowoczesne technii informatyczne - Ćwiczenie 5: UCZENIE WIELOWARSTWOWEJ SIECI JEDNOKIERUNKOWEJ str. 4 dla warstw urytych: w m d u d u ) = η ( z y ) w i = du du ) Szuaąc analogii pomiędzy wzorami opisuącymi oretę wag w warstwie ściowe i warstwach urytych moŝna oreślić błąd popełniany poprzez neurony analizowane warstwy uryte: m d u ) = ( z y ) i = du Błąd ten moŝna uzaleŝnić bezpośrednio od błędu popełnianego poprzez neurony warstwy ściowe: m d u ) = = du Równanie powyŝsze pozwala wyznaczyć błąd dla dowolnego neuronu warstwy uryte w funci błędów neuronów, tóre on pobudza. Innymi słowy umoŝliwia przenoszenie błędu wstecz (od warstwy ściowe u weściowe). MoŜna więc dla aŝdego neuronu sieci oreślić błąd, ai on popełnia, a est to niezbędne, eŝeli chce się zastosować regułę Delty. Podsumowuąc, algorytm wsteczne propagaci błędu moŝna zapisać następuąco:. Wygeneru losowo wetory wag. 2. Poda wybrany wzorzec na weście sieci. 3. Wyznacz odpowiedzi wszystich neuronów ściowych sieci: y f l = w = y w w 4. Oblicz błędy wszystich neuronów warstwy ściowe: = z y 5. Oblicz błędy w warstwach urytych (pamiętaąc, Ŝe, aby wyznaczyć błąd w warstwie h -, onieczna est znaomość błędu w warstwie po nie następuące - h): 6. Zmodyfiu wagi wg zaleŝności: h d u ) h = h du = w + η l = h w h h h h i i i 7. JeŜeli wartość funci celu est zbyt duŝa wróć do puntu 2. w W pratyce metoda wsteczne propagaci błędu oazue się bardzo suteczna, niestety, charateryzue się ona długim czasem uczenia. Przebieg procesu uczenia sieci bacpropagation silnie zaleŝy od wielości współczynnia uczenia η, zbyt duŝa y h x we i
Nowoczesne technii informatyczne - Ćwiczenie 5: UCZENIE WIELOWARSTWOWEJ SIECI JEDNOKIERUNKOWEJ str. 5 ego wartość prowadzi często do rozbieŝności tego procesu, a zbyt mała bardzo go wydłuŝa. Niestety, nie ma reguł tóre potrafiłyby oreślić precyzynie ego wartość. Dobór architetury sieci i danych uczących Dobór odpowiednie strutury wielowarstwowe sieci neuronowe oraz dobór danych do e uczenia są podstawowymi zadaniami, z aimi styamy się chcąc wyorzystać sieci neuronowe do rozwiązywania aiegoolwie problemu. Zaproetowana sieć musi być dopasowana do zadania, tóre ma rozwiązywać, dane uczące muszą zawierać wszystie cechy charaterystyczne dla problemu (populaci generalne). W pratyce oznacza to wybór liczby warstw sieci i ilości neuronów w tych warstwach oraz ustalenie długości ciągu uczącego. Dodatowo trzeba odpowiedzieć na pytanie a długo sieć naleŝy uczyć. Rozwiązanie nietórych z tych problemów w pewnych przypadach moŝna wyonać w oparciu o twierdzenia matematyczne, inne moŝna edynie oszacować. Dobór danych uczących Naczęstszym stwierdzeniem przy doborze długości ciągu uczącego est oreślenie, iŝ powinien on być reprezentatywny, tzn. powinien dobrze oddawać charaterystyczne cechy analizowanych danych. Dzięi temu sieć nauczona na taim ciągu wyorzystuąc zdolność do generalizaci powinna charateryzować się wysoą efetywnością pracy. Istniee wiele sposobów liczbowe oceny generalizaci, e miarą moŝe być np.: średnia liczba alternatywnych generalizaci zbioru treningowego, prawdopodobieństwo, Ŝe trenowana sieć generue prawidłowy sygnał ściowy dla losowo wybranego weścia w sensie średnim, prawdopodobieństwo, Ŝe trenowana sieć generue w nagorszym przypadu prawidłowy sygnał ściowy dla losowo wybranego weścia. Liczba warstw urytych Sieć wielowarstwowa moŝe posiadać teoretycznie ila lub nawet ilanaście warstw urytych; w pratyce edna stosue się sieci z edną a rzadzie dwoma warstwami urytymi. O tym, iŝ dwie warstwy uryte wystarczaą, świadczą analizy matematyów zamuących się aprosymacą funci wielu zmiennych. NaleŜy zauwaŝyć edynie, Ŝe sztuczna sieć neuronowa pełni funcę uładu aprosymuącego dane uczące. Proces uczenia zapewnia dobór współczynniów te funci aprosymuące (są to wetory wag poszczególnych neuronów). Na etapie odtwarzania przy ustalonych wartościach wag, następue edynie proste obliczanie wartości funci aprosymuące. W myśl twierdzenia Kołmogorowa aprosymaca dowolne funci ciągłe est moŝliwa przy uŝyciu sieci z edną warstwą urytą, a w celu aprosymaci funci nieciągłe onieczne est uŝycie dwóch warstw urytych. Oczywiście przytoczone twierdzenie stawia tylo minimalne waruni na liczbę warstw sieci gwarantuącą rozwiązanie. Zastosowanie więc więsze liczby niŝ wyniaąca z twierdzenia est dopuszczalne, ale naleŝy pamiętać, Ŝe aŝda dodatowa warstwa mocno wydłuŝa czas uczenia sieci, a ponadto wzrasta liczba minimów loalnych, w tórych sieć moŝe utnąć podczas procesu uczenia. JeŜeli edna uczenie sieci o liczbie warstw dobrane ta, aby spełnić minimum postawione przez twierdzenie Kołmogorowa przebiega źle, to nie pozostae nic innego a dołoŝyć oleną warstwę urytą. Oczywiście dołoŝenie
Nowoczesne technii informatyczne - Ćwiczenie 5: UCZENIE WIELOWARSTWOWEJ SIECI JEDNOKIERUNKOWEJ str. 6 olene warstwy pozwala naczęście zreduować liczbę neuronów w warstwie uryte uŝ istnieące. Rozmiary warstw sieci Ustalenie ilości neuronów w warstwach weściowe i ściowe sztuczne sieci neuronowe nie stwarza Ŝadnych problemów. Liczba neuronów w warstwie weściowe est zdeterminowana przez długość wetora weściowego, analogicznie liczba neuronów w warstwie ściowe powinna być równa ilości rozróŝnianych przez sieć las. Ustalenie odpowiednie liczby neuronów w warstwie uryte nie est, niestety, ta łatwe a w przypadu warstwy weściowe bądź teŝ ściowe, a est to eden z waŝnieszych czynniów wpływaących na efetywność pracy sieci i przebieg procesu uczenia. UŜycie za małe ich liczby pozbawi sieć środów niezbędnych do rozwiązania problemu. UŜycie zbyt wielu zwięszy czas uczenia i moŝe przynieść efet tzw. nadmiernego dopasowania, gdyŝ sieć będzie się uczyć nieistotnych cech zbioru uczącego, tóre są niewaŝne w populaci generalne. Zadaniem sieci est podzielenie r - wymiarowe przestrzeni obrazów na s - separowalnych obszarów. W przypadu sieci z edną warstwą urytą zbudowaną z l - neuronów, zadanie to spoczywa właśnie na te warstwie. Liczbę neuronów warstwy uryte moŝna wówczas wyznaczyć z zaleŝności: l = log2 Innym sposobem przybliŝonego oreślenia niezbędne liczby neuronów w warstwie uryte moŝe być tzw. reguła piramidy geometryczne, tóra mówi, Ŝe dla wielu pratycznych zastosowań sieci liczba neuronów w warstwach tworzy ształt piramidy, przy czym liczba neuronów malee od weścia w ierunu ścia. Oznacza to, Ŝe neurony poszczególnych warstw tworzą ciąg geometryczny, czyli dla sieci o n - weściach, m - ściach z edną warstwą urytą, liczbę neuronów w te warstwie moŝna wyznaczyć z zaleŝności: s l = nm Doświadczenie poazue, Ŝe obie powyŝsze zaleŝności moŝna tratować ao wzory oreślaące minimalną liczbę neuronów przy, tóre sieć się uczy zadanego problemu. Ja długo uczyć sieć? Inny problem to wpływ sposobu i czasu uczenia na zdolność uogólniania sieci. W ogólnym przypadu wraz z upływem czasu błąd uczenia malee i błąd testowania równieŝ. Taa sytuaca trwa zwyle do pewnego momentu uczenia, poczynaąc od tórego błąd testowania bądź pozostae stały, bądź zaczyna nieznacznie rosnąć, chociaŝ błąd uczenia nadal malee. Literatura podae, iŝ wynia to zwyle z ograniczone liczby próbe uczących. W pewnym momencie procesu uczenia - zwyle w ego ońcowych fazach - sieć zaczyna uczyć się pewnych cech charaterystycznych dla elementów zbioru uczącego, a nieistotnych w populaci generalne i powodue to wzrost błędu testowania. Tendence te są tym więsze im więsza nadmiarowość wag występue w sieci. Zaradzić temu moŝna reduuąc liczbę neuronów w warstwie uryte do tego stopnia, aŝ sieć utraci zdolność uczenia się szczegółów albo zwięszaąc rozmiar ciągu uczącego.
Nowoczesne technii informatyczne - Ćwiczenie 5: UCZENIE WIELOWARSTWOWEJ SIECI JEDNOKIERUNKOWEJ str. 7 PRZEBIEG ĆWICZENIA Zadanie Opracować srypt tworzący ednoierunową sieć neuronową złoŝoną z 2 neuronów z sigmoidalną funcą prześcia w warstwie uryte oraz z neuronu liniowego w warstwie ściowe i przeprowadzić e uczenie metodą wsteczne propagaci błędu ( traingd ) sieci reguł brami XOR - P=[ 0 0 ; 0 0]; T=[0 0]; Ustalić parametr oreślaący liczbę epo uczenia na 000, wartość współczynnia uczenia na 0. oraz mas. dopuszczalna wartość funci celu na 0.0000 Dla nauczone sieci zasymulować e pracę. Somentować uzysane rezultaty. Zadanie 2 Dla przyładu rozwiązanego w zadaniu sprawdzić wpływ liczby neuronów (3 róŝne wartości) w warstwie uryte oraz wartości współczynnia uczenia (3 róŝne wartości róŝniące się o eden rząd) na przebieg procesu uczenia. Wyonać symulace dla dwóch ombinaci funci prześcia neuronów (np.: sigmoidalna+liniowa, tangensoidalna+liniowa itp.).