Sieci neuronowe (wprowadzenie)
Transkrypt
Sieci neuronowe (wprowadzenie)
Obliczenia neuronowe (wprowadzenie) Ryszard Tadeusiewicz Laboratorium Biocybernetyki Katedra Automatyki AGH Dane reprezentujące zadanie do wykonania Wiedza zdobyta w czasie uczenia Oto przykładowa sieć neuronowa 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 2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 1995 1994 1993 1992 1991 0 1990 50 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 Nieznajomość reguł rządzących problemem Cechy charakterystyczne zadań, przy rozwiązywaniu których sieci neuronowe mają przewagę nad innymi technikami: Modele statystyczne Systemy ekspertowe Metody dedukcyjne Częściowy lub całkowity brak znajomości reguł Duża złożoność Dokładne Częściowa znajomość reguł Średnia złożoność algorytmy Pełna znajomość reguł Mała i średnia 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 Rozwiązywanie zadania Sygnał optyczny - rysunek Sygnał akustyczny - 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 x1 x2 xn w1 w2 wn s Zadania =Jakg (zróżnicować wi , xi ) ??? te sygnały? y = f (s ) i = 1,, n agregacja danych wejściowych y 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 n Agregacja liniowa s = ∑wx i =1 x1 x2 xn i i neuron liniowy w1 w2 ... wn s = g (wi , xi ) i = 1,, n y=s y 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 n Czysta agregacja liniowa: x0 ≡ 1 x1 x2 xn s = ∑wx i =1 w0 w1 w2 ... wn i i s = g (wi , xi ) i = 1,, n ma wadę, polegającą na tym, że charakterystyka neuronu musi tu przechodzić przez początek układu 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): n s = ∑ wi xi + w0 i =1 n Wtedy agregacja nadal liniowa: jest s = ∑ wi xi i =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 neuron nieliniowy neuron radialny liniowy -------------- Agregacja liniowa ------------------------s = ∑wx i i =1 x1 x2 xn i w1 w2 ... wn s = g (wi , xi ) i = 1,, n -------y=s y = f (s ) s = ∑ (w − x ) 2 n i =1 i i Agregacja radialna y 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 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 x 0 Liniowa -0,5 Sigmoidalna -1 -1,5 Tangensoidalna 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 1 f (s) = 1 + exp(− βs ) 5 10 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 -10 S 0 -5 0 5 exp( βs ) − exp(− βs ) f ( s ) = tanh( βs ) = exp( βs ) + exp(− βs ) 10 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: x1 x2 xn w1 w2 ... wn y:=1/(1+exp(-0.5*x)) 1.1 0.9 n s = ∑wx i =1 i y 0.7 0.5 i 0.3 0.1 -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 x1 x2 xn .. . w1 w2 wn Zmienne " wagi" Synał wyjściowy 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) Warstwa wyjściowa x1 y x2 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 SO2 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 W zbiorze uczącym podane są poprawne wartości rozwiązań dla tych danych Sieć na tej podstawie oblicza i podaje swoje Na wejście sieci podawane są dane rozwiązanie wskazane w zbiorze jako wejściowe (na ogół początkowo Oto sieć neuronowa, którą trzeba uczyć 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 w2 przy takim zestawie wag Pierwszy współczynnik wagowy w1 Algorytm wstecznej propagacji błędów polega na szukaniu kierunku spadku E i na takim zmienianiu wartości wag w1, w2, żeby zmniejszać wartość funkcji błędu w kierunku jej najszybszego spadku Kierunek najszybszego spadku błędu Odpowiadająca mu wartość błędu E Przemieszczenie po powierzchni błędu Stary (gorszy) wektor wag Migracja w przestrzeni wag Nowy (lepszy) wektor wag w ( p +1) =w ( p) ( − η ∇E p w η - współczynnik uczenia Poszukiwanie (i znajdowanie!) minimum funkcji błędu metodą wyznaczania w każdym kolejnym kroku kierunku najszybszego spadku ( p) ) 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): ( ) ∆w = −η∇E w + µ∆w gdzie µ jest współczynnikiem momentum, określającym p p p −1 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 suma kwadratów błędów 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. 1000 900 Dla tej samej sieci i dla tych samychbrak danych uczących przebiegi procesu uczenia przesunięcie mogą się linie nieco różnić jeden od drugiego. 800 700 600 Zależy to głównie od tego, jak wybrany został punkt startowy, to znaczy wartości wag na początku procesu uczenia. 500 400 300 200 100 0 0 50 100 150 200 250 300 czas uczenia (w epokach) 350 400 450 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 Minimum lokalne, oznaczające niedoskonałe dopasowanie sieci do danych Minimum globalne, oznaczające najlepsze możliwe dopasowanie sieci do danych Ucieczka z lokalnego minimum jest trudna, bo wymaga chwilowego pogorszenia jakości działania sieci 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 V Z R 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 Tu zaczyna się przeuczenie 0.8 0.6 0.4 0.2 0 0 Przerwać uczenie! 200 400 600 800 1000 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: