Wstęp do sieci neuronowych, wykład 01 Neuron biologiczny. Model perceptronu prostego.
M. Czoków, J. Piersa
Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika
2013-10-08
Projekt pn. „Wzmocnienie potencjału dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych”
realizowany w ramach Poddziałania 4.1.1 Programu Operacyjnego Kapitał Ludzki
In memoriam
prof. dr hab. Tomasz Schreiber (1975-2010)
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Podziękowania
Podziękowania dla Mai Czoków, która jest współautorką materiałów do poniższego wykładu.
1 Organizacja przedmiotu Organizacja przedmiotu
2 Neuron biologiczny Komórka neuronowa
3 Zagadnienia klasyfikacyjne: perceptron prosty Model perceptronu prostego
Postacie funkcji aktywującej Interpretacja geometryczna Przykłady
4 Uczenie perceptronu Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Zaliczenie
Zaliczenie wykładu:
egzamin pisemny — pytania opisowe egzamin ustny — pytania otwarte
wymagane jest laboratoriów przed podejściem do egzaminu
Zaliczenie
Zaliczenie laboratoriów:
implementacja programów (ok. 3 – 6 programów) ocena BDB+ z laboratorium zwalnia z egzaminu
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Program przedmiotu
1 Biologiczny model neuronu
2 Model perceptronu prostego
3 Inne modele pojedynczego neuronu: maszyna liniowa, Adaline
4 Sieci skierowane. Algorytm Wstecznej propagacji błędu
5 Uczenie bez nauczyciela, samoorganizacja topologiczna
6 Analiza składowych głównych PCA
7 Sieci rekurencyjne, Sieć Hopfielda, Maszyny Boltzmanna i symulowane wyżarzanie
8 (?) Wielowartościowe sieci neuronowe, sieci zespolone
9 (?) Algorytmy genetyczne
10 (?) Maszyny Wektorów Wspierających (SVM — Support Vektor Machines)
Literatura
R. Rojas Neural Networks, A Systematic Introduction, Springer 1996,
P. Peretto, Introduction to Modeling Neural Networks, Cambridge University Press 1994,
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Literatura uzupełniająca
T. Schreiber, Notatki do wykładu WSN,
E. Izhikevich, Dynamical Systems in Neuroscience, 2007 Massachusetts Institute of Technology
C. Bishop, Neural Networks for Pattern Recognition, Oxford University Press 1995.
1 Organizacja przedmiotu Organizacja przedmiotu
2 Neuron biologiczny Komórka neuronowa
3 Zagadnienia klasyfikacyjne: perceptron prosty Model perceptronu prostego
Postacie funkcji aktywującej Interpretacja geometryczna Przykłady
4 Uczenie perceptronu Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Mózg
Płat czołowy (Frontal lobe)
Płat ciemieniowy (Parietal lobe)
Płat skroniowy (Temporal lobe)
Płat potyliczny (Occipal lobe)
Móżdżek (Cerebellum) Rdzeń kręgowy
(Spinal cord)
Rysunek za http://en.wikipedia.org/wiki/Cerebral_cortex, autor Henry Gray, public domain.
Komórka neuronowa
Komórka Schwanna Przewężenie Ranviera
Akson Dendryty
Zakończenia aksonów Jądro neuronu Ciało komórki
Otoczka mielinowa
Rysunek za http://pl.wikipedia.org/w/index.php?title=Plik:Neuron-figure_PL.svg, Nicolas Rougier, 2007.
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Możliwości obliczeniowe
komputer grid1 mózg
CPU 1—16 CPU 106 1011 neuronów
Pojemność 109B RAM, 1015B RAM 1011 neuronów, 1012B HDD 1018B ?? 1014 synaps Czas 1 cyklu 10−9s 10−9s 10−3s
FLOPS 109 3.4 · 1016 ∼ 1018 ??
moc 1000W 107W < 100W
1http://www.top500.org/, 2013-06
1 Organizacja przedmiotu Organizacja przedmiotu
2 Neuron biologiczny Komórka neuronowa
3 Zagadnienia klasyfikacyjne: perceptron prosty Model perceptronu prostego
Postacie funkcji aktywującej Interpretacja geometryczna Przykłady
4 Uczenie perceptronu Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Model perceptronu
Model perceptronu
out
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Model perceptronu
Perceptron — układ składający się z
n wejść x1, .., xn (argumenty do funkcji)
n wag stowarzyszonych z wejściami w1, .., wn∈ R funkcji aktywacji f : R → R.
Dynamika perceptronu
Na wejściu x = (x1, .., xn) perceptron zwróci wartość:
O(x1, ..., xn) = f (
n
X
i =1
wixi) = f (wt· x)
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Postacie funkcji aktywującej
Funkcja progowa
f (x ) =
−1 x < θ +1 x ≥ θ
-1.5 -1 -0.5 0 0.5 1 1.5
-3 -2 -1 0 1 2 3
Dynamika perceptronu progowego
Na wejściu x = (x1, .., xn) perceptron progowy zwróci wartość:
O(x1, ..., xn) =
−1 Pn
i =1wixi < θ
+1 Pn
i =1wixi ≥ θ
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Postacie funkcji aktywującej
Funkcja znakowa
f (x ) =
−1 x < 0 +1 x ≥ 0
-1.5 -1 -0.5 0 0.5 1 1.5
-3 -2 -1 0 1 2 3
Postacie funkcji aktywującej
Funkcja bipolarna (binarna)
f (x ) =
0 x < 0 +1 x ≥ 0
-1.5 -1 -0.5 0 0.5 1 1.5
-3 -2 -1 0 1 2 3
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Postacie funkcji aktywującej
Sigmoida
f (x ) = σ(x ) = 1 1 + exp(−βx )
-0.5 0 0.5 1 1.5
-3 -2 -1 0 1 2 3
=1
=2
=5
=10
Postacie funkcji aktywującej
tangens hiperboliczny (symetryczna sigmoida) f (x ) = tanh(1
2βx ) = 1 − exp(−βx ) 1 + exp(−βx )
-1.5 -1 -0.5 0 0.5 1 1.5
-4 -2 0 2 4
y
x
beta = 1 beta = 3 beta = 10
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Postacie funkcji aktywującej
Funkcja identycznościowa
f (x ) = x
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
Postacie funkcji aktywującej
Funkcja afiniczna
f (x ) = ax + b
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Perceptron z biasem (obciążeniem)
n wejść x1, ..., xn, n + 1 wag w0, w1, ..., xn,
przyjmuje się dodatkowe zawsze włączone wejście x0 = +1 zwracana wartość
O(x1, ..., xn) =
−1 [1, xi]wt=Pn
i =0wixi < 0 +1 [1, xi]wt=Pn
i =0wixi ≥ 0, perceptron z biasem jest równoważny jednostce z progową funkcją aktywującą
Perceptron z biasem
out
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Przykład
Filtry graficzne (liniowe):
wejście — piksel,
waga — wartość na masce filtru.
.60 .60
.60 .60 1.0 .37
.37 .37
.37
Dynamika perceptronu
plik YouTube
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Przykład
Rozpoznawanie znaku:
Każdy piksel jest jednym wejściem,
Perceptron rozpoznaje czy piksele układają się w symbol.
click
Interpretacja geometryczna
Rozważamy jednostkę z funkcją progową tj.
O(x1, ..., xn) =
−1 Pn
i =1wixi < θ
+1 Pn
i =1wixi ≥ θ
Jak wygląda brzeg rozdzielający obszary o różnych aktywacjach?
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Interpretacja geometryczna
Prosty przypadek 1d — jedno wejście x1, jedna waga w1 i próg θ
O(x1) =
−1 w1x1 < θ ⇐⇒ x1< θ/w1
+1 w1x1 ≥ θ ⇐⇒ x1≥ θ/w1
„Brzeg rozdzielający” jest punktem, który dzieli prostą rzeczywistą na dwie półproste.
Interpretacja geometryczna
W przypadku 1d brzeg rozdzielający jest punktem dzielącym prostą.
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Organizacja przedmiotu Neuron biologiczny Zagadnienia klasyfikacyjne: perceptron prosty Uczenie perceptronu
Model perceptronu prostego Postacie funkcji aktywującej Interpretacja geometryczna Przykłady
Interpretacja geometryczna
Prosty przypadek 2d — dwa wejścia x1, x2, dwie wagi w1, w2 i próg θ
O(x1) =
−1 w1x1+ w2x2 < θ ⇐⇒ x2< −ww1
2 x1+ wθ
2
+1 w1x1+ w2x2 ≥ θ ⇐⇒ x2≥ −ww1
2 x1+ wθ
2
Wygląda znajomo?
A teraz?
Interpretacja geometryczna
Prosty przypadek 2d — dwa wejścia x1, x2, dwie wagi w1, w2 i próg θ
O(x1) =
−1 w1x1+ w2x2 < θ ⇐⇒ x2< −ww1
2 x1+ wθ
2
+1 w1x1+ w2x2 ≥ θ ⇐⇒ x2≥ −ww1
2 x1+ wθ
2
Wygląda znajomo?
ax + by = c ⇐⇒ y = −a bx + c
b A teraz?
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Interpretacja geometryczna
W przypadku 2d brzeg rozdzielający jest prostą dzielącą płaszczyznę.
-6 -4 -2 0 2 4 6
-6 -4 -2 0 2 4 6
Interpretacja geometryczna
W przypadku 3d — trzy wejścia x1, x2, x3, trzy wagi w1, w2, w3 i próg θ
O(x1) =
−1 w1x1+ w2x2+ w3x3 < θ +1 w1x1+ w2x2+ w3x3 ≥ θ Równanie ogólne płaszczyzny
ax + by + cz + d = 0
Równanie kierunkowe
z = −a c x − b
cy −d c
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Interpretacja geometryczna
W przypadku 3d jest to płaszczyzna rozdzielająca przestrzeń.
-10 -5 0 5 10
-6 -4 -2 0 2 4 6 -10
-5 0 5 10 15
Problem XOR
Prosty przykład dla którego pojedynczy perceptron nie będzie wstanie zwrócić stuprocentowej klasyfikacji
-1.5 -1 -0.5 0 0.5 1 1.5
-1.5 -1 -0.5 0 0.5 1 1.5
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
1 Organizacja przedmiotu Organizacja przedmiotu
2 Neuron biologiczny Komórka neuronowa
3 Zagadnienia klasyfikacyjne: perceptron prosty Model perceptronu prostego
Postacie funkcji aktywującej Interpretacja geometryczna Przykłady
4 Uczenie perceptronu Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
Problem uczenia perceptronu
Daną mamy reprezentatywną próbkę danych z odpowiadającymi im klasami (binarnymi: tak lub nie)
Chcemy znaleźć nieskomplikowaną regułę klasyfikacyjną, według której dane zostały poprzydzielane do klas
Dodatkowo chcemy aby reguła „sensownie” działała na danych podobnych do próbki uczącej, ale których w trakcie uczenia nie widziała
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Problem uczenia perceptronu
Bardziej formalnie:
Dane:
perceptron progowy o n wejściach, n nieznanych wagach w1, .., wn i progu θ,
zbiór k przykładów uczących Ei = (E1(i ), ..., .EN(i )), i = 1..k, poprawne odpowiedzi (+1, −1) odpowiadające przykładom uczącym T(1), ..., T(k),
Cel:
znaleźć zestaw wag w1, .., wn i próg θ takie aby perceptron klasyfikował poprawnie wszystkie (możliwie najwięcej) przykłady uczące
Simple Perceptron Learning Algorithm (SPLA)
Podstawowy algorytm uczenia:
1 Losujemy wagi wi małe, blisko 0.
2 Wybieramy kolejny (lub losowy — zalecane) przykład Ej i odpowiadającą mu poprawną odpowiedź Tj,
3 Obliczamy O — wynik działania sieci na Ej
4 Obliczamy ERR = Tj − O
5 Jeżeli ERR = 0 (klasyfikacja jest poprawna), to wróć do 2,
6 W przeciwnym wypadku uaktualniamy wszystkie wagi zgodnie ze wzorem
wi = wi+ η · ERR · Eij θ = θ − ERR η > 0 jest stałą uczenia.
7 Jeżeli sieć klasyfikuje poprawnie wszystkie przykłady, to kończymy, wpw wracamy do 2.
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Simple Perceptron Learning Algorithm (SPLA)
Uwagi do algorytmu:
dla nieseparowalnych danych zapętla się,
wymuszenie zakończenia nie daje żadnej gwarancji jakości zwracanych wag.
Pocket Learning Algorithm (PLA)
Algorytm uczenia z kieszonką Idea:
Z każdym poprawnie klasyfikowanym przykładem zwiększamy wagom czas życia,
Najlepszy (tj. najbardziej żywotny) zestaw wag przechowywany jest w kieszonce, aby nie został nadpisany przez przypadkowe zmiany,
Po zakończeniu algorytmu zwracany jest rekordowy zestaw, Przy odpowiednio długim działaniu prawdopodobieństwo, że nieoptymalny zestaw przeżyje najdłużej zanika do zera.
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Pocket Learning Algorithm (PLA)
1 Losujemy wagi i próg wokół 0, przypisujemy układowi wag zerowy czas życia i zapisujemy go w kieszonce jako rekordzistę,
2 Przebiegamy przykłady losując z listy,
3 Dla wybranego przykładu Ej sprawdzamy, czy Ej jest dobrze klasyfikowany (ERR = Tj − O = 0),
Jeśli tak, zwiększamy mu czas życia o jeden. Jeżeli jest to wynik lepszy niż u rekordzisty, zapominamy starego rekordzistę i zapisujemy w kieszonce nowy układ wag. Wracamy do 2.
Jeśli nie, to korygujemy wagi i próg:
wi = wi+ η · ERR · Eij
θ = θ − ERR
Nowemu układowi wag przypisujemy zerowy czas życia. Wracamy do 2.
4 Algorytm kończymy po przebiegnięciu odpowiedniej liczby iteracji. Zwracamy najbardziej żywotny zestaw wag.
Pocket Learning Algorithm with Ratchet
Algorytm uczenia z zapadką Idea:
Podobnie jak w algorytmie kieszonkowym zapamiętujemy rekordowe wagi,
Przed zapomnieniem poprzedniego zestawu wag sprawdzamy czy nowy zestaw klasyfikuje poprawnie więcej przykładów
Po zakończeniu algorytmu zwracany jest rekordowy zestaw, Każdorazowe sprawdzanie wymaga więcej obliczeń, ale zmniejsza prawdopodobieństwo zwrócenia nieoptymalnego wyniku,
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Pocket Learning Algorithm with Ratchet
1 Losujemy wagi i próg wokół 0, przypisujemy układowi wag zerowy czas życia i zapisujemy go jako rekordzistę,
2 Przebiegamy przykłady losując z listy, oznaczmy go Ej,
3 Sprawdzamy czy Ej jest dobrze klasyfikowany (ERR = Tj− O), Jeśli tak, zwiększamy mu czas życia o jeden. Jeżeli jest to wynik lepszy niż u rekordzisty i klasyfikuje on więcej przykładów niż rekordzista, to zapominamy starego rekordzistę i zapisujemy nowy układ wag. Wracamy do 2.
Jeśli nie, to korygujemy wagi i próg:
wi := wi+ η · ERR · Eij
θ := θ − ERR
Nowemu układowi wag przypisujemy zerowy czas życia. Wracamy do 2.
4 Algorytm kończymy po przebiegnięciu odpowiedniej liczby iteracji. Zwracamy najbardziej żywotny zestaw wag.
Twierdzenie
Rozważmy separowalny zbiór (Ei, Ti),
niech istnieje zestaw wag w∗ i próg θ∗, takie że hw∗, Eii − θ∗> δ (pewna stała),
niech wszystkie przykłady wspólnie będą ograniczone |Ei| ≤ K , wówczas SPLA znajdzie poprawny wynik,
przy czym wykona co najwyżej K2(|w∗|2+ θ∗2)/δ2 kroków.
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Dowód algorytmu
Z powodu własnego lenistwa dowodu na slajdach nie zamieszczę, Jeśli bym zamieścił, to na wykładzie przekliałbym się przez tenże dowód,
A tak, nie mam wyjścia jak przeprowadzić go na tablicy.
Organizacja przedmiotu Neuron biologiczny Zagadnienia klasyfikacyjne: perceptron prosty Uczenie perceptronu
Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
Dowód algorytmu
Dla tych, którzy wolą uczyć się ze slajdów...
Dodatkowo zamieniając znaki przypisujemy Ti = +1, Teraz perceptron zwraca znak hw , E i,
w∗ — wagi optymalne, wt — wagi w kroku t,
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Dowód algorytmu
Dla tych, którzy wolą uczyć się ze slajdów...
za próg θ podstawiamy −w0 stowarzyszone z dodatkowym wejściem x0= +1,
Dodatkowo zamieniając znaki przypisujemy Ti = +1, Teraz perceptron zwraca znak hw , E i,
w∗ — wagi optymalne, wt — wagi w kroku t,
Dowód algorytmu
Obliczmy hw∗, wt+1i (im większy tym „bliższe” wagi):
hw∗, wt+1i = hw∗, wt+ Eii ≥ hw∗, wti + δ Jeżeli w0 były zerowe, to po t krokach będzie:
hw∗, wti ≥ tδ (∗)
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Dowód algorytmu
Z drugiej strony policzmy:
|wt+1|2 = hwt+1, wt+1i = hwt+ Ei, wt+ Eii =
= |wt|2 + 2hwt, Eki + |E |2
zauważmy, że hwt, Eki < 0, inaczej Ek byłby poprawnie klasyfikowany, więc nie zmienialibyśmy wag
|wt|2 + 2hwt, Eki + |E |2 ≤ |wt|2+ K2 Czyli po t krokach wagi wzrosną o co najwyżej:
|wt|2 ≤ tK2 (∗∗)
Dowód algorytmu
Mamy (∗):
hw∗, wti ≥ tδ (∗) i (∗∗):
|wt|2 ≤ tK2 (∗∗) Łączymy (∗) i (∗∗):
tδ ≤ |w∗| · |wt| ≤ |w∗|K√ t
Po przeniesieniu t na LHS:
t ≤ |w∗|2K2/δ2 Co kończy uzasadnienie.
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Interpretacja wektora wag
Prosta oddzielająca jest prostopadła do wektora wag i przesunięta o |w |θ
-6 -4 -2 0 2 4 6
-6 -4 -2 0 2 4 6
Interpretacja
Zdefiniujmy funkcję błędu:
ERR(w , θ) := |{Ej : Ow ,θ(Ej) 6= Tj}|
= liczba błędnie sklasyfikowanych przykładów W tej sytuacji uczenie jest zagadnieniem minimalizacji błędu na przestrzeni wag i progu
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Interpretacja
Problem OR:
-1.5 -1 -0.5 0 0.5 1 1.5
-1.5 -1 -0.5 0 0.5 1 1.5
-2 -4 2 0
4
w1 -4
-2 0
2 4 w2
0 0.5 1 1.5 2 2.5 3 3.5 4
ERR
theta = -0.78
Interpretacja
Problem OR:
click
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Interpretacja
Problem AND:
-1.5 -1 -0.5 0 0.5 1 1.5
-1.5 -1 -0.5 0 0.5 1 1.5
-4 -2
0 2
4
w1 -4
-2 0
2 4
w2 0
0.5 1 1.5 2 2.5 3 3.5 4
ERR
theta = 3.62
Interpretacja
Problem AND:
click
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Interpretacja
Problem XOR:
-1.5 -1 -0.5 0 0.5 1 1.5
-1.5 -1 -0.5 0 0.5 1 1.5
-4 -2
0 2
4
w1 -4
-2 0
2 4
w2 0
0.5 1 1.5 2 2.5 3 3.5 4
ERR
theta = 3.62
Interpretacja
Problem XOR:
click
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01
Po zajęciach powinienem umieć / wiedzieć:
podać definicję oraz dynamikę perceptronu
zaimplementować perceptron, dla mniejszych danych również przeprowadzić obliczenia na kartce
sformułować problem uczenia perceptronu, zaimplementować algorytmy PLA lub RLA
zastosować perceptron w praktycznych problemach obliczeniowych
znać ograniczenia perceptronu, sformułować przykładowy problem przekraczający jego możliwości
Pytania kontrolne
Co to jest perceptron, jakie są jego wewnętrzne i zewnętrzne parametry?
Jaką odpowiedź da perceptron znakowy o wagach (w0 = −1.5, w1 = +1, w2= −1) na wejściu (x1= −1, x2 = +1)?
Dane są dwa przykłady uczące
(−1, −1) → −1, (+1, +1) → +1. Startowe wagi perceptronu wynoszą (w0 = −θ = +4, w1 = −3, w2= −1). Przeprowadź kilka kroków algorytmu uczącego (może być SPLA).
Podaj zestaw trzech danych na R2, który nie jest liniowo separowalny.
M. Czoków, J. Piersa WSN 2013/2014 Wykład 01