23
Inteligencja Inteligencja Obliczeniowa Obliczeniowa Sieci o zmiennej Sieci o zmiennej strukturze. strukturze. Wykład 12 Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch

Inteligencja Obliczeniowa Sieci o zmiennej strukturze

  • Upload
    more

  • View
    56

  • Download
    0

Embed Size (px)

DESCRIPTION

Inteligencja Obliczeniowa Sieci o zmiennej strukturze. Wykład 12 Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch. Uwagi na temat MLP Sieci o zmiennej strukturze Algorytmy konstruktywistyczne Przykłady zastosowań sieci MLP. Co będzie. Sieci z 1 warstwą ukrytą. - PowerPoint PPT Presentation

Citation preview

Page 1: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Inteligencja ObliczeniowaInteligencja ObliczeniowaSieci o zmiennej strukturze.Sieci o zmiennej strukturze.

Wykład 12

Włodzisław Duch

Katedra Informatyki Stosowanej UMK

Google: W. Duch

Page 2: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Co będzie

• Uwagi na temat MLP

• Sieci o zmiennej strukturze

• Algorytmy konstruktywistyczne

• Przykłady zastosowań sieci MLP

Page 3: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

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 XH X

oY 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

Page 4: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Uwagi praktyczne 1Uwagi 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 danych, może jest separowalny i wystarczy 1 neuron?

Page 5: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Uwagi praktyczne 2Uwagi praktyczne 2Trudnoś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?

Page 6: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

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ą

reprezentatywne.

Page 7: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Algorytmy konstruktywistyczneAlgorytmy 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.

Page 8: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

AK: upraszczanieAK: upraszczanieZwykle:

• 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.

2ij

i j

W

Page 9: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

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 pi i

p

o o Y F X W Y F X W

Dodaj kilka neuronów - kandydatów;trenuj maksymalizując korelację;wybierz najlepszy, pozostałe odrzuć.

Page 10: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

KK - schematKK - schemat

kandydaci

Warstwawyjściowa

Uczenie: 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)|

Page 11: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

CasPerCasPer

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

Rozpad wag + szum na wejściu.

Page 12: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

FlexNet

Mohraz, Protzel 1996.

1. Startuj bez warstw ukrytych.

2. Uczyć aż błąd zacznie spadać powoli.

3. Dodać nową jednostkę w różnych miejscach sieci.

4. Neurony mogą być w istniejących lub nowych warstwach.

Page 13: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Algorytm wieżowyAlgorytm 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.

Zawsze można zrobić dane wypukłe! Algorytm typu "wieży"

Page 14: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Algorytm piramidowyAlgorytm 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) Algorytm typu "piramidy"

Page 15: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

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” i 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).

5. Powtarzaj aż do skutku ...

Można udowodnić, że algorytm znajduje optymalne wagi.

Page 16: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Algorytm kafelkowyAlgorytm 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 podzbiorach wzorców.

Algorytm kafelkowy

Page 17: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

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

+-

3 3 3 3+ - + -

Page 18: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

IncNetIncNet

Incremental Network, sieć ontogeniczna, rośnie i maleje.

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

Sieć jednowarstwowa, różne f. transferu, model 1-z-N.

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

Statystyczne kryteria wzrostu i kurczenia sieci.

Page 19: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Onto - podsumowanieInne sieci ontogeniczne: RAN, FSM - po RBF-ie.

Zalety algorytmów ontogenicznych:

• automatyczna konstrukcja

• zwykle 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 sieci

• niektóre tworzą specyficzne architektury

• niewiele dobrych programów

• homogeniczne – lepiej czasem użyć różnych funkcji transferu dla neuronów ukrytych.

Page 20: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

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.

Page 21: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Co dalej? Co dalej?

• Sieci RBF

• Sieci Hopfielda

• Sieci Hebbowskie i modele mózgu

• Samoorganizacja

Page 22: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Koniec wykładu 12Koniec wykładu 12

Dobranoc !

Page 23: Inteligencja Obliczeniowa Sieci o zmiennej strukturze

Co było

• Perceptrony wielowarstwowe.

• Algorytm wstecznej propagacji błędów

• Problemy i własności wstecznej propagacji