Post on 28-Feb-2019
Obliczenia neuronowe
(wprowadzenie) Ryszard Tadeusiewicz
Laboratorium Biocybernetyki Katedra Automatyki AGH
Oto przykładowa sieć neuronowa
Dane reprezentujące
zadanie do wykonania
Wynik reprezentujący
rozwiązanie zadania
Wie
dza
zdob
yta
w c
zasie
ucz
enia
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
0
50
100
150
200
1990
19
91
1992
19
93
1994
19
95
1996
19
97
1998
19
99
2000
20
01
2002
20
03
2004
20
05
2006
Wielkość obrotów oprogramowaniem dla tworzenia sieci neuronowych (w mld USD)
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:
Nieznajom
ość
regu
ł rzą
dząc
ych
prob
lem
em
Stopień złożoności problemu
Pełna znajomość reguł Mała i średnia złożoność
Częściowa znajomość reguł Średnia złożoność
Częściowy lub całkowity brak znajomości reguł
Duża złożoność
Dokładne algorytmy
Modele statystyczne Systemy ekspertowe Metody dedukcyjne
Sieci neuronowe
Metody indukcyjne
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
Neuro-komputery
Dlatego o sieciach neuronowych często mówi się:
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!
Mózg podczas odpoczynku Sygnał akustyczny - muzyka Sygnał optyczny - rysunek Rozwiązywanie zadania matematycznego
Za pomocą metod PET można pokazać aktywizację poszczególnych części mózgu przy wykonywaniu
poszczególnych czynności
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
1 ms
Maksymalna częstotliwość
impulsacji neuronów wynosi
około 1 kHz.
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!
• 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
Nagrody Nobla związane z badaniami układu nerwowego, których wyniki wykorzystano w sieciach neuronowych:
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
( )nixwgs ii
,,1,
== ( )sfy =
y
agregacja danych wejściowych
obliczenie wartości funkcji aktywacji
Zadania ??? Jak zróżnicować te sygnały?
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
x1
x2
xn
w1
w2
wn
( )nixwgs ii
,,1,
== y
∑==
n
iii xws
1neuron liniowy
y = s ...
Agregacja liniowa
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
x1
x2
xn
w1
w2
wn
( )nixwgs ii
,,1,
== y
∑==
n
iii xws
1
To nadal jest neuron liniowy!
y = s ...
Czysta agregacja liniowa: ma wadę, polegającą na tym, że charakterystyka neuronu musi tu przechodzić przez początek układu
Bogatsze możliwości daje agregacja afiniczna (z wyrazem wolnym w formule):
∑=
+=n
iii wxws
10Żeby zachować liniową postać
wzoru opisującego neuron dodaje się dodatkowe pseudo-wejście nazywane BIAS, które zawsze dostarcza sygnał ≡ 1
x0 ≡ 1 w0
Wtedy agregacja jest nadal liniowa:
∑=
=n
iii xws
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
x1
x2
xn
w1
w2
wn
( )nixwgs ii
,,1,
==
( )sfy =
y
∑==
n
iii xws
1
( )2
1∑ −==
n
iii xws
neuron liniowy
Agregacja radialna
neuron nieliniowy --------------
y = s --------
----------
...
Agregacja liniowa ---------------- neuron radialny
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
0,5
1
1,5
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
Sigmoidalna
Tangensoidalna
Gaussa
Wykres sigmoidy w zależności od parametru β
0
0,2
0,4
0,6
0,8
1
-10 -5 0 5 10
S
yβ=0,5β=1β=2
)exp(11)(
ssf
β−+=
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
0
0,2
0,4
0,6
0,8
1
-10 -5 0 5 10
S
yβ=0,5β=1β=2
)exp()exp()exp()exp()tanh()(
ssssssf
βββββ
−+−−
==
+1
-1
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 ∑==
n
iii xws
1...
y:=1/(1+exp(-0.5*x))
-0.1
0.1
0.3
0.5
0.7
0.9
1.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
xx
xy
1
2
n
...
Synał wyjściowy
Sygnaływejściowe
ww
w
1
2
n
Zmienne
"wagi"
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
Połączenia do i od poszczególnych warstw w mózgu
Kora wzrokowa
Warstwowość kory wzrokowej widać lepiej przy wyborze małych jej fragmentów
Schemat sztucznej sieci neuronowej (uproszczonej)
x1
x2
y
Działanie sieci zależy od: •przyjętego modelu neuronu, •topologii (struktury) sieci, •wartości parametrów neuronu, ustalanych w wyniku uczenia
Warstwa wejściowa Warstwa ukryta (jedna lub dwie)
Warstwa wyjściowa
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).
Ewa
„Nauczyciel”
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
Na wejście sieci podawane są dane wskazane w zbiorze jako wejściowe
Sieć na tej podstawie oblicza i podaje swoje rozwiązanie (na ogół początkowo błędne)
W zbiorze uczącym podane są poprawne wartości rozwiązań dla tych danych
można to zrobić przetwarzając dane ze zbioru uczącego
Oto sieć neuronowa, którą trzeba uczyć
Uczenie sieci polega na takim doborze jej parametrów, żeby zminimalizować błąd, jaki popełnia sieć
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
Błąd
Robi to algorytm uczenia
Na podstawie błędu zmienia się wagi wszystkich neuronów w sieci, tak żeby malał
Porównanie zawartej w danych wzorcowej
odpowiedzi z wynikiem obliczonym
przez sieć daje błąd
Pierwszy współczynnik wagowy w1
Drugi współczynnik wagowy w2
Wielkość błędu popełnianego
przez sieć E
przy takim zestawie wag
sieć popełnia taki duży błąd
sieć popełnia taki mały błąd
a przy takim zestawie wag
E
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
Nowy (lepszy) wektor wag
Stary (gorszy) wektor wag
Odpowiadająca mu wartość błędu
Kierunek najszybszego spadku błędu
Przemieszczenie po powierzchni błędu
Migracja w przestrzeni
wag
Poszukiwanie (i znajdowanie!) minimum funkcji
błędu metodą wyznaczania w
każdym kolejnym kroku kierunku
najszybszego spadku
( ))()()1( pp
pp E www ∇−=+ η
η - współczynnik uczenia
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):
( ) 1−∆+∇−=∆ ppp E www µη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!
Przykładowy przebieg procesu
uczenia
Krzyżyki oznaczają elementy zbioru uczącego
Linia ciągła prezentuje wynik działania sieci
Ilość epok uczenia
Błąd SSE
Start procesu uczenia wszystkie wagi są
przypadkowe
0100200300400500600700800900
1000
0 50 100 150 200 250 300 350 400 450
czas uczenia (w epokach)
sum
a kw
adra
tów
błę
dów
brak
przesunięcie
linie
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.
Dla tej samej sieci i dla tych samych danych uczących przebiegi procesu uczenia mogą się nieco różnić jeden od drugiego.
Zależy to głównie od tego, jak wybrany został punkt startowy, to znaczy wartości wag na
początku procesu uczenia.
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)
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!
Trafione minimum globalne!
Trafione minimum lokalne!
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, 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
Minimum lokalne jako pułapka w procesie uczenia
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?
R
Celem użycia sieci jest odtworzenie pewnej nieznanej zależności, która ma funkcjonować dla wszystkich danych należących do pewnego zbioru R.
Zależność tę staramy się zamodelować w sieci neuronowej, mając do dyspozycji wyłącznie
pewien zasób danych Z. 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.
R Żeby tego uniknąć dokonujemy podziału
zasobu Z na trzy części: Z 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
L
T są to dane testowe, które będą użyte do końcowego sprawdzenia sieci
V T
Przeuczenie!
Dzięki użyciu zbioru danych walidacyjnych można wykryć moment „przeuczenia” sieci.
0
0.2
0.4
0.6
0.8
1
0 200 400 600 800 1000
Błąd dla zbioru uczącego
Błąd dla zbioru walidacyjnego
Tu zaczyna się przeuczenie
Przerwać uczenie!
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: