Najważniejszy element wiedzy o sieciach neuronowych. uczenie sieci

Podobne dokumenty
Uczenie z nauczycielem. Przykładowy zbiór uczący. Istota algorytmu uczenia Schemat uczenia sieci neuronowej

Ogólna idea procesu uczenia. Najważniejszy element wiedzy o sieciach neuronowych uczenie sieci. Uczenie z nauczycielem

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Uczenie sieci typu MLP

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Projekt Sieci neuronowe

Sieci neuronowe w Statistica

Optymalizacja ciągła

Jakość uczenia i generalizacja

Testowanie modeli predykcyjnych

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

Zastosowania sieci neuronowych

8. Neuron z ciągłą funkcją aktywacji.

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

Widzenie komputerowe

Metody Sztucznej Inteligencji II

Podstawy Sztucznej Inteligencji (PSZT)

Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Temat: Sieci neuronowe oraz technologia CUDA

Wprowadzenie do analizy korelacji i regresji

SZTUCZNA INTELIGENCJA

Wstęp do sieci neuronowych, wykład 13-14, Walidacja jakości uczenia. Metody statystyczne.

KADD Minimalizacja funkcji

Badacze zbudowali wiele systemów technicznych, naśladujących w komputerze ludzki mózg. Najbardziej pożyteczne okazały się sieci neuronowe.

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Elementy inteligencji obliczeniowej

Najprostsze modele sieci z rekurencją. sieci Hopfielda; sieci uczone regułą Hebba; sieć Hamminga;

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 335

PROGNOZOWANIE OSIADAŃ POWIERZCHNI TERENU PRZY UŻYCIU SIECI NEURONOWYCH**

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

Przykładowe funkcje przejścia używane przy budowie sztucznych neuronów

Wstęp do sieci neuronowych, wykład 09, Walidacja jakości uczenia. Metody statystyczne.

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Elementy modelowania matematycznego

Zmienne zależne i niezależne

wiedzy Sieci neuronowe

Obliczenia neuronowe. (wprowadzenie) Ryszard Tadeusiewicz Laboratorium Biocybernetyki Katedra Automatyki AGH

Analiza składowych głównych. Wprowadzenie

Instrukcja realizacji ćwiczenia

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Klasyfikacja LDA + walidacja

Optymalizacja ciągła

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

METODY INŻYNIERII WIEDZY

Wstęp do teorii sztucznej inteligencji Wykład II. Uczenie sztucznych neuronów.

Podstawy sztucznej inteligencji

Obliczenia inteligentne Zadanie 4

ALGORYTM RANDOM FOREST

Eksploracja danych OCENA KLASYFIKATORÓW. Wojciech Waloszek. Teresa Zawadzka.

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Zastosowania sieci neuronowych

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Statystyka w pracy badawczej nauczyciela Wykład 4: Analiza współzależności. dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl

Lekcja 5: Sieć Kohonena i sieć ART

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

I EKSPLORACJA DANYCH

Uczenie sieci radialnych (RBF)

Metody klasyfikacji i rozpoznawania wzorców. Najważniejsze rodzaje klasyfikatorów

SIEĆ NEURONOWA JAKO NARZĘDZIE APROKSYMACJI I KLASYFIKACJI DANYCH. Jakub Karbowski Gimnazjum nr 17 w Krakowie

Metody numeryczne I Równania nieliniowe

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym

Sztuczne sieci neuronowe

synaptycznych wszystko to waży 1.5 kg i zajmuje objętość około 1.5 litra. A zużywa mniej energii niż lampka nocna.

Stan dotychczasowy. OCENA KLASYFIKACJI w diagnostyce. Metody 6/10/2013. Weryfikacja. Testowanie skuteczności metody uczenia Weryfikacja prosta

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego

Wprowadzenie do Sieci Neuronowych Laboratorium 05 Algorytm wstecznej propagacji błędu

Sieci neuronowe do przetwarzania informacji / Stanisław Osowski. wyd. 3. Warszawa, Spis treści

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Statystyki: miary opisujące rozkład! np. : średnia, frakcja (procent), odchylenie standardowe, wariancja, mediana itd.

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

Podstawy Sztucznej Inteligencji

6. Perceptron Rosenblatta

wiedzy Sieci neuronowe (c.d.)

ALHE. prof. Jarosław Arabas semestr 15Z

Testowanie hipotez statystycznych

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

mgr inż. Magdalena Deckert Poznań, r. Metody przyrostowego uczenia się ze strumieni danych.

5 Błąd średniokwadratowy i obciążenie

Inteligentne systemy przeciw atakom sieciowym

Prognozowanie kierunku ruchu indeksów giełdowych na podstawie danych historycznych.

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Zastosowanie metod eksploracji danych Data Mining w badaniach ekonomicznych SAS Enterprise Miner. rok akademicki 2013/2014


ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych

Co to jest grupowanie

Sztuczne sieci neuronowe. Uczenie, zastosowania

Kombinacja jądrowych estymatorów gęstości w klasyfikacji - zastosowanie na sztucznym zbiorze danych

Aproksymacja funkcji a regresja symboliczna

Statystyka opisowa. Wykład V. Regresja liniowa wieloraka

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane cd.

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

Optymalizacja optymalizacji

Podstawy opracowania wyników pomiarów z elementami analizy niepewności pomiarowych

Transkrypt:

Najważniejszy element wiedzy o sieciach neuronowych uczenie sieci

Ogólna idea procesu uczenia

Warstwa wejściowa. Te neurony odbierają zadanie do wykonania Warstwa ukryta 1. Te neurony przetwarzają dane wejściowe Warstwa ukryta 2. Te neurony przygotowują rozwiązanie Warstwa wyjściowa Te neurony obliczają rozwiązanie

w 1 w 2 w 3 g(x, w) x f(x) w n w 1 w 2 w 3 g(x, w) x f(x) w n w 1 w 2 w 3 g(x, w) x f(x) w n w 1 w 2 w 3 g(x, w) x f(x) w n w 1 w 2 w 3 g(x, w) x f(x) w 1 w n w 2 w 3 g(x, w) x f(x) w n w 1 w 2 w 3 g(x, w) x f(x) w n

Uczenie z nauczycielem Wzorcowe rozwiązanie zadania Regulowanie parametrów sieci Ocena błędu Postawienie zadania Proces ten jest powtarzany wielokrotnie aż do uzyskania przez sieć wymaganego stopnia nauczenia Sieć wymagająca uczenia Rozwiązanie zadania przez uczoną sieć

Ciąg uczący....... X 1 X 2 X n D 1 D 2 X 1 w 1 x Zmodyfikuj wagi tak aby zmniejszyć błędy! E i... i-1 i i+1... X 2.... X n w 1 w 1 w 1 x x x w 1 w 1 x x Y 1 Y 2 - D 1 Błąd! - D 2 Błąd!... Dostarczenie pożądanych wartości wyjściowych D 1 w 1 x D 2 celem wyznaczenia błędów

Przykładowy zbiór uczący pozwalający rozwiązać problem regresyjny: Jak duże będzie zanieczyszczenie powietrza w różnych miastach? zmienne objaśniające: temperatura, liczba zakładów przemysłowych, liczba ludności, prędkość wiatru, wielkość opadu, liczba dni deszczowych zmienna objaśniana: Stężenie SO 2 w powietrzu dana nieistotna: nazwa miasta

Uczenie sieci polega na takim doborze jej parametrów, żeby zminimalizować błąd, jaki popełnia sieć; można to zrobić przetwarzając dane ze zbioru uczącego Na wejście sieci podawane są dane wskazane w zbiorze jako wejściowe Oto sieć neuronowa, którą trzeba uczyć W zbiorze uczącym podane są poprawne wartości rozwiązań dla tych danych Sieć na tej podstawie oblicza i podaje swoje rozwiązanie (na ogół początkowo błędne)

Uczenie sieci polega teraz na takim doborze jej parametrów, żeby zminimalizować błąd, jaki popełnia sieć przetwarzając dane ze zbioru uczącego Porównanie zawartej w danych wzorcowej odpowiedzi z wynikiem obliczonym przez sieć daje błąd Błąd Na podstawie błędu zmienia się wagi wszystkich neuronów w sieci, tak żeby ten błąd malał Robi to algorytm uczenia

Learning set Input Learning process changes network weights Exam 01 10 Expected output Outputs

Ewa Schemat uczenia sieci neuronowej uczenie jest to w istocie iteracyjny proces estymacji optymalnych wartości parametrów sieci; początkowe wartości tych parametrów są zwykle wartościami losowymi; w trakcie uczenia sieci neuronowej prezentowane są przypadki uczące i w zależności od oceny reakcji sieci modyfikowane są jej parametry (najczęściej wagi synaptyczne). Jan korekta błędu

Inicjalizacja wartości wag może następować przy użyciu rozkładu Bottou a - uzależnione jest od rodzaju funkcji aktywacji, dla sigmoidy a=2,83; n in liczba wejść danego neuronu

Alternatywne rozwiązanie to użycie algorytmu znanego jako Nguyen-Widrow Randomization (NW) Bez zera! Przykład rozkład uzyskany w wyniku inicjalizacji sieci algorytmem NW

Inny przykład histogramu losowo zainicjowanych wag

Jednym ze sposobów śledzenia procesu uczenia sieci jest kontrolowanie średniej wartości modułu współczynników wagowych Taki przebieg źle rokuje: neurony wejdą w nasycenie zanim sieć się czegoś nauczy!

Ale na ogół śledzenie zmian wag niewiele daje

Animowana ilustracja procesu uczenia w sieci y x x y x Istota procesu uczenia polega na modyfikacji wag połączeń neuronów W wyniku tego sygnał wyjściowy sieci upodabnia się do zbioru uczącego Można to obserwować biorąc pod uwagę zmiany błędu uczenia

Sieć może mieć wiele wyjść, a ponadto dla każdego zadania ze zbioru uczącego popełnia inny błąd. Jako syntetyczna ocena jakości działania sieci neuronowej może służyć suma kwadratów błędów popełnianych przez sieć na wszystkich jej wyjściach i dla wszystkich przykładów zbioru uczącego: E R M d y o pk pk 2 p 1 k 1

Przebieg typowej zmiany funkcji błędu w czasie procesu uczenia

W czasie uczenia sieci obserwuje się często chwilowe pogorszenia wartości błędu Wynika to z faktu, że w zbiorze uczącym bywają przypadki szczególnie trudne lub nietypowe, których użycie zawsze na chwilę psuje wyniki uczenia. Zjawisko to jednak zwykle szybko zanika.

Powody do zmartwienia pojawiają się dopiero wtedy, gdy takie zjawisko utrzymuje się długo i nie zanika.

Czasem wygodniej jest posługiwać się zlogarytmowanymi wartościami błędu uczenia, bo w takiej skali postęp lepiej widać zarówno na początku jak i na końcu procesu uczenia

Uczenie z nauczycielem Zbiór uczący: X 1 X 2 D x 11 x 12 d 1 x 21 x 22 d 2......... x n1 x n2 d n krok uczenia numer i x i1 y i x i2 d i Czy y i = d i? Jeśli nie, to zmień wagi w taki sposób, aby te dwie wartości zbliżyły się do siebie. Epoka - Jednokrotna prezentacja wszystkich przypadków uczących Sposób zmiany wag neuronów w sieci w celu uzyskania dobrej zgodności rzeczywistych odpowiedzi neuronów z odpowiedziami wzorcowymi, podanymi w zbiorze uczącym, stanowi istotę wybranej metody uczenia.

Bez mieszania (randomizacji) zbioru uczącego może dochodzić do cyklicznych zmian wag podczas uczenia W i Tak wygląda przebieg prawidłowego uczenia sieci (trajektoria zmiany wag) W j A takie przebiegi można uzyskać gdy się nie randomizuje zbioru uczącego pomiędzy kolejnymi epokami. Cykliczność pokazywania danych uczących powoduje cykliczność zmian wartości wag, co nie posuwa naprzód procesu uczenia.

Kształtowanie się błędu sieci w trakcie uczenia Zbiór uczący: X 1 X 2 D x 11 x 12 d 1 x 21 x 22 d 2......... x n1 x n2 d n X 1 X 2 Y Najczęściej stosowana formuła opisująca błąd popełniany przez sieć: SSE N d i y i i 1 I rzeczywiście zwykle błąd maleje! Jeśli proces uczenia ma zakończyć się sukcesem, Najpierw to błądpotem powinien wolniej maleć szybko 2

Krzyżyki oznaczają elementy zbioru uczącego Linia ciągła prezentuje wynik działania sieci Błąd SSE Animowany przykładowy przebieg procesu uczenia Start procesu uczenia wszystkie wagi są przypadkowe Ilość epok uczenia

W trakcie uczenia sieci błąd przez nią popełniany zmienia się w charakterystyczny i zwykle podobny sposób: szybko maleje na początku procesu i znacznie wolniej później. suma kwadratów błędów 1000 900 800 700 600 500 400 300 200 100 0 Dla tej samej sieci i dla tych samych brak danych uczących przebiegi procesu uczenia przesunięcie mogą się nieco różnić jeden od drugiego. 0 50 100 150 200 250 300 350 400 450 czas uczenia (w epokach) linie Zależy to głównie od tego, jak wybrany został punkt startowy, to znaczy wartości wag na początku procesu uczenia.

Uczenie sieci o różnej liczbie neuronów w warstwie ukrytej 1 neuron ukryty 7 neuronów ukrytych 48 neuronów ukrytych

Inny sposób prezentacji uczenia sieci o różnej liczbie neuronów w warstwie ukrytej 1 neuron ukryty 7 neuronów ukrytych 48 neuronów ukrytych

Teraz trochę szczegółów na temat zbioru uczącego

Przykład tworzenia zbioru uczącego 2006 T=7 2005 T=6 2004 T=5 235 (zagrożone) Dane źródłowe 1/3 (144) 2003 T=4 2002 T=3 Losowanie 235 (dobre) Zbiór zrównoważony 470 Losowanie 2/3 (326) 2001 T=2 2000 T=1 (T) podzbiór testujący (L) podzbiór uczący Liczba przypadków: 2731

Przykładowy zbiór uczący

Trzeba także uważać na jedno: ilość informacji, jakie zdobywa (i utrwala) sieć w czasie uczenia jest nie większa, niż ilość informacji zawarta w zbiorze uczącym

Większy zbiór uczący pozwala bezpieczniej stosować bardziej skomplikowane modele Błąd wielkość zbioru uczącego Stopień skomplikowania modelu

Dlatego czasem zbiór uczący się sztucznie rozmnaża

Inny przykład zbioru uczącego

Sposób sztucznego wzbogacania zbioru uczącego poprzez drobne zniekształcenia posiadanych danych

Sposób ten stosować trzeba z umiarem!

Kilka uwag o naturze biologicznej pamięci oraz procesu uczenia

Rola różnych elementów tkanki nerwowej w procesie uczenia

Kluczową rolę odgrywają procesy w synapsach

Na procesy pamięciowe duży wpływ mają zapewne receptory NMDA, spotykane w strukturach hipokampa aktywowane przez kwas N-metylo-D-asparaginowy

Mechanizmy biochemiczne zaangażowane w proces zapamiętywania wiedzy są raczej skomplikowane

Dla uczenia sztucznych sieci neuronowych cała ta skomplikowana wiedza biochemiczna nie jest konieczna, bo praktyczne metody uczenia sieci oparte są na prostej intuicji: poszukiwania minimum funkcji błędu

Wielkość błędu popełnianego przez sieć E sieć popełnia taki duży błąd sieć popełnia taki mały błąd a przy takim zestawie wag Drugi współczynnik wagowy w 2 przy takim zestawie wag Pierwszy współczynnik wagowy w 1

Błąd Istota uczenia polega na szukaniu miejsca, w którym błąd jest minimalny minimum funkcji błędu w s w n w ideal. waga w 2 waga w 1 w

Powierzchnie błędów bywają dosyć skomplikowane!

Dość przyzwoita funkcja błędów z jednym minimum lokalnym i wrazistym globalnym

Co więcej, powierzchnia taka zmienia się radykalnie wraz ze zmianą struktury sieci!

O tym, jaka skomplikowana jest powierzchnia błędu może świadczyć jej przekrój wzdłuż jednej wybranej wagi sieci To można zaobserwować empirycznie!

W praktycznych zadaniach powierzchnia błędu bywa mniej lub bardziej skomplikowana!

Przykłady funkcji sprawiających kłopot przy uczeniu

Inny przykład kłopotliwej funkcji

Istota procesu uczenia polega więc na minimalizacji funkcji: E SSE N d i y i i 1 2

Algorytm wstecznej propagacji błędów polega na szukaniu kierunku spadku E i na takim zmienianiu wartości wag w 1, w 2, żeby zmniejszać wartość funkcji błędu w kierunku jej najszybszego spadku Odpowiadająca mu wartość błędu E Kierunek najszybszego spadku błędu Przemieszczenie po powierzchni błędu Stary (gorszy) wektor wag Migracja w przestrzeni wag Nowy (lepszy) wektor wag

Poszukiwanie (i znajdowanie!) minimum funkcji błędu metodą wyznaczania w każdym kolejnym kroku kierunku najszybszego spadku

Dane wejściowe ze zbioru uczącego Istota algorytmu uczenia ze wsteczną propagacją błędu

Dane wejściowe ze zbioru uczącego Istota algorytmu uczenia ze wsteczną propagacją błędu

Istota algorytmu uczenia Wynik ze zbioru uczącego ze wsteczną propagacją błędu

Istota algorytmu uczenia Wynik ze zbioru uczącego ze wsteczną propagacją błędu

Istota algorytmu uczenia ze wsteczną propagacją błędu

Istota algorytmu uczenia ze wsteczną propagacją błędu

Istota algorytmu uczenia ze wsteczną propagacją błędu Sieć uzyskuje nowe wagi i ma mniejszy błąd

Przy uczeniu sieci najczęściej błąd wyznaczany na wyjściu sieci musi być rzutowany do wcześniejszych warstw, bo tam też trzeba zmieniać parametry neuronów Trzeba to robić dla wszystkich elementów uczących

Uczenie sieci neuronowej krok po kroku metodą backpropagation Krok 1: Podanie danych wejściowych

Krok 2: Obliczanie wartości wyjściowej 1. neuronu 1. warstwy ukrytej

Krok 3: Obliczanie wartości wyjściowej 2. neuronu 1. warstwy ukrytej

Krok 4: Obliczanie wartości wyjściowej 3. neuronu 1. warstwy ukrytej

Krok 5: Obliczanie wartości wyjściowej 4. neuronu należącego do 2. warstwy ukrytej

Krok 6: Obliczanie wartości wyjściowej 5. neuronu należącego do 2. warstwy ukrytej

Krok 7: Obliczanie wartości wyjściowej z całej sieci przez neuron wyjściowy

Krok 8: Obliczanie błędu wartości wyjściowej z całej sieci

Krok 9: Obliczanie błędu 4. neuronu należącego do 2. warstwy ukrytej

Krok 10: Obliczanie błędu 5. neuronu należącego do 2. warstwy ukrytej

Krok 11: Obliczanie błędu 1. neuronu należącego do 1. warstwy ukrytej

Krok 12: Obliczanie błędu 2. neuronu należącego do 1. warstwy ukrytej

Krok 13: Obliczanie błędu 3. neuronu należącego do 1. warstwy ukrytej

Krok 14: Poprawianie wartości wag 1. neuronu należącego do 1. warstwy ukrytej

Krok 15: Poprawianie wartości wag 2. neuronu należącego do 1. warstwy ukrytej

Krok 16: Poprawianie wartości wag 3. neuronu należącego do 1. warstwy ukrytej

Krok 17: Poprawianie wartości wag 4. neuronu należącego do 2. warstwy ukrytej

Krok 18: Poprawianie wartości wag 5. neuronu należącego do 2. warstwy ukrytej

Krok 19: Poprawianie wartości wag 6. neuronu należącego do warstwy wyjściowej

Krok 20: A teraz te wszystkie czynności trzeba powtórzyć jeszcze raz (od początku do końca!) dla następnego elementu zbioru uczącego - i tak dalej

We wszystkich przytaczanych wyżej wzorach występował współczynnik uczenia η. Jego właściwy dobór to też jeden z problemów koniecznych do rozwiązania

Im współczynnik η jest większy, tym większa poprawka wag jest wykonywana przy takiej samej wartości błędu. Algorytm z dużym η można kojarzyć z surowym i wymagającym nauczycielem, który po każdym błędzie ucznia zmusza go do radykalnej zmiany postępowania.

Jest to również miara przeniesienia lokalnej własności funkcji błędu wyznaczonej w skali mikro (gradient określa kierunek zmian wag zapewniający malenie błędu tylko w przypadku nieskończenie małych zmian wag) na działanie w skali makro (korekta wag dokonywana jest z pewnym nie nieskończenie małym krokiem, którego wielkość wyznacza η)

Problem doboru wartości współczynnika Błąd uczenia η w przypadku jednowymiarowej funkcji błędu - animacja Minimum globalne Mały współczynnik uczenia Duży współczynnik uczenia Wagi

Uczenie sieci neuronowej jako wędrówka ślepego kangura szukającego w górach domu który jest w dolinie Kangur zna tylko lokalne nachylenie zbocza, bo je wyczuwa łapami. Całości krajobrazu nie widzi! Jeśli wykona za mały skok (małe η) to będzie do domu wracał długo Jeśli wykona za duży skok (duże η) to może trafić na miejsce, które jest jeszcze wyżej niż punkt startu (czyli jest ono gorsze, niż poprzednie) Jeśli mu się uda dobrać odpowiednią wartość η, to może pokonać przeszkody i znacząco się zbliżyć do celu

Wpływ współczynnika uczenia η na przebieg treningu sieci neuronowej. Najczęściej większa wartość przyspiesza uczenie i polepsza efekt Współczynnik η = 0,001 Współczynnik η = 0,01

Zależność przebiegu uczenia od wartości współczynnika uczenia η oznaczanego także jako LR (Learning Rate)

Ale przy za dużych wartościach η pojawia się niestabilność η η η η

Wpływ doboru η na przebieg uczenia Współczynnik uczenia za duży η Współczynnik uczenia za mały η Współczynnik uczenia dobrze dobrany η

W niektórych pracach zaleca się stopniowe zmniejszanie współczynnika uczenia w trakcie uczenia

Wartość współczynnika uczenia η Optymalne wydają się jednak niemonotoniczne zmiany wartości współczynnika uczenia w trakcie nauki sieć popełnia dużo grubych błędów nie powinna być targana zbyt dużymi zmianami wag dojrzały intensywny proces uczenia sieci Liczba epok procesu uczenia k

Dla ustabilizowania procesu uczenia stosuje się współczynnik wnoszący bezwładność zwany momentum η

Interpretacja roli momentum Lekkie małe saneczki utkną w pierwszym dołku na stoku Rozpędzony masywny bojer ześlizgnie się aż na sam dół!

Przebieg wartości gradientu i momentum jako sił napędowych procesu uczenia w przykładowym eksperymencie uczenia sieci neuronowej

Zależność przebiegu uczenia od wartości współczynnika momentum M

Zmiany współczynników wag w sieci podczas uczenia bez współczynnika momentum (po lewej) i ze współczynnikiem momentum równym 0.5 (po prawej) dla tej samej ilości kroków Momentum przyspiesza i stabilizuje uczenie!

Łączny dobór wartości współczynnika uczenia i momentum dane surowe

Łączny dobór współczynnika uczenia i momentum dane wygładzone

Trochę szczegółów na temat przebiegu procesu uczenia

Dlatego proces uczenia może napotykać na różne przeszkody:

Pułapką dla procesu uczenia mogą być także długie wąskie wąwozy

Przykładowy obraz rzeczywistej powierzchni błędu powstającej przy uczeniu sieci neuronowej. W jednej z dolin kryje się globalne minimum. Tylko w której?!

Głównym problemem przy uczeniu są funkcje błędu o wielu ekstremach Uwaga: Przy uczeniu sieci interesują nas głównie minima funkcji, ale to się źle rysuje, dlatego będziemy oglądali rozważane funkcje od spodu, gdy minima widać jako maksima

Bywają zadania, dla których jest tylko jedno ekstremum funkcji błędu. Jego znalezienie jest wtedy łatwe

Czasem funkcja błędu ma więcej szczegółów topologicznych, ale wśród nich tylko jedno dobrze zarysowane ekstremum

Nie jest najgorzej, jeśli z ekstremum globalnym konkuruje tylko jedno ekstremum lokalne o wyraźnie odróżnialnych własnościach

Często jednak lokalnych minimów jest wiele, a każde z nich może być pułapką dla procesu uczenia

Problem minimów lokalnych

Dla takiej funkcji trafienie podczas Ekstremum globalne, dobre dopasowanie sieci uczenia sieci do minimum lokalnego, a nie globalnego, oznacza klęskę! Ekstremum lokalne, bardzo złe dopasowanie sieci!

Ta sama funkcja w postaci mapy pozwala ocenić trajektorie procesu uczenia, która powinna trafić do minimum globalnego Sukces! Niepowodzenie!

W dalszych przykładach będziemy używali funkcji błędu mającej jedno minimum lokalne i jedno globalne Oto wykres tej funkcji... oraz jej mapa z poziomicami

Wynik uczenia zależy od wyboru początkowych wartości wag (punktu startowego algorytmu) Trafione minimum globalne! Trafione minimum lokalne! Jest to ważne dla praktyki, ponieważ podczas uczenia zawsze zagrażają minima lokalne funkcji błędu, w których rozwiązanie problemu jest bardzo niedoskonałe!

Utknięcie procesu uczenia w pułapce minimum lokalnego wyjaśnia, dlaczego czasem nauczona sieć dopasowuje swoje działanie tylko do części danych

Minimum lokalne jako pułapka w procesie uczenia Ucieczka z lokalnego minimum jest trudna, bo wymaga chwilowego pogorszenia jakości działania sieci Minimum lokalne, oznaczające niedoskonałe dopasowanie sieci do danych Minimum globalne, oznaczające najlepsze możliwe dopasowanie sieci do danych

Minima lokalne funkcji błędu utrudniają prawidłowe przeprowadzenie uczenia Przeciwdziałanie polega na wprowadzeniu dodatkowego czynnika losowego do uczenia: losowe zaburzenia wartości wejściowych (Noise), zmiana kolejności prezentacji przykładów (Shuffle Cases), losowe zaburzenie wartości wag (Jog Weights), wielokrotne powtarzanie procesu uczenia (od losowo wybranych punktów startowych)

Zwykle kilka prób uczenia sieci startujących z różnych punktów początkowych pozwala wykryć, gdzie jest poszukiwane minimum globalne

Zestawy wag uzyskiwane przy powtarzaniu uczenia tej samej sieci na tych samych danych często się powtarzają, ale to wcale nie musi być regułą Pierwszy proces uczenia Drugi proces uczenia Trzeci proces uczenia Czwarty proces uczenia

Częściej jednak startując z różnych punktów docieramy do różnych minimów

Nawet przy starcie z identycznego punktu początkowego przebieg powtórnego uczenia sieci neuronowej może prowadzić do innych wyników, bo kolejność prezentacji elementów zbioru uczącego jest losowa

Wielokrotne ponawianie procesu uczenia może pomóc w pokonaniu także pułapki wąskich wąwozów

Wielkość obserwowanego błędu zależy od tego, czy bierzemy pod uwagę błąd średni dla całego zbioru przykładów, błąd dla najlepszego przypadku względnie błąd dla najgorszego przypadku

Na skutek losowego początkowego wyboru wag wielokrotne powtarzanie uczenia daje różne przebiegi krzywej zmniejszania błędu podczas uczenia, zwykle jednak są to krzywe malejące

Interesujące obserwacje można poczynić wielokrotnie ponawiając proces uczenia sieci i obserwując histogram częstości pojawiania się różnych wartości tak zwanych błędów rezydualnych (pozostających na końcu procesu uczenia)

Przypadek idealny jedno minimum lokalne i globalne

Dwa mało zróżnicowane minima

Wiele minimów, najczęściej jednak osiągane globalne

Wiele minimów, najczęściej osiągane lokalne

Wpływ zakłóceń w danych uczących na proces uczenia Lepszy wynik końcowy!

Dodanie szumu do danych uczących wydłuża wprawdzie czas uczenia, ale powiększa zdolność sieci do generalizacji wyników uczenia

Na jakiej podstawie przerwać uczenie sieci?

Podział zbiorów danych przy uczeniu sieci Celem użycia sieci jest odtworzenie pewnej nieznanej zależności, która ma funkcjonować dla wszystkich danych należących do pewnego zbioru R. R Z Zależność tę staramy się zamodelować w sieci neuronowej, mając do dyspozycji wyłącznie pewien zasób danych Z. W danych Z znane są zarówno dane wejściowe do budowanego modelu neuronowego, jak i dane wyjściowe. Są one wzorcem do którego dopasowywać będziemy parametry neuronowego modelu.

Niebezpieczeństwo, które nam zagraża, polega na tym, że podczas uczenia sieci może dojść do nadmiernego dopasowania modelu do właściwości danych ze zbioru Z, nie koniecznie reprezentujących wszystkie dane w zbiorze R. R Z Żeby tego uniknąć dokonujemy podziału zasobu Z na trzy części: L są to dane uczące, które używamy do aktywnego uczenia sieci. V są to dane walidacyjne, które będą użyte do wykrycia zagrożenia przeuczeniem T są to dane testowe, które będą użyte do końcowego sprawdzenia sieci

Przykładowe rozkłady błędów dla dwóch różnych sieci neuronowych odpowiednio dla zbiorów L, V i T. L V T

Jeśli to tylko możliwe, to należy dążyć do tego, żeby testowanie przeprowadzać na innych danych, niż były używane do uczenia i walidacji

Przeuczenie jako problem

Przeuczenie sieci czyli zanik zdolności do generalizacji Zbiór uczący: X 1 X 2 D x 11 x 12 d 1 x 21 x 22 d 2......... x k1 x k2 d k Zbiór walidacyjny: X 1 X 2 D x (k+1)1 x (k+1)2 d k+1......... x n1 x n2 d n x 1 x 2 1 0.8 0.6 0.4 0.2 0 W trakcie uczenia obserwujemy: Zdolność do aproksymacji: y SSE Network training error 0 200 400 600 800 1000 U SSE k d W i 1 n i y Zdolność do generalizacji: di yi i k 1 Tutaj dzieje się coś dziwnego! i 2 2 Train Verify

Przeuczenie!

Dzięki użyciu zbioru danych walidacyjnych można wykryć moment przeuczenia sieci. 1 0.8 0.6 Tu zaczyna się przeuczenie 0.4 0.2 0 0 200 400 600 800 1000 Przerwać uczenie! Błąd dla zbioru uczącego Błąd dla zbioru walidacyjnego

Na zbiorze V uzyskuje się zwykle gorsze Błąd nauki sieci wartości błędu, niż na zbiorze L 0,7 0,6 0,5 Błąd 0,4 0,3 0,2 V 0,1 0 0 100 200 300 400 500 600 700 800 900 1000 L Liczba epok

Bywa, że błąd na zbiorze walidacyjnym ma mniejszą wartość niż na zbiorze uczącym, ale z reguły ma dużą wariancję, bo to zbiór uczący zmienia reguły gry Błąd nauki sieci 0,6 0,5 0,4 Błąd 0,3 0,2 0,1 0 0 200 400 600 800 1000 Liczba epok trening weryfikacja

Moment wystąpienia przeuczenia

Tutaj efekt przeuczenia jest ewidentny

Inny rzeczywisty przykład przeuczenia Error 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 5 10 15 20 25 30 35 40 45 Epochs Error learning validation

Uczenie z wyraźnym niemal skokowym pogorszeniem generalizacji w wyniku przeuczenia 0.8 0.7 0.6 0.5 Error learning validation RMS 0.4 0.3 0.2 0.1 0.0-0.1 0 50 100 150 200 250 300 Epochs

Co ciekawe efekt przeuczenia daje się zauważyć także wtedy, gdy uczenie sieci przeprowadzane jest metodą ewolucyjną (algorytmem genetycznym)

Skąd się bierze utrata zdolności do generalizacji?

Na tych samych danych uczących sieć może zbudować model dobrze albo źle generalizujący Model zachowujący dobrą zdolność generalizacji Model który utracił zdolność generalizacji

Jedną z głównych przyczyn złej generalizacji jest niewłaściwa struktura sieci za bardzo lub za mało skomplikowana Strukturę sieci trzeba tak dobrać, żeby otrzymać aproksymację danych uczących nie za bardzo skomplikowaną, ale i nie nazbyt uproszczoną Dobra Zbyt skomplikowana Zbyt prosta

Tu zaczyna wariować od przeuczenia Tu sieć jest dobrze nauczona Początek uczenia Po kilku epokach Dalszy etap uczenia

Zbiór testowy uruchamia się po to, żeby wykryć sytuację, gdy sieć źle uogólnia, a zbiór walidacyjny tego nie wykrywa

W typowych (dobrze zdefiniowanych) przypadkach wyniki na zbiorze testowym są podobne, jak na zbiorze walidacyjnym (nieco gorsze).

Czasem zbiór testowy jest bardziej liberalny, niż walidacyjny

Bywa, że oceny na zbiorze testowym są lepsze nawet niż na zbiorze uczącym!

Nietypowy przypadek: Błąd Uczenie nauki sieci z trudnym rozruchem 0,7 0,6 0,5 Błąd 0,4 0,3 0,2 0,1 0 0 500 1000 1500 2000 2500 3000 Liczba epok trening weryfikacja

Problem z sieciami, które są nadmiernie inteligentne

Efekt uczenia na pamięć Błąd na zbiorze walidacyjnym nie maleje Sieć w istocie nie zdobywa użytecznej wiedzy! Błąd na zbiorze uczącym maleje

Efekt uczenia na pamięć w zestawieniu z typowym uczeniem Błąd na zbiorze walidacyjnym nie maleje wcale Powolny ale systematyczny postęp Błąd na zbiorze uczącym maleje niezwykle szybko

Przykład sieci, która w pewnym momencie zaczęła uczyć się na pamięć

0.40 0.35 0.30 0.25 0.20 0.15 0.10 0.05 Czasem dodanie jednego neuronu do warstwy ukrytej sieci może przerzucić sieć z trybu uczenia z uogólnianiem do trybu uczenia na pamięć MLP 20:20-8-1:1 0.45 0.40 0.35 0.30 0.25 0.20 0.15 0.10 0.05 54 0.00-0.05 0 20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 MLP 20-8-1 Błąd 0.00 U.1-0.05 W.1-100 -50 0 50 100 150 200 250 300 350 400 450 500 550 600 MLP 20-9-1

Inny efekt uczenia na pamięć Błąd nauki sieci 0,7 0,6 0,5 Błąd 0,4 0,3 0,2 0,1 0 0 200 400 600 800 1000 Liczba epok trening w eryfikacja

Jeszcze jeden przykład uczenia się na pamięć Błąd nauki sieci 0,7 0,6 0,5 Błąd 0,4 0,3 0,2 0,1 0 0 100 200 300 400 500 600 700 800 900 1000 Liczba epok trening w eryfikacja

Kolejny przykład uczenia na pamięć

Efekty uczenia sieci - 1 Niedouczenie 1.2 1.0 0.8 Przypadek I Błąd wyznaczony na podstawie zbioru uczącego oraz SSE 0.6 0.4 błąd wyznaczony na podstawie zbioru walidacyjnego 0.2 0.0-0.2 Epoki UCZ WAL maleją, ale pozostają pod koniec uczenia na wysokim poziomie. Przyczyną takiego zachowania może być czasem zbyt krótki czas uczenia sieci ale najczęściej przyczyną jest zbyt mała liczba elementów ukrytych sieci.

Efekty uczenia sieci - 2 SSE Przeuczenie 1.2 Przypadek II 1.0 0.8 0.6 0.4 0.2 0.0-0.2 Epoki UCZ WAL Błąd wyznaczony na podstawie zbioru uczącego bardzo szybko się zmniejsza, zaś błąd walidacyjny początkowo również maleje, a następnie zaczyna się zwiększać. Taki sposób kształtowania się wartości błędów jest klasycznym objawem przeuczenia. Jego podstawową przyczyną jest zbytnio rozbudowana struktura sieci.

Efekty uczenia sieci - 3 SSE Prawidłowy układ błędów 1.2 Przypadek III 1.0 0.8 0.6 0.4 0.2 0.0-0.2 Epoki UCZ WAL Zarówno wartość błędu wyznaczona na podstawie zbioru uczącego, jak i zbioru walidacyjnego ulega wyraźnemu zmniejszaniu w trakcie uczenia i osiąga akceptowalny przez użytkownika poziom. Poziom błędu walidacyjnego jest zwykle nieznacznie wyższy od jego odpowiednika obliczonego na podstawie zbioru uczącego. Strukturę sieci i przebieg uczenia należy ocenić prawidłowo.

Dodatkowe ciekawe właściwości sieci neuronowych

Nauczona sieć neuronowa wykazuje ograniczoną wrażliwość na uszkodzenia jej elementów ( redukcja połączeń )

Ewaluacja i poprawa jakości modelu neuronowego

Przy optymalizacji Dygresja parametrów sieci nie mamy lepszego kryterium, niż minimalizacja błędu E Trzeba jednak zdawać sobie sprawę, że czasem mniejszej wartości błędu odpowiada gorsze dopasowanie modelu Mała wartość błędu a jednak kiepskie dopasowanie Ta krzywa dosyć dobrze odwzorowuje sporą część danych a wartość błędu duża

Walidacja krzyżowa k-krotna walidacja krzyżowa: Dane dzielone są na k podzbiorów rozłącznych, wykorzystywanych zarówno do uczenia jak i do szacowania dokładności modelu. Następnie buduje się k modeli, używając każdej z części danych jako zbioru walidacyjnego, a pozostałych części jako zbioru uczącego. Następnie dla każdego modelu oblicza się błąd i uśrednia go po wszystkich modelach, uzyskując tzw. błąd walidacji krzyżowej.

Dla oceny jakości modelu zbudowanego przez sieć neuronową stosuje się często metodę k-krotnej walidacji krzyżowej (ang. k-fold cross-validation). Walidacja krzyżowa k-krotna (dla k=4)

Typowo stosuje się 5-krotną lub 10-krotną walidację krzyżowa lub N-krotną (N liczba wektorów uczących) zwaną wtedy leave-one-out

Bootstrap Zakładamy zbiór uczący T składający się z P przykładów uczących t p w postaci par uczących (x p,y p ) Bootstrap polega na tym, że losujemy (ze zwracaniem) spośród danych uczących t i nowe P-elementowe zbiory i robimy to K-krotnie, tworząc w ten sposób K bootstrapowych zbiorów danych T (k). Na każdej z tych prób przeprowadzamy uczenie modelu neuronowego, wyznaczając interesujące wielkości, np. dokładność aproksymacji w określonych punktach E(T) otrzymując K estymat tych wyznaczonych wielkości.

Zagadnienia szczegółowe

Czasami krzywe obrazujące zmiany błędu w trakcie uczenia mają nieco odmienny przebieg od wcześniej przedstawionego. Pokażemy teraz kilka takich nietypowych przebiegów.

Czasem na typowej krzywej uczenia pojawiają się przystanki znamionujące konieczność przezwyciężania przez sieć pewnych kryzysów

Niekiedy taki kryzys trwa dosyć długo, ale wytrwałym uczeniem można doprowadzić do ponownego znaczącego obniżenia wartości błędu

Niekiedy to końcowe przyspieszenie bywa wręcz drastyczne

Czasem z kolei uczenie przebiega na tyle szybko, że przerywa się je po uzyskaniu zadowalającego stopnia dokładności mimo wciąż jeszcze widocznej możliwości dalszej poprawy wyników uczenia.

Czasem w zadaniach z dużą szybkością uczenia proces malenia błędu w późniejszych etapach zaczyna przyspieszać, zamiast zwolnić (co jest typowe)

Backpropagation jest generalnie metodą dosyć wolną w działaniu:

Niektórych badaczy to ogromnie denerwuje, więc na jednej konferencji naukowej rozprowadzane były takie ulotki:

W wyniku tego niezadowolenia opracowano wiele metod uczenia, które w łatwych zadaniach są szybsze od backpropagation

Algorytm Quickprop

Metoda gradientów sprzężonych

Metoda Newtona

Algorytm Levenberga-Marquardta

Porównanie drogi, jaką dochodzi do rozwiązania metoda Levenberga-Marquardta oraz backpropagation

Przebieg uczenia kilkoma metodami tej same sieci tego samego zadania LM (Levenberga Marquardta) BFGS (Broyden-Fletcher- Goldfarb-Shanno)

Przykładowe porównanie jakości uczenia przy użyciu różnych algorytmów Tutaj wielkość błędu jest silnie zróżnicowana! Trudno jest w sposób ogólny powiedzieć, który algorytm jest lepszy, a który gorszy, bo to zależy od wielu czynników Ten sam problem N = 7 N = 8 różna ilość wejść

Niestety te bardziej wyrafinowane metody niekiedy fatalnie zawodzą w przypadku zadań naprawdę trudnych

Wiedza, którą nabywa sieć neuronowa w trakcie uczenia jest zwykle niemożliwa do interpretacji przez człowieka w 32 = 0,3443 What does it mean? Is it good?

Czasem jednak udaje się wyciągnąć z sieci neuronowej zgromadzoną w niej wiedzę i nadać jej interpretowalną formę

Reprezentacja wiedzy w sieci neuronowej

Rozkład wag odpowiednio w pierwszej i drugiej warstwie sieci uczonej rozpoznawania cyfr 1, 2, 3, 4

Rozkłady wag w sieci uczonej rozpoznawania ręcznie pisanych cyfr

Inny przykład tego samego zadania

Jeszcze dwa dalsze przykłady

Inny przykład rozkładu wag (dodatnich oraz ujemnych) po procesie uczenia rozpoznawania cyfr

Koniec wykładu o uczeniu