1 / 63

Warstwowe sieci jednokierunkowe - perceptrony

Warstwowe sieci jednokierunkowe - perceptrony. Warstwowe sieci jednokierunkowe zosta ł y nazwane perceptronami przez Franka Rosenblatta i Charlesa Wightmana, którzy jako pierwsi badali je w latach 50 i 60 ubiegłego stulecia. Sieci te mo ż na scharakteryzowa ć w nast ę puj ą cy sposób:.

eytan
Télécharger la présentation

Warstwowe sieci jednokierunkowe - perceptrony

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Warstwowe sieci jednokierunkowe - perceptrony Warstwowe sieci jednokierunkowe zostały nazwane perceptronami przez Franka Rosenblatta i Charlesa Wightmana, którzy jako pierwsi badali je w latach 50 i 60 ubiegłego stulecia Sieci te można scharakteryzować w następujący sposób: Podstawowym elementem perceptronu jest sztuczny neuron, którego funkcją pobudzania (propagacji) jest funkcją sumy a funkcja aktywacji ma na ogół charakter nieliniowy; może to być jednak również funkcja liniowa Poszczególne neurony sieci ułożone są w warstwy; każdy neuron należy do jednej i tylko jednej warstwy. Neurony należące do jednej warstwy nie są ze sobą połączone

  2. Warstwowe sieci jednokierunkowe - perceptrony Warstwy ułożone są jedna za drugą - określone jest ich uporządkowanie. Połączenia pomiędzy neuronami poszczególnych warstw są asymetryczne (jednokierunkowe) i skierowane zawsze zgodnie z uporządkowaniem warstw Sygnały wejściowe dostarczane są do sieci przez wejścia (warstwę wejściową), umiejscowione przed pierwszą warstwą neuronów Ograniczymy się na początek do rozważenia jednowarstwowych sieci jednokierunkowych. Są one często nazywane perceptronami prostymi

  3. Perceptrony proste Struktury lub

  4. Perceptrony proste Realizowane przetwarzanie Przypadki funkcji aktywacji:  przekaźnikowa (perceptron prosty progowy) – zadania klasyfikacji  liniowa (perceptron prosty liniowy) – zadania filtracji, predykcji  nieliniowa (perceptron prosty nieliniowy) – zadania klasyfikacji, w ograniczonym zakresie aproksymacji

  5. Perceptron prosty progowy Realizowane przetwarzanie  Funkcja przekaźnikowa symetryczna  Funkcja przekaźnikowa niesymetryczna

  6. Perceptron prosty progowy gdzie: Wagi warstwy perceptronu prostego można zapisać w postaci macierzy, a progi w postaci wektora

  7. Neuron 1 Neuron k Neuron s Próg Wejście 1 Wejście j Wejście m Perceptron prosty progowy Notacja 1

  8. Neuron 1 Neuron k Neuron s Wejście 1 Wejście 2 Wejście m Wejście 0 - próg Perceptron prosty progowy Notacja 2 (rozszerzona przestrzeń wejść i wag)

  9. Perceptron prosty progowy W perceptronie prostym - poszczególne neurony warstwy są niezależne ponieważ nie istnieją połączenia pomiędzy neuronami warstwy. Można zatem rozpatrywać poszczególne neurony warstwy jako niezależne sieci z m lub m + 1 wejściami (w zależności od notacji). Indeks k można wówczas opuścić- macierz wag staje się wektorem a wektor progów skalarem Notacja 1 Notacja 2

  10. Perceptron prosty progowy Fakty Pojedynczy perceptron jest najprostszą formą sieci neuronowej używanej do klasyfikacji wzorców, które posiadają własność liniowej separowalności tzn. wzorce należące do dwóch różnych klas leżą po przeciwnych stronach hiperpłaszczyzny w przestrzeni atrybutów klasyfikowanych obiektów Pojedynczy perceptron prosty progowy można nauczyć rozpoznawania wzorców należących do dwóch klas. Używając większej liczby neuronów można wykorzystywać perceptron prosty progowy do klasyfikacji wzorców należących do większej liczby klas

  11. Perceptron prosty progowy Fakty Algorytm modyfikacji wag i progu oparty na odpowiedniej regule uczenia podał Rosenblatt (1958, 1962) – zaproponowana reguła uczenia nazywa się regułą perceptronu Rosenblatt'a Rosenblatt udowodnił też, że jeżeli wzorce (wektory) używane do uczenia perceptronu prostego progowego są wybierane z dwóch liniowo separowalnych zbiorów (klas) wówczas algorytm uczenia wykorzystujący regułę perceptronu jest zbieżny – sieć można nauczyć zadania klasyfikacji wzorców do dwóch klas w skończonej liczbie epok

  12. Proces uczenia perceptronu prostego progowego - uczenie zadania klasyfikacji  Uczenie perceptronu prostego prowadzi się metodą z nauczycielem (pod nadzorem) Pożądaną sytuację, jaką chcielibyśmy uzyskać w wyniku procesu uczenia perceptronu progowego można zapisać następującą równością:

  13. Perceptron prosty progowy – istota zadania klasyfikacji Inaczej: Pożądaną sytuację, jaką chcielibyśmy uzyskać w wyniku procesu uczenia można zapisać następującą równością: FA: przekaźnikowa symetryczna FA: przekaźnikowa niesymetryczna

  14. Perceptron prosty progowy – istota zadania klasyfikacji Kiedy proces uczenia doprowadzi do takiej sytuacji? - najpierw przypadek bez progu Argumentem funkcji aktywacji jest iloczyn skalarny dwóch wektorów w i p

  15. Perceptron prosty progowy – istota zadania klasyfikacji  Z określenia funkcji aktywacji wynika, że wyjście perceptronu progowego przyjmuje tylko jedną z dwóch wartości "wysoką" lub "niską" i zmienia swoją wartość dla wartości argumentu równej zero, czyli kiedy: gdzie:  - kąt pomiędzy wektorem wag a wektorem wzorca wejściowego

  16. Perceptron prosty progowy – istota zadania klasyfikacji Warunki te można odczytać w następujący sposób: Na wyjściu perceptronu progowego pojawia się ,,stan wysoki", jeżeli rzut wektora wzorca wejściowego na kierunek wektora wag jest równy zero lub dodatni Na wyjściu perceptronu progowego pojawia się ,,stan niski", jeżeli rzut wektora wzorca wejściowego na kierunek wektora wag jest ujemny Granicą pomiędzy dodatnimi i ujemnymi rzutami wektorów p na kierunek wektora w jest hiperpłaszczyzna przechodząca przez początek układu współrzędnych i do której wektor w jest ortogonalny

  17. p2 p3 p1 p2 p1 W p4 Hiperplaszczyzna rozdzielająca Perceptron prosty progowy – istota zadania klasyfikacji Ilustracja graficzna

  18. p2 wzorce wej ś ciowe maj ą ce wzorce wej ś ciowe maj ą ce dawa ć wzorce wyj ś ciowe niskie dawa ć wzorce wyj ś ciowe wysokie p1 w Perceptron prosty progowy – istota zadania klasyfikacji Warunek uzyskania pożądanego rezultatu uczenia da się spełnić, jeżeli będzie istniała hiperpłaszczyzna rozdzielająca wzorce wejściowe mające wzorce docelowe wysokie i niskie.

  19. Perceptron prosty progowy – istota zadania klasyfikacji Kiedy proces uczenia doprowadzi do pożądanej sytuacji? - przypadek z progiem  Wyjście perceptronu progowego zmienia swoją wartość dla wartości argumentu równej zero, czyli kiedy:

  20. Perceptron prosty progowy – istota zadania klasyfikacji Na hiperpłaszczyznę rozdzielającą można popatrzeć jako na miejsce geometryczne punktów (wektorów) p spełniających określone warunki. W rozważanym uprzednio przypadku (b = 0), można było powiedzieć, że jest to miejsce geometryczne wektorów p ortogonalnych do wektora w(rzut wektorów p na kierunekwektora wag równy zeru). Dla przypadku b  0 wynika, że jest to miejsce geometryczne wektorów p, których rzut na kierunek wektora w przy danym b spełnia warunek:

  21. Hiperpłaszczyzna rozdzielająca p 2 p3 p5 p1 p2 p 1 w p4 Hiperpłaszczyzna Perceptron prosty progowy – istota zadania klasyfikacji Ilustracja graficzna

  22. p2 wzorce wejściowe mające dawać wzorce wyjściowe niskie wzorce wejściowe mające dawać wzorce wyjściowe wysokie p1 w Ponownie: Warunek uzyskania pożądanego rezultatu uczenia da się spełnić, jeżeli będzie istniała hiperpłaszczyzna rozdzielająca wzorce wejściowe mające wzorce docelowe wysokie i niskie.

  23. Jak uzyskać taki rezultat? - Reguła uczenia perceptronu prostego progowego Zajmujemy się problemami liniowo separowalnymi pokażemy w jaki sposób można znaleźć odpowiednie wagi i progi za pomocą reguł uczenia Ogólna reguła modyfikacji wag i progów: lub

  24. Reguła uczenia perceptronu prostego progowego  Reguła Rosenblatt'a: Parametr  jest nazywany współczynnikiem szybkości uczenia. Nadawana jest mu wartość dodatnia i można nim wpływać na szybkość zbieżności procesu uczenia

  25. Uczenie perceptronu prostego progowego

  26. Perceptrony proste progowe - algorytm uczenia (jeden z możliwych) Krok 1. Nadaj wagom i progom wartości początkowe; mogą to być wartości losowe lub nadane w sposób celowy; należy jednak przestrzegać zasady, aby nie były to wartości jednakowe oraz by były niezbyt duże Krok 2. Określ wartość współczynnika szybkości uczenia  Krok 3. Rozpocznij kolejną epokę uczenia perceptronu prostego Krok 4. Pokaż sieci kolejny i-ty wzorzec wejściowy Krok 5. Oblicz wzorzec wyjściowy rzeczywisty a(:,i) Krok 6. Oblicz wektor błędów odpowiedzi e(:,i) = t(:,i) ‑ a(:,i).

  27. Krok 7. Dla kolejnych neuronów, wykonaj: Perceptrony proste progowe - algorytm uczenia (jeden z możliwych)  Jeżeli e(k,i) = 0; weź kolejne k (kolejny neuron)  Jeżeli e(k,i)  0; przeprowadź modyfikacje wartości wag i progów według reguły perceptronu; weź kolejne k (kolejny neuron) Krok 8.  Jeżeli był to ostatni wzorzec uczący przejdź do kroku 9  Jeżeli nie był to ostatni wzorzec uczący; przejdź do kroku 4

  28. Krok 9.  Jeżeli dla wszystkich (wszystkich par uczących, wszystkich neuronów) spełniony był warunek: e(k,i) = 0; zakończ uczenie  Jeżeli nie dla wszystkich (wszystkich par uczących, wszystkich neuronów) spełniony był warunek: e(k,i) = 0; przejdź do kroku 3 (lub kroku 2). Perceptrony proste progowe - algorytm uczenia (jeden z możliwych)

  29. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy  Przykład – percept1 Rozważamy prosty problem klasyfikacji – mamy dwuelementowe wektory, które chcemy klasyfikować do dwóch klas. Zbiór uczący liczy cztery wektory, którym przypisane są wzorce docelowe 1 i 0.

  30. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy  Do rozwiązywania tego zadania klasyfikacji użyjemy perceptronu prostego progowego z niesymetryczną funkcją przekaźnikową (odpowiedzi 0 i 1). Sieć będzie składała się z jednego neuronu (klasyfikacja do dwóch klas) o dwóch wejściach (elementy zbioru są dwuelementowe)

  31. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Ogólna struktura W przykładzie:

  32. Perceptron progowy może być utworzony za pomocą funkcji I składnia NET = NEWP creates a new network with a dialog box(?) newp II składnia >> help newp NEWP Create a perceptron. Syntax net = newp net = newp(pr,s,tf,lf) PR - Rx2 matrix of min and max values for R input elements S - Number of neurons TF - Transfer function, default = 'hardlim' LF - Learning function, default = 'learnp' Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy

  33.  reguła uczenia - learnp Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Zdefiniowanie sieci percept1 korzystając z funkcji newp Bez średnika – pojawi się informacja o zdefiniowanej strukturze >> percept1 = newp([-2,2;-2,2],1,'hardlim','learnp'); Z średnikiem – nie pojawi się informacja o zdefiniowanej strukturze  wektor wejściowy 2 – elementowy; zakres zmian elementów od –2 do 2 Wprowadzone dane:  jeden neuron  funkcja aktywacji - hardlim

  34. percept1 = Neural Network object: architecture: subobject structures: functions: parameters: weight and bias values: other: Działy informacji Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy >> percept1 = newp([-2,2;-2,2],1,'hardlim','learnp'); Informacja o strukturze siecipercept1

  35. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Liczba wejść (źródeł sygnałów wejściowych) Liczba warstw w sieci architecture: numInputs: 1 numLayers: 1 biasConnect: [1] inputConnect: [1] layerConnect: [0] outputConnect: [1] targetConnect: [1] numOutputs: 1 (read-only) numTargets: 1 (read-only) numInputDelays: 0 (read-only) numLayerDelays: 0 (read-only) Występowanie połączeń neuronów warstw z progami (0 lub 1) Występowanie połączeń warstw z wejściami (macierze z elementami 0 lub 1) Występowanie połączeń warstw między sobą (macierze z elementami 0 lub 1) Występowanie połączeń warstw z wyjściami sieci (elementy 0 lub 1) Występowanie połączeń warstw z wyjściami docelowymi (elementy 0 lub 1) Liczba wyjść Liczba wyjść docelowych

  36. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Komórka informacji o poszczególnych wejściach subobject structures: inputs: {1x1 cell} of inputs layers: {1x1 cell} of layers outputs: {1x1 cell} containing 1 output targets: {1x1 cell} containing 1 target biases: {1x1 cell} containing 1 bias inputWeights: {1x1 cell} containing 1 input weight layerWeights: {1x1 cell} containing no layer weights Komórka informacji o poszczególnych warstwach Komórka informacji o poszczególnych wyjściach Komórka informacji o poszczególnych celach Komórka informacji o poszczególnych progach Komórka informacji o wagach wejściowych Komórka informacji o wagach warstwowych

  37. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Odczytywanie informacji o wejściach >> percept1.inputs ans = [1x1 struct] Struktura wejść – 1 wejście >> percept1.inputs{1} ans = range: [2x2 double] size: 2 userdata: [1x1 struct] Informacja o pierwszym wejściu

  38. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Odczytywanie informacji o warstwach Struktura warstw – 1 warstwa >> percept1.layers ans = [1x1 struct] >> percept1.layers{1} ans = dimensions: 1 distanceFcn: '' distances: [] initFcn: 'initwb' netInputFcn: 'netsum' positions: 0 size: 1 topologyFcn: 'hextop' transferFcn: 'hardlim' userdata: [1x1 struct] Informacja o warstwie

  39. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Odczytywanie informacji o macierzy wag warstwy Określenie funkcji inicjalizacji dla macierzy wag >> percept1.inputWeights{1,1} ans = delays: 0 initFcn: 'initzero' learn: 1 learnFcn: 'learnp' learnParam: [] size: [1 2] userdata: [1x1 struct] weightFcn: 'dotprod' >> percept1.inputWeights{1,1}.initFcn = 'rands'; Ponowne odczytywanie informacji o macierzy wag warstwy >> percept1.inputWeights{1,1} ans = delays: 0 initFcn: 'rands' learn: 1 learnFcn: 'learnp' learnParam: [] size: [1 2] userdata: [1x1 struct] weightFcn: 'dotprod'

  40. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Odczytywanie informacji o wektorze progów Określenie funkcji inicjalizacji dla wektora progów >> percept1.biases{1} ans = initFcn: 'initzero' learn: 1 learnFcn: 'learnp' learnParam: [] size: 1 userdata: [1x1 struct] >> percept1.biases{1}.initFcn = 'rands'; Ponowne odczytywanie informacji o macierzy wag warstwy >> percept1.biases{1} ans = initFcn: 'rands' learn: 1 learnFcn: 'learnp' learnParam: [] size: 1 userdata: [1x1 struct]

  41. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Odczytywanie informacji o wektorze wyjść >> percept1.outputs{1} ans = size: 1 userdata: [1x1 struct] Odczytywanie informacji o wektorze celów >> percept1.targets{1} ans = size: 1 userdata: [1x1 struct]

  42. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Powracamy bliżej przykładu !!! Wprowadzimy do przestrzeni roboczej MATLAB'a bloki zbiorów uczących >> P=[-0.5, -0.5, 0.3, 0.0;-0.5, 0.5, -0.5, 1.0] P = -0.5000 -0.5000 0.3000 0 -0.5000 0.5000 -0.5000 1.0000 >> T=[1,1,0,0] T = 1 1 0 0

  43. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Zbiór uczący możemy obejrzeć: Określenie zakresu skal >> V=[-2,2,-2,2] V = -2 2 -2 2 Odpowiedzi 0 Odpowiedzi 1 Rysowanie zbioru uczącego >> plotpv(P,T,V)

  44. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Prosta decyzyjna po inicjalizacji Inicjalizacja sieci >> init(percept1) Odczytanie wartości wag i progów po inicjalizacji sieci Rysowanie prostej decyzyjnej >> plotpc(IW,b) >> percept1.IW{1} ans = -0.1795 0.7873 >> percept1.b{1} ans = 0.8338 Przepisanie wag i progów do macierzy IW i wektora b >> IW = percept1.IW{1,1} IW = -0.1795 0.7873 >> b = percept1.b{1} b = 0.8338

  45. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Odpowiedzi sieci – wzorce wyjściowe rzeczywiste >> A = sim(percept1, P) A = 1 1 1 1 Błędy odpowiedzi >> E = T - A E = 0 0 -1 -1 Były błędy – potrzebna modyfikacja wag i progów >> dIW = learnp([],P,[],[],[],[],E,[],[],[],[],[]) dIW = -0.3000 -0.5000 >> db = learnp([],[1,1,1,1],[],[],[],[],E,[],[],[],[],[]) db = -2

  46. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Położenie prostej decyzyjnej po pierwszej epoce uczenia Rysowanie prostej decyzyjnej Nowe wartości wag i progów >> plotpc(IW,b) >> IW = IW + dIW IW = -0.4795 0.2873 >> b = b + db b = -1.1662

  47. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Przepisanie wag i progów >> percept1.IW{1,1} = IW; >> percept1.b{1} = b; Odpowiedzi sieci – wzorce wyjściowe rzeczywiste po pierwszej epoce uczenia >> A = sim(percept1, P) A = 0 0 0 0 Po pierwszej epoce uczenia – były błędy; potrzebna modyfikacja wag i progów Błędy odpowiedzi po pierwszej epoce uczenia >> dIW = learnp([],P,[],[],[],[],E,[],[],[],[],[]) dIW = -1 0 >> db = learnp([],[1,1,1,1],[],[],[],[],E,[],[],[],[],[]) db = 2 >> E = T - A E = 1 1 0 0

  48. Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Położenie prostej decyzyjnej po drugiej epoce uczenia Rysowanie prostej decyzyjnej >> plotpc(IW,b) Nowe wartości wag i progów >> IW = IW + dIW IW = -1.4795 0.2873 >> b = b + db b = 0.8338

  49. >> dIW = learnp([],P,[],[],[],[],E,[],[],[],[],[]) dIW = -0.3000 -0.5000 >> db = learnp([],[1,1,1,1],[],[],[],[],E,[],[],[],[],[]) db = -2 Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Przepisanie wag i progów >> percept1.IW{1,1} = IW; >> percept1.b{1} = b; Odpowiedzi sieci – wzorce wyjściowe rzeczywiste po drugiej epoce uczenia Po drugiej epoce uczenia – były błędy; potrzebna modyfikacja wag i progów >> A = sim(percept1, P) A = 1 1 1 1 Błędy odpowiedzi po drugiej epoce uczenia >> E = T - A E = 0 0 -1 -1

  50. >> IW = IW + dIW IW = -1.7795 -0.2127 >> b = b + db b = -1.1662 Przybornik Neural Network w środowisku MATLAB/Simulink Perceptron prosty progowy Położenie prostej decyzyjnej po trzeciej epoce uczenia Rysowanie prostej decyzyjnej Nowe wartości wag i progów >> plotpc(IW,b)

More Related