Wstęp do sieci neuronowych, wykład 01. Model perceptronu prostego. M. Czoków, J. Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2011-10-04
In memoriam prof. dr hab. Tomasz Schreiber (1975-2010)
1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
Program przedmiotu 1 Biologiczny model neuronu 2 Pojedynczy neuron. Model perceptronu prostego, maszyny liniowej, Adaline 3 Sieci skierowane. Algorytm Wstecznej propagacji błędu 4 Uczenie bez nauczyciela, samoorganizacja topologiczna 5 Analiza składowych głównych PCA 6 Sieci rekurencyjne, Sieć Hopfielda, Maszyny Boltzmanna i symulowane wyżarzanie 7 (*) Wielowartościowe sieci neuronowe, sieci zespolone 8 (*) Algorytmy genetyczne
Literatura R. Rojas Neural Networks, A Systematic Introduction, Springer 1996, P. Peretto, Introduction to Modeling Neural Networks, Cambridge University Press 1994,
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.
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) zależnie od prowadzących
Komórka neuronowa 1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
Mózg Komórka neuronowa Płat czołowy (Frontal lobe) Płat ciemieniowy (Parietal lobe) Płat potyliczny (Occipal lobe) Płat skroniowy (Temporal lobe) Rdzeń kręgowy (Spinal cord) Móżdżek (Cerebellum) Rysunek za http://en.wikipedia.org/wiki/cerebral_cortex, autor Henry Gray, public domain.
Biologiczny mózg Komórka neuronowa Rysunek za http://en.wikipedia.org/wiki/neuron.
Komórka neuronowa Komórka neuronowa Dendryty Jądro neuronu Ciało komórki Przewężenie Ranviera Komórka Schwanna Otoczka mielinowa Akson Zakończenia aksonów Rysunek za http://pl.wikipedia.org/.
Możliwości obliczeniowe Komórka neuronowa komputer mózg Jednostki obliczeniowe 1-8 CPU 10 11 neuronów Pojemność 10 9 B RAM, 10 11 neuronów, 10 12 B dyski 10 14 synaps Czas 1 cyklu 10 8 s 10 3 s Przepustowość 10 9 b/s 10 14 b/s Operacji na neuronach 1/s 10 6 10 14
Notatka historyczna Komórka neuronowa 1949, D. Hebb, postulat Hebba, 1958, F. Rosenblatt, model perceptronu, 1969, M. Minksky i S. Papert, sformułowanie ograniczeń perceptronu, 1974, P. Werbos et al., algorytm propagacji wstecznej, 1982, J. Hopfield, sieci asocjacyjne, 1986, D. Rumelhart et al., zastosowanie BEP do uczenia sieci warstwowych, 1983-1987, G. Hinton, T. Sejnowski, maszyny Boltzmanna.
Model perceptronu prostego Przykłady 1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
Model perceptronu Model perceptronu prostego Przykłady
Model perceptronu Model perceptronu prostego Przykłady out
Model perceptronu Model perceptronu prostego Przykłady Perceptron układ składający się z n wejść x 1,.., x n (argumenty do funkcji) n wag stowarzyszonych z wejściami w 1,.., w n R funkcji aktywacji f : R R.
Dynamika perceptronu Model perceptronu prostego Przykłady click
Dynamika perceptronu Model perceptronu prostego Przykłady Na wejściu x = (x 1,.., x n ) perceptron zwróci wartość: n O(x 1,..., x n ) = f ( w i x i ) = f (w x t ) i=1
Model perceptronu prostego Przykłady 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 Model perceptronu prostego Przykłady Na wejściu x = (x 1,.., x n ) perceptron progowy zwróci wartość: { 1 n O(x 1,..., x n ) = i=1 w ix i < θ +1 n i=1 w ix i θ
Model perceptronu prostego Przykłady 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
Model perceptronu prostego Przykłady 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
Model perceptronu prostego Przykłady Sigmoida f (x) = σ(x) = 1 1 + exp( βx)
Model perceptronu prostego Przykłady tangens hiperboliczny (symetryczna sigmoida) f (x) = tanh( 1 1 exp( βx) βx) = 2 1 + exp( βx)
Model perceptronu prostego Przykłady Funkcja identycznościowa f (x) = x 3 2 1 0-1 -2-3 -3-2 -1 0 1 2 3
Model perceptronu prostego Przykłady Funkcja afiniczna f (x) = ax + b 3 2 1 0-1 -2-3 -3-2 -1 0 1 2 3
Perceptron z biasem Model perceptronu prostego Przykłady n wejść x 1,..., x n, n + 1 wag w 0, w 1,..., x n, przyjmuje się dodatkowe zawsze włączone wejście x 0 = +1 zwracana wartość { 1 [1, xi ]w O(x 1,..., x n ) = t = n i=0 w ix i < 0 +1 [1, x i ]w t = n i=0 w ix i 0, perceptron z biasem jest równoważny jednostce z progową funkcją aktywującą
Perceptron z biasem Model perceptronu prostego Przykłady out
Model perceptronu prostego Przykłady Rozważamy jednostkę z funkcją progową tj. { 1 n O(x 1,..., x n ) = i=1 w ix i < θ +1 n i=1 w ix i θ Jak wygląda brzeg rozdzielający obszary o różnych aktywacjach?
Model perceptronu prostego Przykłady Prosty przypadek 1d jedno wejście x 1, jedna waga w 1 i próg θ { 1 w1 x O(x 1 ) = 1 < θ x 1 < θ/w 1 +1 w 1 x 1 θ x 1 θ/w 1 Brzeg rozdzielający jest punktem, który dzieli prostą rzeczywistą na dwie półproste.
Model perceptronu prostego Przykłady 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
Model perceptronu prostego Przykłady Prosty przypadek 2d dwa wejścia x 1, x 2, dwie wagi w 1, w 2 i próg θ O(x 1 ) = Wygląda znajomo? 1 w 1 x 1 + w 2 x 2 < θ x 2 < w 1 w 2 x 1 + θ w 2 +1 w 1 x 1 + w 2 x 2 θ x 2 w 1 w 2 x 1 + θ w 2
Model perceptronu prostego Przykłady Prosty przypadek 2d dwa wejścia x 1, x 2, dwie wagi w 1, w 2 i próg θ O(x 1 ) = Wygląda znajomo? 1 w 1 x 1 + w 2 x 2 < θ x 2 < w 1 w 2 x 1 + θ w 2 +1 w 1 x 1 + w 2 x 2 θ x 2 w 1 w 2 x 1 + θ w 2 ax + by = c y = a b x + c b A teraz?
Model perceptronu prostego Przykłady 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
Model perceptronu prostego Przykłady W przypadku 3d trzy wejścia x 1, x 2, x 3, trzy wagi w 1, w 2, w 3 i próg θ { 1 w1 x O(x 1 ) = 1 + w 2 x 2 + w 3 x 3 < θ +1 w 1 x 1 + w 2 x 2 + w 3 x 3 θ Równanie ogólne płaszczyzny ax + by + cz + d = 0 Równanie kierunkowe z = a c x b c y d c
Model perceptronu prostego Przykłady W przypadku 3d jest to płaszczyzna rozdzielająca przestrzeń. 15 10 5 0-5 -6-10 10 5 0-2 -4 0 2-5 4-106
Problem XOR Model perceptronu prostego Przykłady Prosty przykład dla którego pojedynczy perceptron nie będzie wstanie zwróćić stuprocentowej klasyfikacji 1.5 1 0.5 0-0.5-1 -1.5-1.5-1 -0.5 0 0.5 1 1.5
Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja 1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja
Zagadnienie uczenia perceptronu Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Dane: Cel: perceptron progowy o n wejściach, n nieznanych wagach w 1,.., w n i progu θ, zbiór k przykładów uczących E i = (E (i) (i) 1,...,.E N ), i = 1..k, poprawne odpowiedzi (+1, 1) odpowiadające przykładom uczącym T (1),...,.T (k), znaleźć zestaw wag w 1,.., w n i próg θ takie aby perceptron klasyfikował poprawnie wszystkie (możliwie najwięcej) przykłady uczące
Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Simple Perceptron Learning Algorithm Podstawowy algorytm uczenia: 1 Losujemy wagi w i małe, blisko 0. 2 Wybieramy kolejny (lub losowy zalecane) przykład E j i odpowiadającą mu poprawną odpowiedź T j, 3 Obliczamy O wynik działania sieci na E j 4 Obliczamy ERR = T j O 5 Jeżeli ERR = 0 (klasyfikacja jest poprawna), to wróć do 2, 6 W przeciwnym wypadku uaktualniamy wszystkie wagi zgodnie ze wzorem w i = w i + η ERR E j i θ = θ ERR η > 0 jest stałą uczenia. 7 Jeżeli sieć klasyfikuje poprawnie wszystkie (większość) przykłady to kończymy, wpw wracamy do 2.
Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Simple Perceptron Learning Algorithm Uwagi do algorytmu: Jeżeli dla danych uczących nie istnieje zestaw wag, który daje stuprocentową klasyfikację algorytm nie zatrzyma się, Jeżeli zatrzymanie zostanie wymuszone, to zwrócony zestaw wag może być dowolnie zły.
Pocket Learning Algorithm Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja 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.
Pocket Learning Algorithm Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja 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 E j sprawdzamy, czy E j jest dobrze klasyfikowany (ERR = T j 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: w i = w i + η ERR E j i θ = θ 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.
Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja 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,
Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja 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 E j, 3 Sprawdzamy czy E j jest dobrze klasyfikowany (ERR = T j 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: w i := w i + η ERR E j i θ := θ 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.
Dowód algorytmu Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja 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.
Interpretacja wektora wag Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja 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 Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Zdefiniujmy funkcję błędu: ERR(w, θ) := {E j : O w,θ (E j ) T j } = liczba błędnie sklasyfikowanych przykładów W tej sytuacji uczenie jest zagadnieniem minimalizacji błędu na przestrzeni wag i progu
1.5 1 0.5 0-0.5-1 -1.5-1.5-1 -0.5 0 0.5 1 1.5 Interpretacja Problem OR: Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja 4 3.5 3 theta = -0.78 2.5 ERR 2 1.5 1 0.5 0-4 -2 w2 0 2 4 4 2 0-2 -4 w1
Interpretacja Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Problem OR: click
1.5 1 0.5 0-0.5-1 -1.5-1.5-1 -0.5 0 0.5 1 1.5 Interpretacja Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Problem AND: theta = 3.62 4 3.5 ERR 3 2.5 2 1.5 1 0.5 4 0-4 2-2 0 0-2 w2 w1 2 4-4
Interpretacja Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Problem AND: click
1.5 1 0.5 0-0.5-1 -1.5-1.5-1 -0.5 0 0.5 1 1.5 Interpretacja Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Problem XOR: theta = 3.62 4 3.5 ERR 3 2.5 2 1.5 1 0.5 4 0-4 2-2 0 0-2 w2 w1 2 4-4
Interpretacja Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Problem XOR: click
Przykład Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Filtry graficzne (liniowe): wejście piksel, waga wartość na masce filtru..37.60.37.60 1.0.60.37.60.37
Przykład Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Rozpoznawanie znaku: Każdy piksel jest jednym wejściem, Perceptron rozpoznaje czy piksele układają się w symbol. click
Pytania kontrolne Zagadnienie uczenia Algorytmy uczenia Dowód algorytmu Interpretacja Co to jest perceptron, jakie są jego wewnętrzne i zewnętrzne parametry? Jaką odpowiedź da perceptron znakowy o wagach (w 0 = 1.5, w 1 = +1, w 2 = 1) na wejściu (x 1 = 1, x 2 = +1)? Dane są dwa przykłady uczące ( 1, 1) 1, (+1, +1) +1. Startowe wagi perceptronu wynoszą (w 0 = θ = +4, w 1 = 3, w 2 = 1). Przeprowadź kilka kroków algorytmu uczącego (może być SPLA). Podaj zestaw trzech danych na R 2, który nie jest liniowo separowalny.