• Nie Znaleziono Wyników

Wykład 12 – Uczenie sieci neuronowych

N/A
N/A
Protected

Academic year: 2021

Share "Wykład 12 – Uczenie sieci neuronowych"

Copied!
99
0
0

Pełen tekst

(1)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie

Podstawy uczenia maszynowego

Wykład 12 – Uczenie sieci neuronowych

Jarosław Miszczak

26/05/2021

(2)

1 Uczenie nadzorowane Uczenie perceptronu Wsteczna propagacja 2 Uczenie nienadzorowane Sieci Kohonena 3 Podsumowanie Podsumowanie Materiały dodatkowe

(3)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

3 / 26

(4)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Perceptron przepuszcza pobudzenie jxj θj przez funkcję Θ

Heaviside’a, gdzie xj(i ) to j -ta składowa przykładu x(i )

Celem jest taki taki dobór θi żeby zminimalizować średni błąd

na danych uczących, 1 m m X i =1 |yi − ˆyi|.

(5)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Naszym wejściem jest zbiór przykładów z etykietami

{(xi, yi) : i = 1, . . . , m}

Perceptron przepuszcza pobudzenie P jx

(i )

j θj przez funkcję Θ

Heaviside’a, gdzie xj(i ) to j -ta składowa przykładu x(i )

Celem jest taki taki dobór θi żeby zminimalizować średni błąd

na danych uczących, 1 m m X i =1 |yi − ˆyi|. 4 / 26

(6)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Naszym wejściem jest zbiór przykładów z etykietami

{(xi, yi) : i = 1, . . . , m}

Perceptron przepuszcza pobudzenie P jx

(i )

j θj przez funkcję Θ

Heaviside’a, gdzie xj(i ) to j -ta składowa przykładu x(i )

(7)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Naszym wejściem jest zbiór przykładów z etykietami

{(xi, yi) : i = 1, . . . , m}

Perceptron przepuszcza pobudzenie P jx

(i )

j θj przez funkcję Θ

Heaviside’a, gdzie xj(i ) to j -ta składowa przykładu x(i )

Celem jest taki taki dobór θi żeby zminimalizować średni błąd

na danych uczących, 1 m m X i =1 |yi − ˆyi|. 4 / 26

(8)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Proces uczenia polega na wykonaniu dla każdego przykładu xi, i = 1, 2, . . . , m, następujących kroków:

θj(t + 1) = θj(t) + r (yi− ˆyi)xj(i ).

Czasem błąd perceptronu dla i -tego przykładu oznacza się jako

δi = yi − ˆyi,

(9)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Proces uczenia polega na wykonaniu dla każdego przykładu xi, i = 1, 2, . . . , m, następujących kroków: Wylicz ˆ yi(t) = Θ( X j xj(i )θj).

Ustal nową wagę jako

θj(t + 1) = θj(t) + r (yi− ˆyi)xj(i ).

Czasem błąd perceptronu dla i -tego przykładu oznacza się jako

δi = yi − ˆyi,

i regułę tą nazywa się regułą delta.

(10)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Proces uczenia polega na wykonaniu dla każdego przykładu xi, i = 1, 2, . . . , m, następujących kroków: Wylicz ˆ yi(t) = Θ( X j xj(i )θj).

Ustal nową wagę jako

(11)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Proces uczenia polega na wykonaniu dla każdego przykładu xi, i = 1, 2, . . . , m, następujących kroków: Wylicz ˆ yi(t) = Θ( X j xj(i )θj).

Ustal nową wagę jako

θj(t + 1) = θj(t) + r (yi− ˆyi)xj(i ).

Czasem błąd perceptronu dla i -tego przykładu oznacza się jako

δi = yi − ˆyi,

i regułę tą nazywa się regułą delta.

(12)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Przykład (nie) uczenia się perceptronu

prostą.

(13)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Przykład (nie) uczenia się perceptronu

XOR czy przykład, że perceptron nie działa.

NAND czyli NOT AND – zbiory separowalne jedną prostą.

Przykład w systemie Mathematica: Perceptron-NAND-XOR.nb

(14)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Przykład (nie) uczenia się perceptronu

XOR czy przykład, że perceptron nie działa. NAND czyli NOT AND – zbiory separowalne jedną prostą.

(15)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Przykład (nie) uczenia się perceptronu

XOR czy przykład, że perceptron nie działa. NAND czyli NOT AND – zbiory separowalne jedną prostą.

Przykład w systemie Mathematica: Perceptron-NAND-XOR.nb

(16)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu Co z tego wynika?

Dlatego zamiast funkcji Heaviside wykorzystuje się jej ciągłe odpowiedniki.

(17)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu Co z tego wynika?

Uczenie perceptronu przypomina krok w metodzie zejścia gradientowego.

Ale żeby wyliczać gradient musimy mieć funkcję różniczkowalną.

Dlatego zamiast funkcji Heaviside wykorzystuje się jej ciągłe odpowiedniki.

(18)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu Co z tego wynika?

Uczenie perceptronu przypomina krok w metodzie zejścia gradientowego.

Ale żeby wyliczać gradient musimy mieć funkcję różniczkowalną.

(19)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu Co z tego wynika?

Uczenie perceptronu przypomina krok w metodzie zejścia gradientowego.

Ale żeby wyliczać gradient musimy mieć funkcję różniczkowalną.

Dlatego zamiast funkcji Heaviside wykorzystuje się jej ciągłe odpowiedniki.

(20)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Jako ciągła funkcja aktywacji sprawdzają się

tangens hiperboliczny f (x ) = e

βx− e−βx

eβx+ e−βx

Ich wybór jest częścią modelu neuronu.

(21)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Jako ciągła funkcja aktywacji sprawdzają się funkcja logistyczna f (x ) = 1 1 + exp(−βx ) tangens hiperboliczny f (x ) = e βx− e−βx eβx+ e−βx

Ich wybór jest częścią modelu neuronu.

(22)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Jako ciągła funkcja aktywacji sprawdzają się

funkcja logistyczna f (x ) = 1

1 + exp(−βx )

Ich wybór jest częścią modelu neuronu. -2 -1 0 1 2 -1.0 -0.5 0.0 0.5 1.0

(23)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Jako ciągła funkcja aktywacji sprawdzają się funkcja logistyczna f (x ) = 1 1 + exp(−βx ) tangens hiperboliczny f (x ) = e βx− e−βx eβx+ e−βx

Ich wybór jest częścią modelu neuronu. -2 -1 0 1 2 -1.0 -0.5 0.0 0.5 1.0 8 / 26

(24)

Jako ciągła funkcja aktywacji sprawdzają się funkcja logistyczna f (x ) = 1 1 + exp(−βx ) tangens hiperboliczny f (x ) = e βx− e−βx eβx+ e−βx

Ich wybór jest częścią modelu neuronu. -2 -1 0 1 2 -1.0 -0.5 0.0 0.5 1.0

(25)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=1 9 / 26

(26)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=2

(27)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=3 9 / 26

(28)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=4

(29)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=5 9 / 26

(30)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=6

(31)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=7 9 / 26

(32)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=8

(33)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=9 9 / 26

(34)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=10

(35)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=11 9 / 26

(36)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=12

(37)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=13 9 / 26

(38)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=14

(39)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=15 9 / 26

(40)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=16

(41)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=17 9 / 26

(42)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=18

(43)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=19 9 / 26

(44)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=20

(45)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=21 9 / 26

(46)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=22

(47)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=23 9 / 26

(48)

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=24

(49)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

W tych funkcjach aktywacji możemy sterować stromością sigmoidy.

Na przykład zmieniając wartość

β dla funkcja logistycznej,

f (x ) = 1 1 + exp(−βx ). -2 -1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 β=25 9 / 26

(50)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Załóżmy teraz, że rozpatrujemy funkcję błędu

J(θ) = m X i =1 J(i )(w ) = 1 2 m X i =1 y(i )− f (X k θkxk(i )) !2 .

(51)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Załóżmy teraz, że rozpatrujemy funkcję błędu

J(θ) = m X i =1 J(i )(w ) = 1 2 m X i =1 y(i )− f (X k θkxk(i )) !2 .

Jeżeli f jest funkcją różniczkowalną, to możemy określić kierunek zmiany wag w kierunku przeciwnym do kierunku gradientu funkcji kosztu.

(52)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Po przetworzeniu i -tego przykładu wektor wag jest aktualizowany jako

θk(i + 1) = θk(i ) − r ∂J ∂θk

Tutaj, pomijając indeks przykładu dla ˆy ≡ ˆy(i ) (odpowiedź dla i -tego przykładu), oraz e ≡ e(i ), ˆy = f (e) oraz e =P

(53)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Po przetworzeniu i -tego przykładu wektor wag jest aktualizowany jako θk(i + 1) = θk(i ) − r ∂J ∂θk = θk(i ) − r ∂J ∂ ˆy ∂ ˆy ∂θk = θk(i ) − r ∂J ∂ ˆy ∂ ˆy ∂e ∂e ∂θk

Tutaj, pomijając indeks przykładu dla ˆy ≡ ˆy(i ) (odpowiedź dla i -tego przykładu), oraz e ≡ e(i ), ˆy = f (e) oraz e =P

kθkxk.

(54)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Po przetworzeniu i -tego przykładu wektor wag jest aktualizowany jako θk(i + 1) = θk(i ) − r ∂J ∂θk = θk(i ) − r ∂J ∂ ˆy ∂ ˆy ∂θk = θk(i ) − r ∂J ∂ ˆy ∂ ˆy ∂e ∂e ∂θk

(55)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu

Po przetworzeniu i -tego przykładu wektor wag jest aktualizowany jako θk(i + 1) = θk(i ) − r ∂J ∂θk = θk(i ) − r ∂J ∂ ˆy ∂ ˆy ∂θk = θk(i ) − r ∂J ∂ ˆy ∂ ˆy ∂e ∂e ∂θk

Tutaj, pomijając indeks przykładu dla ˆy ≡ ˆy(i ) (odpowiedź dla i -tego przykładu), oraz e ≡ e(i ), ˆy = f (e) oraz e =P

kθkxk.

(56)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu ∂ ˆy Natomiast wzbudzenie e =P kxkθk, więc ∂e ∂θk = xk θk(i + 1) = θk(i ) − r ∂J ∂ ˆy ∂ ˆy ∂e ∂e ∂θk

(57)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu Ponieważ J(ˆy ) = 12(y − ˆy )2 mamy ∂J ∂ ˆy = −(y − ˆy ) Natomiast wzbudzenie e =P kxkθk, więc ∂e ∂θk = xk θk(i + 1) = θk(i ) + r (y − ˆy ) ∂ ˆy ∂e ∂e ∂θk 12 / 26

(58)

Ponieważ J(ˆy ) = 12(y − ˆy )2 mamy ∂J ∂ ˆy = −(y − ˆy ) Natomiast wzbudzenie e =P kxkθk, więc ∂e ∂θk = xk θk(i + 1) = θk(i ) + r (y − ˆy ) ∂ ˆy ∂exk

(59)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Uczenie perceptronu Ponieważ J(ˆy ) = 12(y − ˆy )2 mamy ∂J ∂ ˆy = −(y − ˆy ) Natomiast wzbudzenie e =P kxkθk, więc ∂e ∂θk = xk θk(i + 1) = θk(i ) + r (y − ˆy ) ∂ ˆy ∂exk

Uwzględniając, że ∂ ˆ∂ey to pochodna funkcji aktywacji, dostajemy

∆θk = r δxk

(60)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Wsteczna propagacja

Ale wiemy już, że sieci jednowarstwowe nie są zbyt potężne. Realnym problemem jest obliczenie wag dla sieci w których mam wiele warstwa neuronów.

W ten sposób działa algorytm wstecznej propagacji błędu.

D.E. Rumelhart, G.E. Hinton, R.J. Williams, Learning representations by back-propagating errors, Nature. 323 (6088): 533-536 (1986).

(61)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Wsteczna propagacja

Ale wiemy już, że sieci jednowarstwowe nie są zbyt potężne. Realnym problemem jest obliczenie wag dla sieci w których mam wiele warstwa neuronów.

W tym wypadku błędy popełniane na neuronie w warstwie n.

Neuron warstwy poprzedniej powinien dostać informację o błędzie proporcjonalną do współczynnika z jakim przyczynia się do aktywacji neuronu w warstwie n + 1.

W ten sposób działa algorytm wstecznej propagacji błędu.

D.E. Rumelhart, G.E. Hinton, R.J. Williams, Learning representations by back-propagating errors, Nature. 323 (6088): 533-536 (1986).

(62)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Wsteczna propagacja

Ale wiemy już, że sieci jednowarstwowe nie są zbyt potężne. Realnym problemem jest obliczenie wag dla sieci w których mam wiele warstwa neuronów.

W tym wypadku błędy popełniane na neuronie w warstwie n. Neuron warstwy poprzedniej powinien dostać informację o błędzie proporcjonalną do współczynnika z jakim przyczynia się do aktywacji neuronu w warstwie n + 1.

(63)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Wsteczna propagacja

Ale wiemy już, że sieci jednowarstwowe nie są zbyt potężne. Realnym problemem jest obliczenie wag dla sieci w których mam wiele warstwa neuronów.

W tym wypadku błędy popełniane na neuronie w warstwie n. Neuron warstwy poprzedniej powinien dostać informację o błędzie proporcjonalną do współczynnika z jakim przyczynia się do aktywacji neuronu w warstwie n + 1.

W ten sposób działa algorytm wstecznej propagacji błędu.

D.E. Rumelhart, G.E. Hinton, R.J. Williams, Learning representations by back-propagating errors, Nature. 323 (6088): 533-536 (1986).

(64)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Wsteczna propagacja

Algorytm wstecznej propagacji błędu pozwala na efektywne uczenie jednokierunkowych sieci neuronowych.

Algorytm wstecznej propagacji błędu jako algorytm spadku gradientowego nie jest odporny na ich występowanie.

(65)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Wsteczna propagacja

Algorytm wstecznej propagacji błędu pozwala na efektywne uczenie jednokierunkowych sieci neuronowych.

Głównym problemem jest postać funkcji kosztu, a właściwie występowanie lokalnych minimów.

W przypadku sieci nieliniowych funkcja kosztu ma zazwyczaj wiele lokalnych minimów.

Algorytm wstecznej propagacji błędu jako algorytm spadku gradientowego nie jest odporny na ich występowanie.

(66)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Wsteczna propagacja

Algorytm wstecznej propagacji błędu pozwala na efektywne uczenie jednokierunkowych sieci neuronowych.

Głównym problemem jest postać funkcji kosztu, a właściwie występowanie lokalnych minimów.

W przypadku sieci nieliniowych funkcja kosztu ma zazwyczaj wiele lokalnych minimów.

(67)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Uczenie perceptronu Wsteczna propagacja

Uczenie nadzorowane

Wsteczna propagacja

Algorytm wstecznej propagacji błędu pozwala na efektywne uczenie jednokierunkowych sieci neuronowych.

Głównym problemem jest postać funkcji kosztu, a właściwie występowanie lokalnych minimów.

W przypadku sieci nieliniowych funkcja kosztu ma zazwyczaj wiele lokalnych minimów.

Algorytm wstecznej propagacji błędu jako algorytm spadku gradientowego nie jest odporny na ich występowanie.

(68)
(69)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Skoro sieci neuronowe mają być sposobem na odtworzenie działania mózgu, to powinny działać tak dobrze jak mózg.

Mózg/neurony biologiczne potrafią sobie radzić z rozpoznawaniem wzoróc bez nadzoru.

Nic dziwnego, że chcielibyśmy uczyć sieci neuronowe sposób nienadzorowany.

(70)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Skoro sieci neuronowe mają być sposobem na odtworzenie działania mózgu, to powinny działać tak dobrze jak mózg.

Mózg/neurony biologiczne potrafią sobie radzić z rozpoznawaniem wzoróc bez nadzoru.

(71)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Skoro sieci neuronowe mają być sposobem na odtworzenie działania mózgu, to powinny działać tak dobrze jak mózg.

Mózg/neurony biologiczne potrafią sobie radzić z rozpoznawaniem wzoróc bez nadzoru.

Nic dziwnego, że chcielibyśmy uczyć sieci neuronowe sposób nienadzorowany.

(72)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Wracamy zatem do świata w którym dane nie są przypisane do klas.

(73)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Wracamy zatem do świata w którym dane nie są przypisane do klas.

Nasz zbiór uczący jest postaci x1, x2, . . . , xm czyli nie mamy

etykiet.

Sieć może nauczyć się podobieństwa między przykładami. Przykładem takich sieci są sieci Kohonena.

(74)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Wracamy zatem do świata w którym dane nie są przypisane do klas.

Nasz zbiór uczący jest postaci x1, x2, . . . , xm czyli nie mamy

etykiet.

(75)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Wracamy zatem do świata w którym dane nie są przypisane do klas.

Nasz zbiór uczący jest postaci x1, x2, . . . , xm czyli nie mamy

etykiet.

Sieć może nauczyć się podobieństwa między przykładami. Przykładem takich sieci są sieci Kohonena.

(76)

Sieć Kohonena

Sieć Kohonena lub odwzorowanie Kohonena lub Self-Organizing Map zaproponowano w latach ’80.

The principal discovery is that in a simple network of adaptive

physical elements which receives signals from a primary event

space, the signal representations are automatically mapped onto a set of output responses in such a way that the responses acquire

the same topological order as that of the primary events.

Teuvo Kohonen, Self-organized formation of topologically correct feature maps, Biological Cybernetics volume 43, pages 59-69 (1982)

(77)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Sieć Kohonena określona jest przez

Graf połączeń między neuronami (najczęściej siatka 2D lub siatka heksagonalna).

Funkcję odległości służącą do określenia podobieństwa między przykładami.

Funkcję sąsiedztwa służącą do określenia wpływu neuronu na najbliższych sąsiadów.

(78)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Sieć Kohonena określona jest przez

Graf połączeń między neuronami (najczęściej siatka 2D lub siatka heksagonalna).

(79)

Uczenie nadzorowane

Uczenie nienadzorowane

Podsumowanie

Sieci Kohonena

Uczenie nienadzorowane

Sieć Kohonena określona jest przez

Graf połączeń między neuronami (najczęściej siatka 2D lub siatka heksagonalna).

Funkcję odległości służącą do określenia podobieństwa między przykładami.

Funkcję sąsiedztwa służącą do określenia wpływu neuronu na najbliższych sąsiadów.

(80)

Sieć Kohonena określona jest przez

Graf połączeń między neuronami (najczęściej siatka 2D lub siatka heksagonalna).

Funkcję odległości służącą do określenia podobieństwa między przykładami.

Funkcję sąsiedztwa służącą do określenia wpływu neuronu na najbliższych sąsiadów.

(81)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

Algorytm uczenia sieci Kohonena

Inicjalizacja wartości wag w nodach. Dla każdego przykład ze zbioru uczącego

Oblicz odległość między przykładem a elementami siec. Wybierz neuron najbliższy do przykładu.

Zaktualizuj wartość neuronu zgodnie ze wzorem wBMU(i + 1) = wBMU(i ) + r (i )d (wBMU(i ), x ).

Warunkiem stopu może być liczba iteracji lub wyzerowanie r (i ).

(82)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

Algorytm uczenia sieci Kohonena

Inicjalizacja wartości wag w nodach.

Dla każdego przykład ze zbioru uczącego

Warunkiem stopu może być liczba iteracji lub wyzerowanie r (i ).

(83)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

Algorytm uczenia sieci Kohonena

Inicjalizacja wartości wag w nodach. Dla każdego przykład ze zbioru uczącego

Oblicz odległość między przykładem a elementami siec. Wybierz neuron najbliższy do przykładu.

Zaktualizuj wartość neuronu zgodnie ze wzorem wBMU(i + 1) = wBMU(i ) + r (i )d (wBMU(i ), x ).

Warunkiem stopu może być liczba iteracji lub wyzerowanie r (i ).

(84)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

Algorytm uczenia sieci Kohonena

Inicjalizacja wartości wag w nodach. Dla każdego przykład ze zbioru uczącego

Oblicz odległość między przykładem a elementami siec.

Warunkiem stopu może być liczba iteracji lub wyzerowanie r (i ).

(85)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

Algorytm uczenia sieci Kohonena

Inicjalizacja wartości wag w nodach. Dla każdego przykład ze zbioru uczącego

Oblicz odległość między przykładem a elementami siec. Wybierz neuron najbliższy do przykładu.

Zaktualizuj wartość neuronu zgodnie ze wzorem wBMU(i + 1) = wBMU(i ) + r (i )d (wBMU(i ), x ).

Warunkiem stopu może być liczba iteracji lub wyzerowanie r (i ).

(86)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

Algorytm uczenia sieci Kohonena

Inicjalizacja wartości wag w nodach. Dla każdego przykład ze zbioru uczącego

Oblicz odległość między przykładem a elementami siec. Wybierz neuron najbliższy do przykładu.

Zaktualizuj wartość neuronu zgodnie ze wzorem wBMU(i + 1) = wBMU(i ) + r (i )d (wBMU(i ), x ).

(87)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

Algorytm uczenia sieci Kohonena

Inicjalizacja wartości wag w nodach. Dla każdego przykład ze zbioru uczącego

Oblicz odległość między przykładem a elementami siec. Wybierz neuron najbliższy do przykładu.

Zaktualizuj wartość neuronu zgodnie ze wzorem wBMU(i + 1) = wBMU(i ) + r (i )d (wBMU(i ), x ).

Warunkiem stopu może być liczba iteracji lub wyzerowanie r (i ).

(88)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

W sieci Kohonena podobne przykłady powinny aktywizować sąsiednie neurony.

(89)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

W sieci Kohonena podobne przykłady powinny aktywizować sąsiednie neurony.

Dlatego sieci Kohonena zachowują topologię przestrzeni przykładów.

Sieć Kohonena dokonuje mapowania z przestrzeni wielowymiarowej na przestrzeń 2D.

(90)

W sieci Kohonena podobne przykłady powinny aktywizować sąsiednie neurony.

Dlatego sieci Kohonena zachowują topologię przestrzeni przykładów.

Sieć Kohonena dokonuje mapowania z przestrzeni wielowymiarowej na przestrzeń 2D.

(91)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Sieci Kohonena

Uczenie nienadzorowane

Sieci Kohonena

Przykład sieci Kohonena

Przykład w Orange: orange-painted-som-ex.ows

(92)
(93)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Podsumowanie Materiały dodatkowe

Podsumowanie

Do zapamiętania na temat uczenia sieci neuronowych:

Sieci neuronowe mogą być uczone w sposób nadzorowany lub nienadzorowany.

Dla efektywnego uczenia wielowarstwowych sieci jednokierunkowych (np. MLP) kluczowy jest algorytm wstecznej propagacji błędów.

Sieci uczone bez nadzoru są wzorowane na układzie struktur w mózgu.

Przykładem sieci uczonej bez nadzoru są odwzorowania Kohonena.

(94)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Podsumowanie Materiały dodatkowe

Podsumowanie

Do zapamiętania na temat uczenia sieci neuronowych:

Sieci neuronowe mogą być uczone w sposób nadzorowany lub nienadzorowany.

w mózgu.

Przykładem sieci uczonej bez nadzoru są odwzorowania Kohonena.

(95)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Podsumowanie Materiały dodatkowe

Podsumowanie

Do zapamiętania na temat uczenia sieci neuronowych:

Sieci neuronowe mogą być uczone w sposób nadzorowany lub nienadzorowany.

Dla efektywnego uczenia wielowarstwowych sieci jednokierunkowych (np. MLP) kluczowy jest algorytm wstecznej propagacji błędów.

Sieci uczone bez nadzoru są wzorowane na układzie struktur w mózgu.

Przykładem sieci uczonej bez nadzoru są odwzorowania Kohonena.

(96)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Podsumowanie Materiały dodatkowe

Podsumowanie

Do zapamiętania na temat uczenia sieci neuronowych:

Sieci neuronowe mogą być uczone w sposób nadzorowany lub nienadzorowany.

Dla efektywnego uczenia wielowarstwowych sieci jednokierunkowych (np. MLP) kluczowy jest algorytm wstecznej propagacji błędów.

Sieci uczone bez nadzoru są wzorowane na układzie struktur w mózgu.

(97)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Podsumowanie Materiały dodatkowe

Podsumowanie

Do zapamiętania na temat uczenia sieci neuronowych:

Sieci neuronowe mogą być uczone w sposób nadzorowany lub nienadzorowany.

Dla efektywnego uczenia wielowarstwowych sieci jednokierunkowych (np. MLP) kluczowy jest algorytm wstecznej propagacji błędów.

Sieci uczone bez nadzoru są wzorowane na układzie struktur w mózgu.

Przykładem sieci uczonej bez nadzoru są odwzorowania Kohonena.

(98)

3Blue1Brown: But what is a neural network?, Chapter 1, Deep learning, https://youtu.be/aircAruvnKk

3Blue1Brown: Backpropagation calculus, Chapter 4, Deep learning, https://youtu.be/tIeHLnjs5U8

StatQuest: Neural Networks Pt. 2: Backpropagation Main Ideas, https://youtu.be/IN2XmBhILt4

D.E. Rumelhart, G.E. Hinton, R.J. Williams, Learning

representations by back-propagating errors, Nature. 323

(6088): 533-536 (1986). Dostępny na stronie G. Hintona. Teuvo Kohonen and Timo Honkela (2007), Kohonen network, Scholarpedia, 2(1):1568.

MiniSOM: minimalistic and NumPy-based implementation of the Self Organizing Map,

(99)

Uczenie nadzorowane Uczenie nienadzorowane Podsumowanie Podsumowanie Materiały dodatkowe

Podsumowanie

Następny wykład: kolokwium/test.

Cytaty

Powiązane dokumenty

Jak mamy jedną dystrybucję i chcemy próbkować dla drugiej dystrybucji takiej, że funkcja gęstości znajduje się poniżej. To najpierw generujemy x dla pierwszej dystrybucji,

R´ownanie jest uproszczone, poniewa˙z znamy tylko rozk lady skutk´ow akcji nale˙z acych do ֒ polityki, i nie mo˙zemy oblicza´c najlepszej akcji w ka˙zdym stanie...

a ֒ eksploracji mog loby by´c wykonywanie przypadkowych akcji we wszystkich stanach, z pewnym ustalonym prawdopodobie´nstwem,. a w pozosta lych przypadkach wykonywanie akcji

• Składową błędu dla każdego j-tego połączenia określamy jako pochodną cząstkową błędu względem j-tej wagi. • Składowych tych będziemy mogli użyć do

Herskovits, A Bayesian Method for Induction of Probailistic Networks from Data, Machoine Learning, 9, pp. Nielsen, Bayesian Networks and Decision Graphs,

Wprowadzenie Uczenie agenta Podsumowanie Uczenia metodą prób i błędów Zarys modelu Przykład – Frozen-Lake Wprowadzenie Zarys modelu Stan.. Stan s ∈ S jest kompletnym

nego i alegorycznego, opartych na odbiorze obrazów emitowanych przez mass media; uczenia analizowania zawartych w nich informacji i wartości, oceniania (dobre – złe, stare –

Erhan, Bengio, (2010) Why Does Unsupervised Pre-training Help Deep Learning?..