• Nie Znaleziono Wyników

Algorytmy konstruktywistyczne

N/A
N/A
Protected

Academic year: 2021

Share "Algorytmy konstruktywistyczne"

Copied!
23
0
0

Pełen tekst

(1)

Sieci o zmiennej strukturze

Sieci o zmiennej strukturze

Wykład 9’

Włodzisław Duch

Katedra Informatyki Stosowanej UMK

Google: W. Duch

(2)

Co będzie

Uwagi na temat MLP

Sieci o zmiennej strukturze

Algorytmy konstruktywistyczne

Przykłady zastosowań sieci MLP

(3)

Sieci z 1 warstwą ukrytą.

Sieci z 1 warstwą ukrytą.

Uczenie warstwy wyjściowej można uprościć odwracając:

1

( ( ))

;

1 exp(

( ))

( ) ln

;

( )

1

o o H X

H X

o

Y X

H X W Y

o

Mając wartości dochodzące do warstwy wyjściowej można obliczyć wartości W na wybranym zbiorze uczącym w sensie metody najmniejszych kwadratów.

Można też nie uczyć warstwy wejściowej tylko użyć jej do rzutowania danych w wysokowymiarową przestrzeń (biorąc

dostatecznie dużo neuronów) – znane jest to pod szumną nazwą „Extreme Learning Machines”.

H(X) sygnał z warstwy ukrytej

Y(X) aktywacja w. wyjściowej

(4)

Uwagi praktyczne 1

Uwagi praktyczne 1

Ile neuronów?

Zwykle niewiele, zacząć od 1 i zwiększać robiąc kroswalidację; reguły heurystyczne są mało przydatne bo wszystko zależy od rozkładu

(5)

Uwagi praktyczne 2

Uwagi praktyczne 2

Trudności w uczeniu?

Można dodać dodatkowe wyjścia pomocnicze (hints), np. dzielące hierarchicznie na grupy kilku kategorii.

Ogólnie: co ciekawego mogą wykryć pośrednie warstwy? Może warto zmienić cel uczenia?

(6)

Uwagi praktyczne 3

System dobrze się nauczył ale

słabo generalizuje?

Zbyt duża złożoność sieci.Dodać regularyzację.

Stosować kroswalidację do

oceny błędu.

Zatrzymać uczenie zanim się

przetrenuje.

Dane treningowe nie są

(7)

Algorytmy konstruktywistyczne

Algorytmy konstruktywistyczne

Złożoność sieci należy dopasować do złożoności danych: niezbyt prosta ale i niezbyt dopasowana – zajmuje się tym dziedzina

zwana wyborem modelu.

Utwórz wiele sieci; wybierz najlepszą;

używaj algorytmów ewolucyjnych - ale czy warto? używaj komitetów sieci - nie marnuj modeli.

Algorytmy sieciowe:

upraszczające, usuwające połączenia i zbędne neurony; konstruktywne, dodające nowe zasoby w miarę potrzeb; ontogeniczne: rosnące i kurczące.

(8)

AK: upraszczanie

AK: upraszczanie

Zwykle:

mała sieć - prosty model, dobre wyniki;

duża sieć - zła generalizacja, za duża złożoność modelu.

Regularyzacja: duża sieć, elastyczna, ale efektywnie ma mało swobodnych parametrów, zależnie od siły regularyzacji.

1. Utwórz dużą sieć.

2. Trenuj ją z członem regularyzującym.

Metody Bayesowskie pozwalają automatycznie określić parametry regularyzacji (Bishop), ale są rzadko stosowane.

Statystyczne kryteria przydatności neuronów można stosować zamiast regularyzacji. 2 ij i j

W

(9)

Korelacja kaskadowa

Fahlman i Labiere, 1991

Zacznij od zera, dodawaj neurony do warstwy ukrytej. Maksymalizuj korelacje nowego neuronu i z błędem

wykazywanym przez neuron wyjściowy.

( )p

( )p

( )p

;

( )p

( )p

;

i i

p

o

o

Y

F X

W

Y

F X

W

Dodaj kilka neuronów - kandydatów; trenuj maksymalizując korelację;

(10)

KK - schemat

KK - schemat

kandydaci

Warstwa wyjściowa

Uczenie: jakąś wersją

metody BP (np. Quickprop). Po dodaniu kandydata stare neurony ukryte mają

ustalone wagi wejściowe. Nowy neuron łączy się ze wszystkimi istniejącymi. CasCor 2 - minimalizuje różnicę |E(sieć)-E(kand)|

(11)

CasPer

CasPer

Cascade Correlation with Progressive RPROP (1997) Architektura kaskadowa;

3 typy połączeń z różnymi szybkościami uczenia: L1, wejście kandydata z neuronów

ukrytych i wejściowych;

L2 wyjście kandydata do neuronów wyjściowych.

L3 istniejące neurony L1>> L2>> L3

(12)

FlexNet

Mohraz, Protzel 1996.

0. Startuj bez warstw ukrytych, tylko In/Out. Powtarzać 1 i 2: 1. Uczyć aż błąd zacznie spadać powoli.

2. Dodać nową jednostkę w różnych miejscach sieci, zostawić taką, która najbardziej pomaga w uczeniu.

(13)

Algorytm wieżowy

Algorytm wieżowy

Dodaj neuron tworząc nową warstwę;

trenuj aż się nauczy;

zamroź wagi, dodaj kolejny neuron.

Zbiega się po skończonej liczbie kroków dla wypukłych danych.

Każda warstw usuwa przynajmniej

jeden błąd, ale generalizacja może być kiepska.

(14)

Algorytm piramidowy

Algorytm piramidowy

Jeden neuron/warstwę.

Dodaje połączenia pomiędzy odległymi warstwami.

Uczenie - podobnie jak w algorytmie wieżowym.

Używany w programie TDL (Transdimensional Learning)

(15)

Algorytm kieszonkowy

Algorytm kieszonkowy uczenia sieci (Gallant 1990) Próbuje wykorzystać sukcesy, nie tylko błędy.

Stosowany do wzorców binarnych:

1. Przypadkowa inicjalizacja wag.

2. Przypadkowo wybieraj wektory do uczenia. 3. Policz, po ilu wektorach N(p) pojawia się błąd,

zapamiętaj ostatnie wagi W(p) w „kieszonce”

dokonaj korekty W= W(p)+ W(p).

4. Przypadkowo wybieraj wektory do uczenia i licz, kiedy

pojawi się błąd; jeśli N<N(p)to weź W=W(p) (krok wstecz)

5. Powtarzaj aż do skutku ...

(16)

Algorytm kafelkowy

Algorytm kafelkowy

Hierarchia warstw o malejącej liczbie

neuronów (Mezard, Nadal 1989).

Nowe warstwy - wierna reprezentacja, tj. R(X)R(Y) jeśli C(X) C(Y), dla

wektorów binarnych.

Jednostka nadrzędna trenowana jest na dużej liczbie wzorców tak, by wytworzyć możliwie najdłuższy ciąg poprawnych odpowiedzi.

Jednostki pomocnicze uczą się na

(17)

Algorytm upstart

Frean, 1990: neuron wyjściowy

połączony z wejściowymi, wzorce są binarne.

Błędne odpowiedzi typu 0 i 1.

Dodaj 2 neurony, te same wejście, duże W+/-, koryguj błędy typu 0 i 1.

Każdy neuron koryguje  1 błąd. Algorytm uczenia - kieszonkowy.

Poprawny wynik w skończonej liczbie kroków dla wypukłych danych (każdy wektor można odseparować

płaszczyzną).

Binarne drzewo z perceptronem w każdym węźle, dobre wyniki.

Algorytm "upstart"

1

2

2

+

(18)

-IncNet

IncNet

Incremental Network, sieć ontogeniczna, rośnie i maleje (N. Jankowski, 2003).

Jedyna sieć w pełni ontogeniczna: rośnie, kruczy się, i łączy neurony.

Sieć jednowarstwowa, różne f. transferu, model 1-z-N. Statystyczne kryteria wzrostu i kurczenia sieci.

Algorytm uczenia w oparciu o rozszerzony filtr Kalmana, EKF (estymator błędu i parametrów modelu).

(19)

Onto - podsumowanie

Inne sieci ontogeniczne: RAN, FSM - po RBF-ie.

Zalety algorytmów ontogenicznych:

automatyczna konstrukcjazwykle dobre wyniki

zwykle małe sieci, niewiele połączeń

zwykle duża szybkość - trenowane są pojedyncze neurony

Wady:

czasami mogą się przetrenować

algorytmy rosnące nie gwarantują najprostszych sieciniektóre tworzą specyficzne architektury

niewiele dobrych programów

homogeniczne – lepiej czasem użyć różnych funkcji transferu dla

(20)

Kilka zastosowań

Typowe problemy: diagnoza, wykrywanie anomalii prognozowanie, aproksymacja funkcji w nD, kontrola. Dobre benchmarki: XOR, parzystość, kompresja.

NETtalk (Sejnowski i Rosenberg 1987):

7 liter (wybranych z 29 znaków) tekstu w ruchomym okienku, na wyjściu kod fonemu, 7x29=203 wejścia, 80 jednostek ukrytych i 26 wyjściowych.

1024 słowa, korelacja litera/fonem, gaworzenie, po 50 epokach sieć 95% dokładności, 78% poprawnie na nowym tekście.

Zastosowania przemysłowe - strona Boba Marksa. EANN - International Conference on

(21)

Co dalej?

Co dalej?

Sieci Hopfielda

(22)

Koniec wykładu 9’

(23)

Co było

Perceptrony wielowarstwowe.

Algorytm wstecznej propagacji błędów

Cytaty

Powiązane dokumenty

takie drzewo &lt;V, T&gt; rozpinające grafu G, że suma kosztów jego krawędzi  eT c (e) jest najmniejsza.. Mirkowska, ASD_12 Algorytmy na

Niech będzie tekst 100000 znakowy, w którym występują tylko litery a,b,c,d,e,f i a-45tys razy, b-13tys., c-12tys.,.. d-16tys., e -

Powiemy, że problem jest rozstrzygalny, jeśli istnieje algorytm, który dla dowolnych danych x po skończonej liczbie kroków daje rozwiązanie problemu. W przeciwnym

Problem Dany jest ciąg rosnący e[1],..,e[n] oraz element x pewnej przestrzeni liniowo uporządkowanej &lt;E, &gt;. Następnie porównujemy x z kolejnymi elementami ciągu

Każde drzewo decyzyjne dla algorytmu sortującego ciąg n- elementowy przez porównywanie elementów, ma co najmniej wysokość log

Obliczanie wartości wyrażeń.. Czytamy kolejno znaki wyrażenia i kolejne argumenty operacji wpisujemy na stos argumentów, a kolejno spotkane operacje wpisujemy na stos

Zadanie Do zbioru reprezentowanego przez drzewo D dołączyć element e, o ile nie należy on jeszcze do etykiet drzewa D.... Zastosowanie: wyszukiwanie

Powiemy, że problem jest rozstrzygalny, jeśli istnieje algorytm, który dla dowolnych danych x po skończonej liczbie kroków daje rozwiązanie problemu. W przeciwnym