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: