Algorytm kaskadowej korelacji

23
Algorytm kaskadowej korelacji Marta Wilczak

description

Algorytm kaskadowej korelacji. Marta Wilczak. O czym mowa. Nowa architektura, a zarazem algorytm uczenia z nadzorem dla sieci neuronowych Stworzona przez Scott’a E. Fahlman’a - PowerPoint PPT Presentation

Transcript of Algorytm kaskadowej korelacji

Page 1: Algorytm kaskadowej korelacji

Algorytm kaskadowej korelacji

Marta Wilczak

Page 2: Algorytm kaskadowej korelacji

O czym mowa.

• Nowa architektura, a zarazem algorytm uczenia z nadzorem dla sieci neuronowych

• Stworzona przez Scott’a E. Fahlman’a• Zamiast dostosowywać wagi w sieciach o ustalonej

topologii, zaczyna z minimalną siecią, dodaje ukryte neurony jeden po drugim

• Przewaga nad innymi algorytmami:– szybko się uczy– sieć sama ustala swój rozmiar i topologię– nie wymaga wstecznej propagacji sygnałów błędów (back-

propagation)

Page 3: Algorytm kaskadowej korelacji

Dlaczego powstał.

• W celu rozwiązania pewnych problemów i ograniczeń, które występują w popularnym backprop’ie– „wolny krok” z jakim backprop uczy się z próbek– nawet przy prostych problemach (benchmark), może wymagać

wielu tysięcy epok, aby wyuczyć się poządanego zachowania.

• Step-size problem

• Moving target problem

Page 4: Algorytm kaskadowej korelacji

Problemy spowolniające backprop – STEP-SIZE

• Co to jest i dlaczego występuje:

– Backprop oblicza dla każdej wagi, jedynie pierwszą częściową pochodną całej funkcji błędu

– Mając te pochodne, możemy wykonywać zejście według gradientu w przestrzeni wag, zmniejszając błąd z każdym krokiem

– Można łatwo dowieść, że biorąc maleńkie kroczki, w końcu dojdziemy do lokalnego minimum funkcji błędu

Page 5: Algorytm kaskadowej korelacji

Problemy spowolniające backprop – STEP-SIZE

• Aby szybko uczyć sieć, nie chcemy brać malutkich kroczków, tylko największe jakie możemy

• Niestety, jeśli weźmiemy za duży krok, sieć może nie zbiec się do dobrego rozwiązania

• Żeby wybrać rozsądny krok, musimy znać nie tylko nachylenie funkcji błędu, ale również jej krzywiznę w pobliżu bierzącego punktu w przestrzeni wag

• Takich informacji mogą dostarczyć pochodne wyższych rzędów

• Takie informacje nie są dostępne w standardowym backprop’ie

Page 6: Algorytm kaskadowej korelacji

Problemy spowolniające backprop – STEP-SIZE

• Algorytm Fahlman’a, quickprop, jest jednym z proponowanych i odnoszących duże sukcesy sposobem w radzeniu sobie z problemem STEP-SIZE

• Jak działa quickprop:– oblicza pochodne jak backprop– zamiast prostego (gradient descent), korzysta z metody

Newtona przy aktualizacji wag.

Page 7: Algorytm kaskadowej korelacji

Problemy spowolniające backprop – MOVING TARGET

• Co to jest i kiedy występuje:– każdy neuron próbuje ewaluować w detektor cechy,

odgrywający użyteczną rolę w obliczeniach– ale to zadanie jest niezwykle skomplikowane, bo

wszystkie neurony zmieniają się w tym samym czasie– ukryte neurony w poszczególnych warstwach sieci nie

mogą komunikować się bezpośrednio– dostają jedynie wejście i sygnał błędu propagowany

spowrotem z wyjść– sygnał błędu opisuje jakoś problem, który dany

neuron próbuje rozwiązać, ale ten problem nieustannie się zmienia

Page 8: Algorytm kaskadowej korelacji

Problemy spowolniające backprop – MOVING TARGET

• Zamiast szybko i prosto zmierzać do przybrania jakiejś użytecznej roli – złożony „taniec” pomiędzy neuronami

• Zwiększanie liczby neuronów warstw ukrytych = spowalnianie procesu uczenia (backprop)

• Częściowo odpowiedzialny za to jest MOVING-TARGET

• Efekt stada

Page 9: Algorytm kaskadowej korelacji

Problemy spowolniające backprop – MOVING TARGET

• Jak rozwiązać?– Pozwolić jedynie niektórym wagom lub neuronom

zmieniać się naraz– Kaskadowa korelacja wykorzystuje ekstremalną

wersję tej zasady– Może się zdawać, że trzymając większość sieci w

zamrożeniu przez większość czasu spowolni uczenie – testy dowodzą, że nie

– Każdy neuron nie zamrożony, może szybko wybrać użyteczną rolę w całościowym rozwiązaniu i dostosować się do jej wypełniania

Page 10: Algorytm kaskadowej korelacji

Kaskadowa korelacja - opis

• Kaskadowa architektura

• Algorytm uczenia– tworzenie i instalowanie nowych neuronów– próbujemy zmaksymalizować wielkość korelacji

pomiędzy wyjściem nowego neuronu a sygnałem błędu na wyjściach sieci

Page 11: Algorytm kaskadowej korelacji

Kaskadowa korelacja - architektura

• Rozpoczynamy od jakichś wejść i jednego lub więcej wyjść

• Liczba wejść lub wyjść narzucona jest przez rodzaj problemu i reprezentację IO jaką wybrał eksperymentator

• Każde wejście połączone jest z każdym wyjściowym neuronem poprzez połączenia o dostrajalnych wagach

• Neurony wyjściowe mogą produkować na wyjścia liniową sumę ważonych wejść lub stosować jakąś nieliniową funkcję aktywacji

• Autor używał zawsze sigmoidalnej f.a. (tangens hiperboliczny)

Page 12: Algorytm kaskadowej korelacji

Kaskadowa korelacja - architektura

• Każdy nowy neuron dostaje połączenia z wszystkimi oryginalnymi wejściami oraz od każdego istniejącego już neuronu

• Jak tylko zainstalujemy – zamrażamy wagi wejściowe

• Każdy nowo dodany neuron = nowa jednoneuronowa warstwa

• Potężne, wysoce wyspecjalizowane neurony, możliwe głębokie sieci

Page 13: Algorytm kaskadowej korelacji

Kaskadowa korelacja - architektura

Page 14: Algorytm kaskadowej korelacji

Kaskadowa korelacja - architektura

Page 15: Algorytm kaskadowej korelacji

Kaskadowa korelacja - uczenie

• na początku trenujemy połączenia wejście-wyjście na całym zestawie uczącym

• dowolny uczący algorytm dla jednowarstwowej sieci (np. dla perceptronu)

• autor używa Quickprop• jeśli po ustalonej liczbie cykli uczących nie nastąpiła widoczna

redukcja błędu, uruchamiamy sieć jeszcze raz, żeby zmierzyć błąd• jeśli jesteśmy zadowoleni z działania sieci, przerywamy szkolenie• jeśli nie, dodajemy nowy ukryty neuron korzystając z algorytmu

„tworzenia neurona”• nowy neuron jest instalowany, jego wagi wejściowe są zamrażane,

a wagi wszystkich wyjść sieci są ponownie trenowane (używając np. Quickpropa)

Page 16: Algorytm kaskadowej korelacji

Kaskadowa korelacja – algorytm „tworzenia neurona”

• aby utworzyć nowy neuron ukryty zaczynamy z neuronem KANDYDUJĄCYM, który otrzymuje TESTOWE połączenie wejściowe

• wyjście nie jest jeszcze podłączone do sieci !

• zapuszczamy wiele przejść zestawów uczących dostosowując wagi wejściowe neuronu KANDYDUJĄCEGO po każdym przejściu

Page 17: Algorytm kaskadowej korelacji

Kaskadowa korelacja – algorytm „tworzenia neurona”

• celem dostosowania wag jest: zmaksymalizować S

• S – suma (po wszystkich wyjściach) wielkości korelacji pomiędzy wyjściem neuronu KANDYDUJĄCEGO (V) a błędem na danym wyjściu

• o – neuron wyjściowy

• p – osobnik uczący

Page 18: Algorytm kaskadowej korelacji

Kaskadowa korelacja – algorytm „tworzenia neurona”

• ulepszenie – pula neuronów KANDYDUJĄCYCH

• każdy o innych losowych początkowych wagach

• każdy może mieć inną funkcję aktywacji

• Korzyści:– zmniejsza szansę na zamontowanie do sieci „bezużytecznego”

neurony (który „utknie” podczas trenowania)– możliwość obliczeń równoległych podczas szkolenia neuronów

kandydujących (neurony te nie wymieniają między sobą informacji, ani nie mają wpływu na całą sieć)

Page 19: Algorytm kaskadowej korelacji

Problem „dwóch spiral”

• zaproponowany przez Alexis’a Wieland’a (MITRE Corp.)• 198 XY, spirala oplatająca środek 3 razy• Wieland, zmodyfikowana wersja backprop’a: 150,000 –

200,000 epok• Lang i Witbrock,

– 2-5-5-5-1, dodatkowe połączenia między różnymi warstwami (nie tylko od tej bezpośrednio poprzedzającej): zwykły backprop – 20,000 epok, backprop ze zmodyfikowaną funkcją błędu – 12,000 epok, quickprop – 8000 epok

– 2-5-5-1, quickprop – 60,000 epok

• Kaskadowa Korelacja (sigmoidalna funkcja aktywacji), 12-19 neuronów ukrytych – średnio 1700 epok

Page 20: Algorytm kaskadowej korelacji

Problem „dwóch spiral”

Page 21: Algorytm kaskadowej korelacji

Problem „dwóch spiral”

Page 22: Algorytm kaskadowej korelacji

Problem „dwóch spiral”

Page 23: Algorytm kaskadowej korelacji

Bibliografia

• ‘The Cascade-Correlation Learning Architecture’ Scott E. Fahlman and Christian Lebiere, 29.07.1991, CMU-CS-90-100

• ‘The Cascade-Correlation Neural Network Growing Algorithm using the Matlab Enviroment’ Jose Demisio Simoes da Silva

• ‘En Evolving Cascade Neural Network Technique for Cleaning Sleep Electroencephalograms’, Computer Science Department, University of Exeter