Obliczenia neuronowe (wprowadzenie) Ryszard Tadeusiewicz Laboratorium Biocybernetyki Katedra Automatyki AGH
Oto przykładowa sieć neuronowa Dane reprezentujące zadanie do wykonania Wiedza zdobyta w czasie uczenia Wynik reprezentujący rozwiązanie zadania
Zacznijmy jednak od formalnej definicji: sieć neuronowa to urządzenie techniczne lub algorytm, którego działanie wzorowane jest w pewnym stopniu na działaniu sieci biologicznych struktur nerwowych. Zazwyczaj składa się z systemu połączonych ze sobą elementów naśladujących biologiczne neurony, z których każdy posiada pewną liczbę wejść i jedno wyjście
Wyjścia z poszczególnych elementów są na ogół połączone z wejściami innych tworząc sieć. Niektóre elementy wyprowadzają sygnały wyjściowe na zewnątrz i to one dostarczają odpowiedzi na zadanie, które rozwiązuje sieć. Inne elementy przyjmują na swych wejściach sygnały z zewnątrz i to właśnie one służą do stawiania zadań, które sieć ma rozwiązywać.
Zależność pomiędzy wejściami i wyjściami jest modyfikowana dla każdego elementu z osobna w procesie tzw. uczenia sieci. Nauczona sieć przetwarza informację poprzez jej obróbkę głównie na złączach między elementami, tak zwanych synapsach. Pomocniczą rolę odgrywa generowanie sygnałów w poszczególnych elementach oraz ich przesyłanie pomiędzy elementami.
Zależność pomiędzy sygnałami wejściowymi a wyjściowymi w całej sieci jest następnie interpretowana jako rozwiązanie postawionego sieci problemu.
Wykład nie wyczerpie wszystkich zagadnień. Jak znaleźć książkę o sieciach neuronowych w wirtualnej bibliotece?
http://abc.agh.edu.pl
Dlaczego warto się interesować sieciami neuronowymi?
Na jednej z pierwszych konferencji naukowych poświęconych sieciom neuronowym (w 1995 roku) jeden z amerykańskich badaczy pokazał taki slajd: Uznałem, że to dobry pomysł i spróbowałem kontynuować ten wykres
Wielkość obrotów oprogramowaniem dla tworzenia sieci neuronowych (w mld USD) 200 150 100 50 0 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006
Jak widać idea obliczeń neuronowych staje się coraz popularniejsza
Przykładowe narzędzia do budowy sieci neuronowych
Zaletą sieci neuronowych jest to, że można do nich wprowadzać dowolne, nie uporządkowane dane, a po nauczeniu sieci na jej wyjściu dostaje się zwykle porządny i użyteczny wynik
Cechy charakterystyczne zadań, przy rozwiązywaniu których sieci neuronowe mają przewagę nad innymi technikami: Nieznajomość reguł rządzących problemem Modele statystyczne Systemy ekspertowe Metody dedukcyjne Dokładne algorytmy Częściowa znajomość reguł Średnia złożoność Pełna znajomość reguł Mała i średnia złożoność Częściowy lub całkowity brak znajomości reguł Duża złożoność Sieci neuronowe Metody indukcyjne Stopień złożoności problemu
Sieci neuronowe są narzędziem którego zakres zastosowań stale się poszerza. Należą do tego zakresu między innymi takie zadania, jak: Tworzenie modeli złożonych systemów Automatyczne metody przetwarzania, analizy i klasyfikacji złożonych sygnałów Predykcja szeregów czasowych i liczne, liczne inne...
Czasopisma, w których obecnie można znaleźć najnowsze i najwartościowsze wiadomości dotyczące sieci neuronowych Obydwa te pisma są wydawane w USA, ale ja jestem członkiem redakcji w obu tych periodykach
Zasadnicze zalety, warunkujące używanie sieci neuronowych są następujące: Brak konieczności jawnego formułowania jakichkolwiek założeń dla modeli Możliwość rozwiązywania problemów nie mających dobrej definicji formalnej Możliwość zastępowania procesu programowania oraz ręcznego tworzenia modelu - procesem uczenia sieci Możliwość pracy współbieżnej
Do realizacji współbieżnych obliczeń w dużych sieciach neuronowych stosuje się dziś specjalne systemy mikroelektroniczne oraz klastry komputerowe
HAGEN - The Heidelberg AnaloG Evolvable Neural Network
Szczegóły rozwiązania technicznego
The EvoOpt Mixed-Signal Neural Network Chip
Nad strukturami neuronowymi pracują największe firmy hardware owe
Schemat funkcjonalny neuronowego chipu Intela
Linux cluster CCortex with 1,000 processors for modeling of neural system with 20 billion neurons and 20 trillion connections. Parameters: 1 terabyte of RAM, and 200 terabytes of storage
Sieci neuronowe są wzorowane na faktach, które udało się ustalić w trakcie wieloletnich badań ludzkiego mózgu
Dlatego o sieciach neuronowych często mówi się: Neurokomputery
Ta nazwa jest ze wszech miar uzasadniona, ponieważ w systemach tych często sprzęga się bezpośrednio elementy elektroniczne z żywymi neuronami
Najczęściej jednak sieci neuronowe wykonywane są jako programy symulujące ich funkcjonowanie w zwykłych komputerach
Mam program, więc działam jak sieć neuronowa Mogę wykonywać wszelkie obliczenia tak jakbym miał specjalnie zbudowaną sieć!
Przykład programu symulującego sieci neuronowe
Jak jest zbudowana i jak działa sieć neuronowa?
Twórcy sieci neuronowych wykorzystują wiedzę neuroanatomiczną i neurofizjologiczną, ale modelują rzeczywiste struktury nerwowe w sposób maksymalnie uproszczony
Początkowo anatomowie dzielili mózg tak, jak kolonizatorzy Afrykę według arbitralnie wyznaczanych granic, bez zwracania uwagi na to, co było w środku
Potem zaczęto nieco subtelniej wyodrębniać anatomiczne elementy mózgu
Mózg widziany od podstawy
Przedstawione wyżej obszary były wyodrębnione na podstawie obserwacji i analizy zewnętrznej budowy mózgu. Natomiast jeszcze w ostatnich latach XIX wieku podjęto próby określenia struktury mózgu na poziomie budowy elementów wewnętrznych czyli komórek i ich połączeń.
W efekcie tych prac powstała cytoarchitektoniczna mapa Brodmana
Ludzie już dawno poznali i opisali strukturę mózgu, jednak przez długi czas niemożliwe było ustalenie, jak to działa?
Procesy kognitywne i mentalne, na których modelowaniu opiera się budowa sieci neuronowych można badać i opisywać w różnych skalach
Mózg jest trudny do badania, bo składa się z niewiarygodnie wielkie liczby elementów: 100 000 000 000 neuronów!
Za pomocą metod PET można pokazać aktywizację poszczególnych części mózgu przy wykonywaniu poszczególnych czynności Mózg podczas odpoczynku Sygnał Rozwiązywanie optyczny akustyczny - rysunek zadania - muzyka matematycznego
Najwięcej informacji mamy na temat elementarnego procesora biologicznego, jakim jest neuron.
Schematyczny rysunek neuronu
Dwa rzeczywiste obrazy neuronów Oraz wizja graficzna na podstawie setek obrazów mikroskopowych
Zróżnicowanie wielkości i budowy rzeczywistych neuronów powoduje, że trudno jest mówić o czymś takim, jak typowy neuron
Mikroelektrody docierają w pobliże komórek nerwowych i rejestrują ich aktywność elektryczną
Potencjał czynnościowy Maksymalna częstotliwość impulsacji neuronów wynosi około 1 khz. 1 ms W praktyce rzadko spotyka się impulsację szybszą niż kilkaset herców.
Rejestracje aktywności elektrycznej różnych części neuronu
Matryca mikroelektrod stosowana do rejestrowania odpowiedzi z kory mózgowej badanego zwierzęcia
Propagacja impulsów elektrycznych we włóknach nerwowych jest dosyć powolna!
Nagrody Nobla związane z badaniami układu nerwowego, których wyniki wykorzystano w sieciach neuronowych: 1904 - Pavlov I.P. - teoria odruchów warunkowych 1906 - Golgi C., - badanie struktury układu nerwowego 1906 - Ramón Y Cajal S. - odkrycie, że mózg składa się z sieci oddzielnych neuronów 1920 - Krogh S.A. - opisanie funkcji regulacyjnych w organizmie 1932 Sherrington Ch. S. - badania sterowania nerwowego pracy mięśni 1936 Dale H., Hallett L.O. - odkrycie chemicznej transmisji impulsów nerwowych 1944 - Erlanger J., Gasser H. S. - procesy w pojedynczym włóknie nerwowym 1949 - Hess W.R. - odkrycie funkcji śródmózgowia 1963 - Eccles J.C., Hodgkin A.L., Huxley A.F. - mechanizm elektrycznej aktywności neuronu 1969 Granit R., Hartline H.K., Wald G. fizjologia widzenia 1970 Katz B., Von Euler U. - transmisja informacji humoralnej w komórkach nerwowych 1974 Claude A., De Duve Ch. - badania strukturalnej i funkcjonalnej organizacji komórki. 1977 Guillemin R., Schally A., Yalow R. - badania hormonów mózgu 1981 Sperry R. - odkrycia dotyczące funkcjonalnej specjalizacji półkul móżdżku 1981 Hubel D.H., Wiesel T. - odkrycie zasad przetwarzania informacji w systemie wzrokowym 1991 Neher E., Sakmann B. - funkcje kanałów jonowych w komórkach nerwowych Sieci neuronowe to efekt, a przyczyny to...
Elementy, z których buduje się neuronowy model
Budowa wiernego modelu nawet pojedynczego neuronu (komórki Purkinjego) jest bardzo kosztowna (de Schutter 05) Do zbudowania modelu użyto: 1600 kompartmentów 8021 modeli kanałów jonowych 10 typów różnych złożonych opisów matematycznych kanałów zależnych od napięcia 32000 równań różniczkowych! 19200 parametrów do oszacowania przy dostrajaniu modelu Opisu morfologii zrekonstruowanej za pomocą mikroskopu
Obrazy wyników symulacji komputerowej modelu komórki Purkinjego uzyskane w badaniach de Schuttera: u góry aktywność elektryczna symulowanej komórki, u dołu zjawiska biochemiczne (przepływ jonów wapnia
Najciekawsze procesy toczą się na złączach pomiędzy neuronami
Neuron - podstawowy element sieci x 1 w 1 x 2 w 2 Zadania??? s = g( w, x ) i i w i = 1,, n n Jak zróżnicować te sygnały? y = f ( s) y x n agregacja danych wejściowych obliczenie wartości funkcji aktywacji
Przy stosowaniu sieci neuronowych zasadnicze korzyści odnosi się z procesów uczenia zachodzących w obrębie synaps.
Budowa synapsy
Schemat funkcjonowania synapsy
Kryształy bardziej znanych neurotransmiterów pod mikroskopem i ich chemiczne wzory strukturalne
Budowa i własności sztucznych neuronów i sieci
Własności neuronu determinują: przyjęta agregacja danych wejściowych oraz założona funkcja wyjścia Agregacja liniowa n s i= 1 = w x i i neuron liniowy x 1 x 2 x n w 1 w 2 s g ( w, x ) i i w i = 1,, n n... = y y = s
W przypadku neuronu liniowego jego zachowanie daje się łatwo zinterpretować
Z neuronem liniowym (i z innymi neuronami budowanymi na jego bazie) związana jest jeszcze sprawa wyrazu wolnego w formule agregacji Czysta agregacja liniowa: x 0 1 w 0 n s i= 1 = w x i i ma wadę, polegającą na tym, że charakterystyka neuronu musi tu przechodzić przez początek układu x 1 x 2 x n w 1 s g ( w, x i i ) w n i = 1,, n w 2... = y y = s To nadal jest neuron liniowy! Żeby zachować liniową postać wzoru opisującego neuron dodaje się dodatkowe pseudo-wejście nazywane BIAS, które zawsze dostarcza sygnał 1 Bogatsze możliwości daje agregacja afiniczna (z wyrazem wolnym w formule): Wtedy agregacja jest nadal liniowa: s = s = n i= 1 n i= 0 w x i i w i x i + w 0
W przypadku neuronu nieliniowego nie jest tak łatwo, ponieważ zagregowany (w taki lub inny sposób) sygnał wejściowy może być przetworzony przy użyciu funkcji nieliniowej o teoretycznie dowolnym kształcie.
Własności neuronu determinują: przyjęta agregacja danych wejściowych oraz założona funkcja wyjścia n ---------------- Agregacja liniowa ---------- = w x -------------- neuron i i radialny liniowy s i= 1 neuron nieliniowy x 1 w 1 x 2 x n w 2 s = g ( w, x ) i i w i = 1,, n n... -------- y = s y = f ( s) y s n i= 1 ( ) 2 = w x i i Agregacja radialna
Warto odróżnić dwie nieliniowe charakterystyki neuronu: unipolarną (po lewej) i bipolarną (po prawej)
Funkcja przejścia wiąże zagregowane wejścia do neuronu z jego sygnałem wyjściowym
Różne przykładowe funkcje, wykorzystywane jako funkcje przejścia
Funkcje aktywacji neuronu może być dowolna, ale najczęściej stosowane są niżej podane kształty. 1,5 1 0,5 0 x -2,9-2,7-2,5-2,3-2,1-1,9-1,7-1,5-1,3-1,1-0,9-0,7-0,5-0,3-0,1 0,1 0,3 0,5 0,7 0,9 1,1 1,3 1,5 1,7 1,9 2,1 2,3 2,5 2,7 2,9 Liniowa -0,5 Sigmoidalna -1 Tangensoidalna -1,5 Gaussa
Wykres sigmoidy w zależności od parametru β β=0,5 β=1 β=2 1 y 0,8 0,6 0,4 0,2 S 0-10 -5 0 5 10 f ( s) = 1+ 1 exp( βs)
Funkcja tangens hiperboliczny ma praktycznie taki sam kształt, tylko jej wartości zmieniają się od -1 do +1, a nie od 0 do +1 jak w sigmoidzie +1 β=0,5 β=1 β=2 1 y 0,8 0,6 0,4 0,2-1 S 0-10 -5 0 5 10 exp( βs) exp( βs) f ( s) = tanh( βs) = exp( βs) + exp( βs)
Nieliniowe funkcje aktywacji też bywają różne:
Dobierając współczynniki wagowe wejść neuronu można wpływać na kształt jego nieliniowej charakterystyki!
Zapamiętajmy: Najczęściej wykorzystywany jest taki model neuronu: x 1 w 1 1.1 y:=1/(1+exp(-0.5*x)) x 2 x n w 2... w n n s i= 1 = w i x i 0.9 0.7 0.5 0.3 0.1 y -0.1-10 -5 0 5 10 Sieć zbudowana z takich neuronów nazywana jest zwykle MLP (Multi-Layer Perceptron)
Sztuczny neuron jest więc w sumie dosyć prostą strukturą, dzięki czemu stosunkowo łatwo jest stworzyć sieć takich elementów Sygnały wejściowe x x x 1 2 n w Synał wyjściowy 1 Zmienne w. 2.. "wagi" w n y
Bywały próby budowania sieci o architekturze ściśle dopasowanej do natury rozwiązywanego zadania (tutaj pokazana struktura sieci przeznaczona była do rozpoznawania kodów pocztowych na kopertach)
Nie zdało to jednak egzaminu i obecnie przy budowie sztucznych sieci neuronowych najczęściej przyjmuje się arbitralnie, że ich budowa jest złożona z warstw, podobnie jak na przykład struktury neuronowe zlokalizowane w siatkówce oka
Również w korze mózgowej daje się zaobserwować warstwowa budowa Kora wzrokowa Połączenia do i od poszczególnych warstw w mózgu
Warstwowość kory wzrokowej widać lepiej przy wyborze małych jej fragmentów
Schemat sztucznej sieci neuronowej (uproszczonej) Warstwa wejściowa Warstwa ukryta (jedna lub dwie) x 1 Warstwa wyjściowa y x 2 Działanie sieci zależy od: przyjętego modelu neuronu, topologii (struktury) sieci, wartości parametrów neuronu, ustalanych w wyniku uczenia
Poglądowe działanie sieci neuronowej
Początek działania sieci neuronowej wiąże się z pojawieniem się na jej wejściach sygnałów (czerwone kropki) niosących nowe zadanie do rozwiązania
Sygnały wejściowe (nie przetworzone w żaden sposób w warstwie wejściowej) są rozsyłane do wszystkich neuronów warstwy ukrytej
Po przetworzeniu sygnałów przez neurony warstwy ukrytej powstają sygnały pośrednie, kierowane do neuronów warstwy wyjściowej
Neurony warstwy wyjściowej korzystają ze wstępnie opracowanej informacji pochodzącej z warstwy ukrytej i obliczają końcowe wyniki, będące rozwiązaniem postawionego zadania
Zasadnicze zalety sieci neuronowych wiążą się z faktem, że mogą się one uczyć
Mechanizmy biochemiczne zaangażowane w proces zapamiętywania wiedzy są raczej skomplikowane
Dla uczenia sztucznych sieci neuronowych cała ta skomplikowana wiedza biochemiczna nie jest konieczna, bo praktyczne metody uczenia sieci oparte są na prostej intuicji: poszukiwania minimum funkcji błędu
Uczenie sieci neuronowej uczenie jest to w istocie iteracyjny proces estymacji optymalnych wartości parametrów sieci; początkowe wartości tych parametrów są zwykle wartościami losowymi; w trakcie uczenia sieci neuronowej prezentowane są przypadki uczące i w zależności od oceny reakcji sieci modyfikowane są jej parametry (najczęściej wagi synaptyczne). Nauczyciel Ewa Zbiór uczący
Ilustracja procesu uczenia w sieci Istota procesu uczenia polega na modyfikacji wag połączeń neuronów W wyniku tego sygnał wyjściowy sieci upodabnia się do zbioru uczącego Można to obserwować biorąc pod uwagę zmiany błędu uczenia
Przykładowy zbiór uczący pozwalający rozwiązać problem regresyjny: Jak duże będzie zanieczyszczenie powietrza w różnych miastach? zmienne objaśniające: temperatura, liczba zakładów przemysłowych, liczba ludności, prędkość wiatru, wielkość opadu, liczba dni deszczowych zmienna objaśniana: Stężenie SO 2 w powietrzu dana nieistotna: nazwa miasta
Uczenie sieci polega na takim doborze jej parametrów, żeby zminimalizować błąd, jaki popełnia sieć można to zrobić przetwarzając dane ze zbioru uczącego Na wejście sieci podawane są dane wskazane w zbiorze jako wejściowe Oto sieć neuronowa, którą trzeba uczyć W zbiorze uczącym podane są poprawne wartości rozwiązań dla tych danych Sieć na tej podstawie oblicza i podaje swoje rozwiązanie (na ogół początkowo błędne)
Uczenie sieci polega teraz na takim doborze jej parametrów, żeby zminimalizować błąd, jaki popełnia sieć przetwarzając dane ze zbioru uczącego Porównanie zawartej w danych wzorcowej odpowiedzi z wynikiem obliczonym przez sieć daje błąd Błąd Na podstawie błędu zmienia się wagi wszystkich neuronów w sieci, tak żeby malał Robi to algorytm uczenia
Wielkość błędu popełnianego przez sieć E sieć popełnia taki duży błąd sieć popełnia taki mały błąd a przy takim zestawie wag Drugi współczynnik wagowy w 2 przy takim zestawie wag Pierwszy współczynnik wagowy w 1
Algorytm wstecznej propagacji błędów polega na szukaniu kierunku spadku E i na takim zmienianiu wartości wag w 1, w 2, żeby zmniejszać wartość funkcji błędu w kierunku jej najszybszego spadku Odpowiadająca mu wartość błędu E Kierunek najszybszego spadku błędu Przemieszczenie po powierzchni błędu Stary (gorszy) wektor wag Migracja w przestrzeni wag Nowy (lepszy) wektor wag
w ( ( ) ) w ( p+ 1) = w ( p) η E p p η - współczynnik uczenia Poszukiwanie (i znajdowanie!) minimum funkcji błędu metodą wyznaczania w każdym kolejnym kroku kierunku najszybszego spadku
Uczenie sieci neuronowej jako wędrówka ślepego kangura szukającego domu Kangur zna tylko lokalne nachylenie zbocza Jeśli wykona za mały skok to będzie do domu wracał długo Jeśli wykona za duży skok to może wpaść do przepaści Jeśli mu się uda, to może pokonać przeszkody i znacząco się zbliżyć do celu
Problem doboru wartości współczynnika uczenia
Powierzchnie błędów bywają dosyć skomplikowane!
Dlatego proces uczenia może napotykać na różne przeszkody:
W celu przezwyciężenia wad algorytmu backpropagation, takich jak: powolność algorytmu, tendencja do zatrzymywania się algorytmu w minimach lokalnych funkcji E, najczęściej stosuje się dodatkowy składnik nazywany pędem (momentum): p = E ( ) w p + w p 1 w η µ gdzie µ jest współczynnikiem momentum, określającym wpływ poprzedniej modyfikacji wektora wag na aktualny wektor poprawek.
Dla ustabilizowania procesu uczenia stosuje się współczynnik wnoszący bezwładność zwany momentum Lekkie małe saneczki utkną w pierwszym dołku na stoku Rozpędzony masywny bojer ześlizgnie się aż na sam dół!
Zmiany współczynników wag w sieci podczas uczenia bez współczynnika momentum (po lewej) i ze współczynnikiem momentum równym 0.5 (po prawej) dla tej samej ilości kroków Momentu przyspiesza i stabilizuje uczenie!
Krzyżyki oznaczają elementy zbioru uczącego Linia ciągła prezentuje wynik działania sieci Przykładowy przebieg procesu uczenia Błąd SSE Start procesu uczenia wszystkie wagi są przypadkowe Ilość epok uczenia
W trakcie uczenia sieci błąd przez nią popełniany zmienia się w charakterystyczny i zwykle podobny sposób: szybko maleje na początku procesu i znacznie wolniej później. suma kwadratów błędów 1000 900 800 700 600 500 400 300 200 100 0 Dla tej samej sieci i dla tych samych brak danych uczących przebiegi procesu uczenia przesunięcie mogą się nieco różnić jeden od drugiego. linie Zależy to głównie od tego, jak wybrany został punkt startowy, to znaczy wartości wag na początku procesu uczenia. 0 50 100 150 200 250 300 350 400 450 czas uczenia (w epokach)
W dalszych przykładach będziemy używali funkcji błędu mającej jedno minimum lokalne i jedno globalne Oto wykres tej funkcji... oraz jej mapa z poziomicami
Wynik uczenia zależy od wyboru początkowych wartości wag (punktu startowego algorytmu) Trafione minimum globalne! Trafione minimum lokalne! Jest to ważne dla praktyki, ponieważ podczas uczenia zawsze zagrażają minima lokalne funkcji błędu, w których rozwiązanie problemu jest bardzo niedoskonałe!
Utknięcie procesu uczenia w pułapce minimum lokalnego wyjaśnia, dlaczego czasem nauczona sieć dopasowuje swoje działanie tylko do części danych
Minimum lokalne jako pułapka w procesie uczenia Ucieczka z lokalnego minimum jest trudna, bo wymaga chwilowego pogorszenia jakości działania sieci Minimum lokalne, oznaczające niedoskonałe dopasowanie sieci do danych Minimum globalne, oznaczające najlepsze możliwe dopasowanie sieci do danych
Zwykle kilka prób uczenia sieci startujących z różnych punktów początkowych pozwala wykryć, gdzie jest poszukiwane minimum globalne
Startując z różnych punktów docieramy do różnych minimów
Kiedy zakończyć uczenie? Celem użycia sieci jest odtworzenie pewnej nieznanej zależności, która ma funkcjonować dla wszystkich danych należących do pewnego zbioru R. R Z Zależność tę staramy się zamodelować w sieci neuronowej, mając do dyspozycji wyłącznie pewien zasób danych Z. W danych Z znane są zarówno dane wejściowe do budowanego modelu neuronowego, jak i dane wyjściowe. Są one wzorcem do którego dopasowywać będziemy parametry neuronowego modelu.
Niebezpieczeństwo, które nam zagraża, polega na tym, że podczas uczenia sieci może dojść do nadmiernego dopasowania modelu do właściwości danych ze zbioru Z, nie koniecznie reprezentujących wszystkie dane w zbiorze R. T R V Z L Żeby tego uniknąć dokonujemy podziału zasobu Z na trzy części: L są to dane uczące, które używamy do aktywnego uczenia sieci. V są to dane walidacyjne, które będą użyte do wykrycia zagrożenia przeuczeniem T są to dane testowe, które będą użyte do końcowego sprawdzenia sieci
Przeuczenie!
Dzięki użyciu zbioru danych walidacyjnych można wykryć moment przeuczenia sieci. 1 0.8 0.6 Tu zaczyna się przeuczenie 0.4 0.2 0 0 200 400 600 800 1000 Przerwać uczenie! Błąd dla zbioru uczącego Błąd dla zbioru walidacyjnego
Na tych samych danych uczących sieć może zbudować model dobrze albo źle generalizujący Model zachowujący dobrą zdolność generalizacji Model który utracił zdolność generalizacji
Jedną z głównych przyczyn złej generalizacji jest niewłaściwa struktura sieci za bardzo lub za mało skomplikowana Strukturę sieci trzeba tak dobrać, żeby otrzymać aproksymację danych uczących nie za bardzo skomplikowaną, ale i nie nazbyt uproszczoną Dobra Zbyt skomplikowana Zbyt prosta
Backpropagation jest generalnie metodą dosyć wolną w działaniu:
Niektórych badaczy to ogromnie denerwuje, więc na jednej konferencji naukowej rozprowadzane były takie ulotki:
Quickprop
Algorytm Levenberga-Marquardta
Technika gradientów sprzężonych działa oczywiście szybciej, niż metody oparte na pierwszych pochodnych: