Wprowadzenie do Sieci Neuronowych lista zadań 1



Podobne dokumenty
Wstęp do sieci neuronowych laboratorium 01 Organizacja zajęć. Perceptron prosty

Wprowadzenie do Sieci Neuronowych Laboratorium 01 Organizacja zajęć. Perceptron.

Wprowadzenie do Sieci Neuronowych Laboratorium 01 Organizacja zajęć. Perceptron.

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Wstęp do sieci neuronowych, wykład 01 Neuron biologiczny. Model perceptronu prostego.

Wstęp do sieci neuronowych, wykład 01 Neuron biologiczny. Model perceptronu prostego.

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Uczenie sieci neuronowych i bayesowskich

Wprowadzenie do Sieci Neuronowych Laboratorium 02 Perceptron prosty cd

Wprowadzenie do Sieci Neuronowych Laboratorium 05 Algorytm wstecznej propagacji błędu

Wstęp do sieci neuronowych, wykład 04. Skierowane sieci neuronowe. Algorytmy konstrukcyjne dla sieci skierowanych

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Wprowadzenie do Sieci Neuronowych Laboratorium 04 Algorytmy konstrukcyjne dla sieci skierowanych

Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0

1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN. Agenda

synaptycznych wszystko to waży 1.5 kg i zajmuje objętość około 1.5 litra. A zużywa mniej energii niż lampka nocna.

Wstęp do sieci neuronowych, wykład 01 Neuron biologiczny. Model perceptronu prostego.

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Wstęp do sieci neuronowych, wykład 10 Sieci rekurencyjne. Autoasocjator Hopfielda

Elektroniczne materiały dydaktyczne do przedmiotu Wstęp do Sieci Neuronowych

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka ADALINE.

Wstęp do Sieci Neuronowych

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki. Jarosław Piersa piersaj(at)mat.uni.torun.pl

Programowanie w języku Python. Grażyna Koba

Wprowadzenie do Sieci Neuronowych Laboratorium 06 Algorytm wstecznej propagacji błędu

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Wstęp do sieci neuronowych, wykład 10 Sieci rekurencyjne. Autoasocjator Hopfielda

Metody systemowe i decyzyjne w informatyce

Zapisywanie algorytmów w języku programowania

Pomorski Czarodziej 2016 Zadania. Kategoria C

Elementy inteligencji obliczeniowej

Systemy Czasu Rzeczywistego FPGA

Optymalizacja systemów

Metody Sztucznej Inteligencji II

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Metody systemowe i decyzyjne w informatyce

Programowanie w języku C++ Grażyna Koba

Wstęp do sieci neuronowych, wykład 9 Sieci rekurencyjne. Autoasocjator Hopfielda

8. Neuron z ciągłą funkcją aktywacji.

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane cd.

Wstęp do sztucznych sieci neuronowych

Wstęp do sieci neuronowych, wykład 9 Sieci rekurencyjne. Autoasocjator Hopfielda

1. Logika, funkcje logiczne, preceptron.

Obliczenia iteracyjne

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.


Wstęp do Sieci Neuronowych

Sztuczne sieci neuronowe (SNN)

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane.

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

ID1SII4. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Instrukcja realizacji ćwiczenia

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Optymalizacja ciągła

Wstęp do sieci neuronowych, wykład 8 Uczenie nienadzorowane.

wiedzy Sieci neuronowe

Podstawy i języki programowania

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

KARTA MODUŁU KSZTAŁCENIA

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

Literatura. Sztuczne sieci neuronowe. Przepływ informacji w systemie nerwowym. Budowa i działanie mózgu

Rozdział 1 Sztuczne sieci neuronowe. Materiały do zajęć dydaktycznych - na podstawie dokumentacji programu Matlab opracował Dariusz Grzesiak

Zadanie projektowe nr 1

PRZEDMIOTOWY SYSTEM OCENIANIA Z JĘZYKA POLSKIEGO Zespół Szkół Politechnicznych im. Bohaterów Monte Cassino we Wrześni

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

Konspekt lekcji matematyki kl. I gimnazjum Temat: Funkcje - powtórzenie

Sztuczne sieci neuronowe

Prognozowanie kierunku ruchu indeksów giełdowych na podstawie danych historycznych.

Wstęp do teorii sztucznej inteligencji Wykład II. Uczenie sztucznych neuronów.

Układy VLSI Bramki 1.0

1 Opracowane przez: mgr Dorotę Knap

Regulamin zajęć z przedmiotu Chemia analityczna dla II roku Farmacji w roku akademickim 2018/19

Program dla praktyki lekarskiej

Uczenie sieci typu MLP

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Programowanie i techniki algorytmiczne

Zadania semestralne. Programowanie obiektowe sem. II, lato 2014/2015

Przedmiotowy system oceniania z fizyki w Szkole Podstawowej nr 51

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Programowanie obiektowe

Techniki multimedialne

2. Graficzna prezentacja algorytmów

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

Wstęp do teorii sztucznej inteligencji Wykład III. Modele sieci neuronowych.

WYMAGANIA EDUKACYJNE. Informatyka Szkoła Podstawowa Klasa 4 NA ŚRÓDROCZNĄ I ROCZNĄ OCENĘ KLASYFIKACYJNĄ

PRZEDMIOTOWE ZASADY OCENIANIA W GIMNAZJUM NR 1 HISTORIA

Sprawdzenie i ocena pracy z wykorzystaniem Archiwum Prac Dyplomowych

1.1. Pozycyjne systemy liczbowe

biegle i poprawnie posługuje się terminologią informatyczną,

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład III 2016/2017

Sieć Hopfielda. Sieci rekurencyjne. Ewa Adamus. ZUT Wydział Informatyki Instytut Sztucznej Inteligencji i Metod Matematycznych.

Zadania laboratoryjne i projektowe - wersja β

REGULAMIN ZAJĘĆ Z PRZEDMIOTU BIOLOGIA MEDYCZNA dla studentów kierunku ANALITYKA MEDYCZNA

PRZEDMIOTOWY SYSTEM OCENIANIA z przedmiotu Fizyka. 1. Wymagania edukacyjne treści i umiejętności podlegające ocenie.

Zastosowania sieci neuronowych

Temat 20. Techniki algorytmiczne

Transkrypt:

Wprowadzenie do Sieci Neuronowych lista zadań 1 Maja Czoków, Jarosław Piersa 2010-10-04 1 Zasadyzaliczania 1.1 Oceny Zaliczenie laboratoriów na podstawie implementowania omawianych algorytmów. 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 napisane zadania. dst 3p. db 4p. bdb 5p. bdb+ 6plubwięcej. Dodatkowonaocenębdb+wymaganejestoddaniezadańzpięciu 1 działów: perceptrony proste i maszyny liniow, algorytmy konstrukcyjne dla sieci skierowanych, wsteczna propagacja błędu uczenie bez nauczyciela, samoorganizacja, PCA, sieci Hopfielda, maszyny Boltzmanna, symulowane wyżarzanie. Oraznależyoddać 2 : przynajmniej jeden program do końca października, przynajmniej dwa programy do końca listopada, przynajmniej trzy programy do końca stycznia. Zwolnienie z egzaminu za wybitną pracę na zajęciach jest możliwe do dnia 2011-02-16. 1.2 Wskazówki Na co należy zwrócić uwagę pisząc progamy: Zadania będą sprawdzane z autorem siedzącym obok, zaoczne sprawdzanie zadań dopuszczane będzie tylko w wyjątkowych sytuacjach. Zadania powinny być napisane tak by umożliwić prostą i szybką ocenę poprawności działania po efektach(ocena poprawności poprzez wypisanie-nastu stron liczb na stdout nie jest ani prosta ani szybka!) Program w zależności od autora będzie uruchamiany na laptopie(może być to laptop autora) bądź komputerze w sali laboratoryjnej. Prosimy upewnić się, że mają Państwo pod ręką wszystkie wymagane środowiska lub/i biblioteki(dotnet framework, jdk, interpreter pythona,...). Podczas sprawdzania należy mieć pod ręką kod źródłowy programu(oraz edytor podświetlający składnię). 1 Zmianawporównaniudopoprzedniegoroku. 2 Zmianawporównaniudopoprzedniegoroku. 1

Optymalnie zadania powinny być oddawane w trakcie zajęć. Fragmentem zaliczenia może być dodatkowe pytanie o algorytm, sposób implementacji, zagadnienia teoretyczne powiązane z zadaniem. Podobnie może być to dopisanie dodatkowej funkcjonalniści w trakcie sprawdzania. Im później oddawane zadanie tym większe szanse na dodatkowe pytania i wyższy poziom trudności. Progamy korzystające z gotowych bibliotek do sieci neuronowych nie będą akceptowane. Teoretycznie dopuszczane są programy z tekstowym interfejsem użytkownika. Teoretycznie. Jeżeli jednak autor nie jest mistrzem ascii-artu, to gorąco rekomendujemy zrobić interfejs graficzny. 21 września 2011 USOS sam wstawi oceny niedostateczne studentom, którzy nie uzyskali zaliczenia. 2 Powtórzenie 2.1 ModelPreceptronu Perceptronem nazywamy następujący model składający się z: określonej liczby wejść n, wagistowarzyszonejzkażdymwejściem w i, i = 1..n funkcji aktywującej f Dynamikaperceptronu.Mając nwejść x 1...x n liczbowychperceptronzwracawartość out = f( n x i w i ) (1) Zakładającprogowąpostaćfunkcji,perceptrondziałajakoklasyfikator,dladanych x 1,.., x n zwracacałkowitą liczbę będącą klasą, do której dane należą. 2.2 Postacie funkcji aktywującej Identyczność f(s) = s takajednostkaliczypoprostusumęważonąwejść, Funkcja progowa(bipolarna) f(s) = i=1 { 0 s < p 1 s p Wartość p może być dodatkowym parametrem opisującym perceptron. Ten typ funkcji modeluje wysyłanie impulsu po przekroczeniu pewnego progu, które to zachowanie z pewnym przybliżeniem charakteryzuje komórki neuronowe. funkcja polarna. Jest to funkcja zalecana do używania w implementacji. { 1 s < p f(s) = +1 s p Funkcja podobna do poprzedniej z tą różnicą, że wartość 1 nie jest elementem neutralnym dodawania i odpowiedź negatywna może mieć pewien wpływ. Sigmoida f(s) = σ(s) = 1 1 + exp( s) Funkcja sigmoidalna może tu dziwić. Wymaga dzielenia i potęgowania, czyli więcej obliczeń, co nie powinno być wskazane przy wielokrotnym wykonywaniu. Jednakże jest ciągła i różniczkowalna co ma zasadnicze znaczenie przy algorytmach uczenia i przybliża funkcją bipolarną. Ponadto zachodzi σ (s) = σ(s) (1 σ(s)) 2

-1.5 1.5 1 0.5 0-0.5-1 -4-2 0 2 4 Rysunek1:Funkcjasigmoidalnazparametrami β = 1, β = 3, β = 10. out 2.3 Uczeniepreceptronu Rysunek 2: Schemat działania perceptronu Danyniechbędziezestaw kprzykładów E = { E (1)...E (k)},gdzie E (i) = (e (i) 1,..., e(i) N ) RN iodpowiadająceimpoprawnewyniki T (1)...T (k).danyteżmamyperceptrononwejściachijednymwyjściu. Rozważmyprzykład E j iodpowiadającąmupoprawnąodpowiedź T j,niechsiećzbieżącymzestawem wag zwróci wartość O. Rozważmy błąd: ERR = T j O Jeżelijestdodatnitomusimyzwiększyć O,jeżeliwejście e j i > 0tozwiększeniewagi w izwiększy O,jeżeli e j i < 0tozmniejszenie w izwiększy O. Jeżeli błąd ERR jest ujemny to musimy zmniejszyć O. Podobnie rozumując musimy zmniejszyć wagi w i jeśliwejście e j i > 0izwiększyć w iwprzeciwnymwypadkutj. e j i < 0. Podsumowując te rozważania otrzymujemy algorytm: Wylosujwagi w i małe,blisko 0. Wybierzprzykład E j iodpowiadającąmupoprawnąodpowiedź T j, Oblicz O wynikdziałaniasiecina E j Oblicz ERR = T j O Uaktualnij wszystkie wagi zgodnie ze wzorem η > 0jeststałąuczenia. w i = w i + η ERR e j i Jeżeli sieć klasyfikuje poprawnie wszystkie(większość) przykłady to zakończ, wpw wróć do 2. UWAGA: Powyższego algorytmu nie należy stosować w implementacjach! UWAGA: W 1969 matematycy Minsky oraz Papert udowodnili, że pojedynczy perceptron jest w stanie poprawnie klasyfikować wyłącznie problemy linowo separowalne. Algorytm sformułowany powyżej nie zatrzyma się, jeżeli nie istnieją wagi, dla których przykłady uczące są poprawnie klasyfikowane. A nawet jeżeli(zostanie to wymuszone ograniczeniem ilości iteracji), to nie gwarantuje, że zwrócone wagi będą optymalne. 3

Rysunek 3: Problem liniowo separowalny(po lewej) i nieseparowalny(po prawej) 2.4 Algorytm Uczenia Kieszonkowego/ Pocket Learning Algorithm Dane: Perceptrononwejsciach, kprzykładówuczących E 1...E k wrazzpoprawnymiodpowiedziami T 1...T k.zakładamy,żefunkcjaaktywującamapostaćpolarną.wtejsytuacjidodatkowymparametram uczącym jest wartość progu p. Wynik:Wartościwag w i orazprogu pktóredająoptymalnąklasyfikację. 1. Przypisujemy wagom i progowi małe losowe wartosci wokół 0, przypisujemy takiemu układowi wag zerowy czas życia, 2. Przebiegamy przykłady losując z listy, 3.Dlawybranegoprzykładu E j sprawdzamy,czy E j jestdobrzeklasyfikowany, Jeslitak,zwiekszamymuczasżyciaojeden.Jezelijesttowyniklepszyniżudotychczasowego rekordzisty, zapominamy go(dotychczasowego rekordzistę) i zapisujemy bieżący układ wag jako nowego rekordzistę. Wracamy do 2. Jeslinie,to w i := w i + T j E j i p := p T j Nowo powstałemu 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. 2.5 Algorytm Uczenia z Zapadką/ Ratchet Learning Algorithm Dane i wyjście jak wyżej. 1. jak powyżej, 2. jak powyżej, 3. jak powyżej, Jeslitak,zwiekszamymuczasżyciaojeden.Jezelijesttowyniklepszyniżudotychczasowego rekordzisty i dodatkowo nowy zestaw wag poprawnie klasyfikuje więcej przykładów uczących niż poprzedni, to zapominamy go(dotychczasowego rekordzistę) i zapisujemy bieżący układ wag jako nowego rekordzistę. Wracamy do 2. Jeslinie,tojakpowyżej 4. jak powyżej, 4

2.6 MaszynyLiniowe Maszyna liniowa składa się z n wejść, l perceptronów. Perceptrony mają swoje kolejne indeksy i te samewejścia.oznaczato,żemlmałącznie nlwag(po ndlakażdegozlperceptronów).będziemyje oznaczaćpoprzez w ij,gdzie i = 1..njestindeksemwejścia,natomaist j = 1..ljestindeksemperceptronu. Uznajemy ponadto, że we wszystkich perceptronach funkcja aktywująca jest identycznością f(x) = x To jest każdy z perceptronów zwraca wyłącznie sumę ważoną out j = n w ij x i (2) i=1 Odpowiedzącałejmaszynyliniowejjestindeksperceptronu,któryzwróciłnajwiększąwartość out j. OUT = {j : k=1..l out k out j } (3) Maszynalinowazwracakategoriędanychwejściowych x 1..x n,alekategoryzacjaniemusibyćbinarna. 2.7 Algorytm Uczenia Maszyny Lionowej Dane:zestawprzykładówuczących E j, j = 1..korazpoprawnychodpowiedzi T j, j = 1..k. Wynik:wagi w ij,dlaktórychsiećdajepoprawneklasyfikacje. 1. Przypisujemy wagom małe losowe wartosci wokół 0, 2. Przebiegamy przykłady losując z listy, 3.Dlawybranegoprzykładu E j sprawdzamy,czy E j jestdobrzeklasyfikowany, Jeslitak,wracamydo2. Jeslinie(npjestkategoria pzamiast q),to w ip + = E j i Wracamy do 2. w iq = E j i 4. Algorytm kończymy po przebiegnięciu odpowiedniej liczby iteracji. Dodajemy modyfikację kieszeni i zapadki(tj. zapamiętywanie najbardziej żywotnych zestawów wag). 3 Zadania 3.1 Zadanie1 Napisz program, który wykorzystuje maszynę liniową lub kilka(naście) perceptronów do rozpoznawania cyfr(lub liter uwaga na liczbę mnogą! program powinien rozpoznawać kilka cyfr). Cyfry powinny być wyświetlane jako układy pikseli na matrycy o niewielkich wymiarach(max. 100 pikseli, oczywiście mowa tu o pikselach na cyfrę, wyświetlanie może być z dużym powiększeniem). Program dodatkowo powinien mieć możliwość wyklikania cyfry(lub czegoś cyfropodobnego) i automatycznej klasyfikacji. Pomysły na rozbudowanie programu: Weścia uczące można zaburzać(tj. odwracać piksel z niewielkim prawdopodobieństwem niezależnie dla danego piksela). Można w ten sposób uzyskać częściową odporność na szumy, Rozpoznawanie cyfr w systemie szesnastkowym, Rozpoznawanie liter(wymaga większej matrycy!), Rozpoznawanie kształtów(okrąg, kwadrat, linia, domek itd), Rozpoznawanie symboliczne http://en.akinator.com/ Rozpoznawanie tekstu pisanego(np. całych liczb) za pomocą myszki na matrycy w programie. 5

3.2 Zadanie2 Dany będzie plik(kilka plików) z listą punktów na płaszczyźnie oraz poprawną klasyfikacją punktu. Klasyfikacja jest binarna: 0 lub 1(+1,-1). # komentarze, informacje o pliku, itp #(ewentualnie wymiar przestrzeni i liczba przykładów uczących) x1y1o1 x2y2o2... Należy napisać program, który nauczy perceptron klasyfikacji na zadanej liście przykładów. Dodatkowo program powinien mieć możliwość wczytać parametry innych punktów(z poza listy uczącej) i wyświetlić je na płaszczyźnie wraz z oznaczeniem klasy. Ponadto dla przykładów z listy uczącej powinno być oznaczenie zarówno o oczekiwanej(z listy) jak i faktycznej(tj. zwróconej przez perceptron) klasyfikacji, np oczekiwana klasyfikacja poprzez kształt, faktyczna poprzez kolor. Pomysłynarozbudowanieprogramu:zadaniedlapunktówwwyżej-wymiarowychprzestrzeniach(R 3, R 4,...),klasyfikacja,któraniejestbinarna(3klasy,4klasy...),statystykinadanychwejściowychoraz wynikach uczenia, automatyczny zapis wyników do pliku. 6