230 likes | 367 Views
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
E N D
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 • 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)
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
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
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
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.
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
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
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
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
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)
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
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)
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
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
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ć)
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
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