Transcript KIP

KIP
Sztuczne sieci neuronowe
(SSN)
Sieć neuronowa – definicja
Jest to struktura fizyczna lub program
składające się z elementów zwanych
neuronami, pomiędzy którymi wymieniana
jest informacja. Zaprojektowana jest tak by
działaniem przypominać funkcjonowanie
mózgu człowieka. Jej celem jest
przetworzenie danych wejściowych w
użyteczne sygnały wyjściowe. Umiejętność tę
sieć zdobywa w procesie uczenia.
Podstawowe zalety sieci
neuronowych
1.
2.
Sieci nie trzeba programować –
nauczenie wykonywania określonych
zadań nie wymaga znania natury
fizycznej procesu
Obliczenia w sieciach neuronowych
wykonywane mogą być równolegle
(dotyczy sprzętowych sieci
neuronowych lub komputerów
wieloprocesorowych)
Dziedziny zastosowań SSN
1.
2.
3.
4.
5.
6.
Predykcja, czyli przewidywanie
sygnałów wyjściowych na podstawie
danych wzorcowych
Klasyfikacja i rozpoznawanie.
Kojarzenie danych.
Analiza danych .
Filtracja sygnałów.
Optymalizacja.
Przykładowe zastosowania
praktyczne SSN
Systemy rozpoznawania, mowy, obrazu – np.
w celu identyfikacji osób
Systemy diagnostyczne – klasyfikacja stanów
dynamicznych maszyn
Systemy telekomunikacyjne – optymalizacja
połączeń
Systemy informatyczne – kompresja, selekcja
danych, dynamiczne programowanie bez
użycia standardowych algorytmów
sekwencyjnych.
Planowanie – sieci interpretują zjawiska
stochastyczne, przewidywanie notowań
giełdowych, trendów w gospodarce oraz
zjawisk socjologicznych.
Systemy decyzyjne – pomagają podjąć
decyzje, jeżeli dysponujemy zbyt małą ilością
danych wejściowych
Sterowanie i regulacja – nowoczesne
systemy sterowania, z silnie nieliniowymi
zależnościami w obiektach regulacji.
Planowanie trajektorii manipulatorów i
kontrola nad prawidłowością ich
odwzorowania.
Analiza stanów naprężeń w konstrukcjach
maszyn
Sztuczny neuron
struktura oparta o budowę neuronu
mózgu człowieka
Sztuczny neuron
Budowa sztucznego neuronu wg.
McCullocha i Pittsa (1943)
x1
x2
x3
w1
w2
w3
xn
wn
w0

e (e)
y
Przetwarzanie informacji w neuronie
Neuron otrzymuje wiele sygnałów wejściowych i
wysyła jeden sygnał wyjściowy
Z każdym wejściem związana osobna waga
Sygnał po wejściu mnożony jest przez wagę i taki
podawany jest do dalszych obliczeń. Waga może
wzmocnić, stłumić lub nawet zmienić znak sygnału
Zmodyfikowane sygnały są sumowane dając łączne
pobudzenie neuronu (e)
Do takiej sumy dokłada się czasem sygnał
dodatkowy (w0), nazywane progiem (bias)
Utworzony wyżej sygnał może być od razu sygnałem
wyjściowym (ADALINE – ADAptive LINear Element)
lub przetwarzany specjalną funkcją stanowiąca
charakterystykę neuronu
Przykładowa struktura SSN
Sygnały wejściowe
neuron
neuron
neuron
neuron
neuron
neuron
neuron
warstwa wejściowa
pierwsza warstwa
ukryta
.....................................................
neuron
neuron
neuron
neuron
neuron
Sygnały wyjściowe
n-ta warstwa
ukryta
warstwa wyjściowa
Warstwy ukryte SSN
Są narzędziem pomagającym warstwie
wyjściowej w znalezieniu poprawnego
rozwiązania
Są dodatkową strukturą przetwarzająco dane
Pośredniczą między wejściem a wyjściem
sieci
Pozwalają rozwiązywać bardziej
skomplikowane problemy, których nie może
rozwiązać sieć jednowarstwowa
Klasy struktur SSN
1.
2.
Struktury nie zawierające sprzężeń
zwrotnych (feedforward), kierunek
przepływy sygnału jest ściśle
określony od wejścia do wyjścia
Struktury ze sprzężeniem zwrotnym,
tzw. sieci Hopfielda, sygnały z wyjścia
są podawane na wejście, tworzą
skomplikowane pętle.
Liniowe SSN
Nazywana MADLINE (Many ADALINEs)
Neurony sieci mają charakterystykę liniową,
czyli sygnał wyjściowy y neuronu o n
wejściach daje się obliczyć wzorem:
n
y   wi xi  WT X
i 1
Neuron liniowy wyróżnia wektory wejść
podobnych do własnego wektora wag
Wartości sygnałów wyjściowych nie są
ograniczone
Liniowe SSN
Sieci liniowe nadają się do
rozwiązywania zadań polegające na
znalezieniu liniowego odwzorowania
zbioru wejściowego X na wyjściowy Y
Sieci liniowe wykorzystuje się do:
Identyfikacji w oparciu o zestaw cech
 Filtracji sygnałów
 Transformacji sygnałów

Nieliniowe SSN
W sieciach nieliniowych pobudzenie
(stanowiące wyjście w przypadku
neuronu liniowego) jest modyfikowane
za pomocą specjalnie dobranych funkcji
n
e   wi xi  WT X
i 1
y   e
Funkcja (e) jest funkcją nieliniową
Nieliniowe SSN
Cechą wspólną większości stosowanych
funkcji jest ograniczenie sygnału wyjściowego
do zakresu <0, 1> (funkcja unipolarna) lub
<-1, 1> (funkcja bipolarna). Często
stosowane są następujące funkcje:
 Tangens hiperboliczny
1,5
1
0,5
0
-4
-3
-2
-1
0
-0,5
-1
-1,5
1
2
3
4
y  tanhe
Nieliniowe SSN

Funkcja signum:
1 gdy e  0

y  0 gdy e  0
 1 gdy e  0

1
0
-1
e
Nieliniowe SSN

Zmodyfikowana funkcja signum:
1 gdy e  0
y
 1 gdy e  0
1
-1
e
Nieliniowe SSN

Funkcja skoku jednostkowego:
1 gdy e  0
y
0 gdy e  0
1
0
e
Nieliniowe SSN

Funkcja perceptronowa:
e gdy e  0
y
0 gdy e  0
0
e
Nieliniowe SSN

Funkcja BSB (Brain State in a Box):
1 gdy e  1

y  e gdy - 1  e  1
 1 gdy e  1

1
0
-1
e
Etapy pracy SSN
Uczenie sieci – ustalają się wartości wag w
poszczególnych neuronach
Egzamin – przy ustalonych wagach sieć
generuje odpowiedzi dla zadanych danych
wejściowych i porównuje się z pożądanymi
odpowiedziami.
Praktyczne wykorzystanie - wykorzystuje się
zdolność do uogólniania czyli sieć potrafi
znaleźć rozwiązanie także dla danych
wejściowych nie prezentowanych w trakcie
uczenia
Uczenie sieci
Uczenie z nauczycielem
Samouczenie (samoadaptacja) sieci
(uczenie sieci bez nauczyciela)
Uczenie sieci z nauczycielem





Na wejście sieci podaje się dane
Sieć przetwarza je i generuje wynik przy
aktualnym zestawie wag
Wynik porównuje się z rozwiązaniem
oczekiwanym
W zależności od popełnionego błędu koryguje się
poszczególne wagi
Zestawów par: dane wejściowe – oczekiwane
wyniki powinno być jak najwięcej.
Uczenie sieci z nauczycielem
Zmiany wag neuronów wyznacza się za
pomocą różnych tzw. reguł
Podstawową jest tzw. reguła delta


Wartość wyjściowa z neuronu porównywana jest z
pożądaną przez nauczyciela i obliczana jest
różnica miedzy nimi  
Sygnał błędu wykorzystywany jest przez neuron
do korygowania wag (posiadanej wiedzy)



Wagi zmieniają się tym bardziej im większa jest 
Wagi związane z wejściami o dużych wartościach
zmieniają się znacznie
Wpływ  na zmianę wektora wag koryguje
współczynnik uczenia h.
Uczenie sieci z nauczycielem
Zmiana współczynnika i-tej wagi neuronu w j-tym
kroku nauczania:
 j
wi  h
Gdzie:
 j
d e   j 
 j  xi
de
  j   z  j   y j 
n

 j
 j  j 
y   e     wi xi 
 i 0

W sieciach liniowych i nieliniowych gdzie funkcja modyfikująca
nie ma pochodnej w miejsce d/de wstawia się 1
Uczenie sieci z nauczycielem
Momentum - sposób na zwiększenie
szybkości uczenia

Umożliwia uwzględnienie przy zmianie wag
wartości błędów popełnianych w krokach
wcześniejszych
 j
wi  h1
 j
d e   j 
 j 1
 j  xi  h2wi
de
h2 = 0..1, zwykle 0,9
Uczenie sieci z nauczycielem
Przebieg zmian współczynników wag w trakcie uczenia
bez momentum (niebieski) i z momentum (czerwony)
Uczenie sieci z nauczycielem
Uczenie warstw ukrytych


Nie jest znany rzeczywisty błąd popełniany przez
neurony z warstw ukrytych
Błąd szacuje się na zasadzie propagacji
wstecznej (backpropagation) błędu
popełnianego przez neurony warstwy wyjściowej.
Oszacowanie polega na zsumowaniu błędów
poszczególnych neuronów pomnożonych przez
wagi połączeń miedzy rozpatrywanym neuronem
a neuronami warstwy wyjściowej
Uczenie sieci z nauczycielem
k1
k2
k3
Warstwa wyjściowa
kn
wm(kn)(j)
Waga neuronu kn na
wejściu od neuronu m
m
Błąd neuronu m w kroku j:
Warstwa ukryta
kn
 m   wm
 j
k  k1
k  j   j 
k
Uczenie sieci z nauczycielem
Zmianę i –tej wagi oblicza się ze wzoru
m  j 
wi
 j
 hm
d e  j 
 j  yi
dem
Uczenie sieci
Uczenie bez nauczyciela (hebbian learning)





Opracowane przez Donalda O. Hebba
Na wejście sieci podaje się dane
Nie podaje się pożądanych wyników
Sieć modyfikuje wagi tak, że uczy się
rozpoznawać klasy powtarzających się sygnałów
wejściowych, rozpoznaje typowe wzorce
sygnałów.
Zbiór danych wejściowych powinny być
prezentowany sieci w zmiennej kolejności
Samouczenie się SSN
Na początku procesu wszystkie neurony mają
przypadkowe wagi
Pod wpływem pokazywanych ciągów danych
wejściowych neurony określają swoje sygnały
wyjściowe
Na podstawie sygnałów wejściowych i
wyjściowych następuje korekta wag:


Jeżeli sygnał wyjściowy był pozytywny to wagi
zmieniają się tak, by zbliżyć się do sygnałów
wejściowych
Jeżeli sygnał wyjściowy był negatywny to wagi
zmieniają się przeciwnie
Samouczenie się SSN
Dle m-tego neuronu i-ta waga zmienia
się następująco
wi
m j 1
 wi
m j 
hxi j  ym j 
x1
x2
x3
w1
w2
w3
xn
wn
w0

e (e)
Po wielu prezentacjach i korektach wag
neurony specjalizują się w
rozpoznawaniu klas występujących w
sygnałach wejściowych
y
Uczenie sieci z konkurencją
(WTA)
Dotyczy sieci jednowarstwowych, w których
wszystkie neurony otrzymują ten sam sygnał
wejściowy
Modyfikacja WTA sposobu uczenia sieci polega na
zmianie wartości wag tylko tego neuronu, który
najsilniej zareagował na dany sygnał wejściowy
W przypadku sieci samouczących powoduje to
wzrost skuteczności i ekonomiczności uczenia
W przypadku sieci liniowych pozwala na uzyskanie
od sieci bardziej jednoznacznych odpowiedzi
SSN podsumowanie
SSN dzielimy ze względu

Stopień skomplikowania:



Rodzaj neuronu:



Liniowe
Nieliniowe
Sposób uczenia



Jednowarstwowe
Wielowarstwowe (z warstwami ukrytymi)
Uczone z nauczycielem
Samouczące się
Sposób przetwarzania informacji


Feedforward
Sieci rekurencyjne