Wstęp do sieci neuronowych, wykład 01. Model perceptronu prostego. M. Czoków, J. Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2012-10-03 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)
1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia
1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia
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) kolokwium (zależnie od prowadzącego) ocena BDB+ z laboratorium zwalnia z części pisemnej egzaminu
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
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.
Komórka neuronowa 1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia
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.
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/w/index.php?title=plik:neuron-figure_pl.svg, Nicolas Rougier, 2007.
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
Model perceptronu prostego Przykłady 1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia
Problem Model perceptronu prostego Przykłady dany mamy zbiór (wysoko-wymiarowych) przykładów x 1,..., x n chcemy każdemu z nich przypisać jedną z dwóch kategorii odzwierciedlającą spełnienie (lub nie) jakiejś cechy
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 plik YouTube
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 t x) 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) 1.5 =1 =2 =5 =10 1 0.5 0-0.5-3 -2-1 0 1 2 3
y Model perceptronu prostego Przykłady tangens hiperboliczny (symetryczna sigmoida) f (x) = tanh( 1 1 exp( βx) βx) = 2 1 + exp( βx) 1.5 beta = 1 beta = 3 beta = 10 1 0.5 0-0.5-1 -1.5-4 -2 0 2 4 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 (obciążeniem) 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
Przykład Model perceptronu prostego Przykłady Filtry graficzne (liniowe): wejście piksel, waga wartość na masce filtru..37.60.37.60 1.0.60.37.60.37
Przykład Model perceptronu prostego Przykłady Rozpoznawanie znaku: Każdy piksel jest jednym wejściem, Perceptron rozpoznaje czy piksele układają się w symbol. click
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 1 2 Komórka neuronowa 3 Model perceptronu prostego Przykłady 4 Zagadnienie uczenia Algorytmy uczenia
Problem uczenia perceptronu Zagadnienie uczenia Algorytmy uczenia 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
Problem uczenia perceptronu Zagadnienie uczenia Algorytmy uczenia Bardziej formalnie: 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 Simple Perceptron Learning Algorithm (SPLA) 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 przykłady, to kończymy, wpw wracamy do 2.
Zagadnienie uczenia Algorytmy uczenia 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) Zagadnienie uczenia Algorytmy uczenia 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 (PLA) Zagadnienie uczenia Algorytmy uczenia 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 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 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.
Twierdzenie Zagadnienie uczenia Algorytmy uczenia Rozważmy separowalny zbiór (E i, T i ), niech istnieje zestaw wag w i próg θ, takie że w, E i θ > δ (pewna stała), niech wszystkie przykłady wspólnie będą ograniczone E i K, wówczas SPLA znajdzie poprawny wynik, przy czym wykona co najwyżej K 2 ( w 2 + θ 2 )/δ 2 kroków.
Zagadnienie uczenia Algorytmy uczenia 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.
Zagadnienie uczenia Algorytmy uczenia Dla tych, którzy wolą uczyć się ze slajdów...
Zagadnienie uczenia Algorytmy uczenia Dla tych, którzy wolą uczyć się ze slajdów... za próg θ podstawiamy w 0 stowarzyszone z dodatkowym wejściem x 0 = +1, Dodatkowo zamieniając znaki przypisujemy T i = +1, Teraz perceptron zwraca znak w, E, w wagi optymalne, w t wagi w kroku t,
Zagadnienie uczenia Algorytmy uczenia Obliczmy w, w t+1 (im większy tym bliższe wagi): w, w t+1 = w, w t + E i w, w t + δ Jeżeli w 0 były zerowe, to po t krokach będzie: w, w t tδ ( )
Zagadnienie uczenia Algorytmy uczenia Z drugiej strony policzmy: w t+1 2 = w t+1, w t+1 = w t + E i, w t + E i = = w t 2 + 2 w t, E k + E 2 zauważmy, że w t, E k < 0, inaczej E k byłby poprawnie klasyfikowany, więc nie zmienialibyśmy wag w t 2 + 2 w t, E k + E 2 w t 2 + K 2 Czyli po t krokach wagi wzrosną o co najwyżej: w t 2 tk 2 ( )
Zagadnienie uczenia Algorytmy uczenia Mamy ( ): i ( ): w, w t tδ ( ) w t 2 tk 2 ( ) Łączymy ( ) i ( ): tδ w w t w K t Po przeniesieniu t na LHS: t w 2 K 2 /δ 2 Co kończy uzasadnienie.
wektora wag Zagadnienie uczenia Algorytmy uczenia 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
Zagadnienie uczenia Algorytmy uczenia 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 Zagadnienie uczenia Algorytmy uczenia Problem OR: 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
Zagadnienie uczenia Algorytmy uczenia 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 Zagadnienie uczenia Algorytmy uczenia 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
Zagadnienie uczenia Algorytmy uczenia 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 Zagadnienie uczenia Algorytmy uczenia 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
Zagadnienie uczenia Algorytmy uczenia Problem XOR: click
Zagadnienie uczenia Algorytmy uczenia 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 Zagadnienie uczenia Algorytmy uczenia 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.