Wstęp do sieci neuronowych laboratorium 01 Organizacja zajęć. Perceptron prosty Jarosław 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
Program przedmiotu Zaliczenie Litaratura 1 Organizacja zajęć Program przedmiotu Zaliczenie Litaratura 2 Perceptrony prosty Uczenie perceptronu 3 rachunkowe programistyczne
O czym będzie Organizacja zajęć Program przedmiotu Zaliczenie Litaratura Sieci neuronowe matematyczne i informatyczne modele dla biologicznych komórek nerwowych i całych sieci nerwowych wraz z ich zastosowaniem w problemach obliczeniowych. Dużo programowania (implementowanie algorytmów), Trochę matematyki, Małe zadania do zaimplementowania na zajęciach (język dowolny, ściągawki będą w Matlabie / Octavie), Programy zaliczeniowe pisane głównie w domu, prezentowane i omawiane na zajęciach,
Program zajęć Organizacja zajęć Program przedmiotu Zaliczenie Litaratura Pojedynczy neuron (model perceptronu prostego, maszyny liniowej, Adaline), Sieci skierowane, algorytmy konstrukcyjne dla sieci skierowanych, Algorytm wstecznej propagacji błędu (BEP), Uczenie bez nauczyciela (samoorganizacja topologiczna, analiza składowych głównych (PCA)), Sieci rekurencyjne (sieć Hopfielda, maszyny Boltzmanna i symulowane wyżarzanie), (*) Wielowartościowe sieci neuronowe, sieci zespolone, (*) Algorytmy genetyczne.
Zaliczenie Organizacja zajęć Program przedmiotu Zaliczenie Litaratura Zaliczenie laboratoriów na podstawie implementowania omawianych algorytmów, Terminowość w oddawaniu zadań, Obecność wymagana!
Zaliczenie Organizacja zajęć Program przedmiotu Zaliczenie Litaratura Każde zadanie jest punktowane za 1 punkt. Dopuszczane są oceny wymierne (czyt. ułamkowe za brzydko napisane zadania) oraz powyżej jednego punktu za wybitnie programy, Podczas sprawdzania programów należy mieć kod źródłowy. Lub prezentacja programu w trakcie zajęć (+0.2p). ocena punkty dst 3p. db 4p. bdb 5p. bdb+ 6p. lub więcej + następny slajd
Wymagania na ocenę BDB+ Program przedmiotu Zaliczenie Litaratura Na ocenę bdb+ wymagane są: zadania z różnych działów, przynajmniej jeden program do końca października, przynajmniej dwa programy do końca listopada, przynajmniej trzy programy do końca stycznia, wszystkie programy przed egzaminem.
Literatura Organizacja zajęć Program przedmiotu Zaliczenie Litaratura R. Rojas Neural Networks, A Systematic Introduction, Springer 1996, P. Peretto, Introduction to Modeling Neural Networks, Cambridge University Press 1994, 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.
Perceptrony prosty Uczenie perceptronu 1 Organizacja zajęć Program przedmiotu Zaliczenie Litaratura 2 Perceptrony prosty Uczenie perceptronu 3 rachunkowe programistyczne
Dynamika perceptronu Perceptrony prosty Uczenie perceptronu Perceptron układ składający się z n wejść x 1,.., x n, (argumenty do funkcji x i R), n wag w 1,.., w n stowarzyszonych z wejściami w i R, funkcji aktywacji f : R R (funkcja polarna z progiem θ) { +1 s θ f (s) = 1 s < θ
Dynamika perceptronu Perceptrony prosty Uczenie perceptronu Dostając na wejściu x = (x 1,.., x n ), perceptron zwróci wartość: O(x 1,..., x n ) = f ( n { +1 n w i x i ) = i=1 w ix i θ 1 n i=1 w ix i < θ i=1
Model perceptronu Organizacja zajęć Perceptrony prosty Uczenie perceptronu out
Zagadnienie uczenia perceptronu Perceptrony prosty Uczenie perceptronu 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 przykłady uczące (lub możliwie najwięcej, gdy nie da się wszystkich)
Perceptrony prosty Uczenie perceptronu 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 η > 0 jest stałą uczenia. w i = w i + η ERR E (j) i θ = θ ERR 7 Jeżeli sieć klasyfikuje poprawnie wszystkie (większość) przykłady, to kończymy, wpw wracamy do 2.
Pocket Learning Algorithm Perceptrony prosty Uczenie perceptronu 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.
Perceptrony prosty Uczenie perceptronu 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.
rachunkowe programistyczne 1 Organizacja zajęć Program przedmiotu Zaliczenie Litaratura 2 Perceptrony prosty Uczenie perceptronu 3 rachunkowe programistyczne
Zadanie 1 Organizacja zajęć rachunkowe programistyczne Wagi perceptronu wynoszą w 1 = +1, w 2 = 0.5, w 3 = 1.4. Próg funkcji aktywującej wynosi θ = +1.5 Jaką odpowiedź zwróci perceptron dla wejścia x = (3, 4, 5)?
Zadanie 2 Organizacja zajęć rachunkowe programistyczne Pokaż, że definicje perceptronu progowego i z biasem są równoważne.
Zadanie 3 Organizacja zajęć rachunkowe programistyczne Pokaż, że oraz σ(s) = 1 1 + exp( s) 2σ(s) 1 = 1 exp( s) 1 + exp( s) σ (s) = σ(s)(1 σ(s))
Zadanie 1. Klasyfikacja punktów rachunkowe programistyczne Napisz program, który nauczy perceptron klasyfikacji na zadanej liście przykładów (wyklikanych lub z pliku). Plik może być listą punktów (na R 2, R 3, R 4 ) oraz poprawną klasyfikacją punktu. Klasyfikacja binarna: 0 lub 1 (+1, -1), Możliwość wczytania (lub wyklikania) parametrów innych punktów (tj. z poza listy uczącej) i wyświetlenia ich wraz z oznaczeniem klasy, Informacja o oczekiwanej (z listy) jak i faktycznej (tj. zwróconej przez perceptron) klasyfikacji, Podstawowe statystyki poprawności działania (np. procent poprawnie klasyfikowanych przykładów), Wykres prostej / płaszczyzny separującej.
rachunkowe programistyczne Zadanie 2. Rozpoznawanie cyfr / liter / obrazów Napisz program, który wykorzystuje kilka (-naście) perceptronów (lub maszynę liniową) do rozpoznawania cyfr lub liter. Wskazówki: Cyfry powinny być wyświetlane jako układy pikseli na matrycy o niewielkich wymiarach, Program dodatkowo powinien mieć możliwość wyklikania cyfry i automatycznej klasyfikacji.
rachunkowe programistyczne Zadanie 3. Neuron Hodgkina-Huxleya (dla ambitnych) Zapoznaj się z modelem komórki neuronowej opisanym w terminach układów dynamicznych. Informacje o modelu można znaleźć w rozdziale drugim książki E. Izhikevich Dynamical Systems in Neuroscience, 2007 MIT Press. Napisz program symulujący dynamikę neuronu Hodgkina-Huxleya.