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

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

Najważniejszy element wiedzy o sieciach neuronowych. uczenie sieci

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Uczenie sieci typu MLP

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

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

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Projekt Sieci neuronowe

Testowanie modeli predykcyjnych

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

Jakość uczenia i generalizacja

Optymalizacja ciągła

Zastosowania sieci neuronowych

Sieci neuronowe w Statistica

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

Widzenie komputerowe

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

Podstawy Sztucznej Inteligencji (PSZT)

Metody Sztucznej Inteligencji II

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

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

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

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

Temat: Sieci neuronowe oraz technologia CUDA

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

SZTUCZNA INTELIGENCJA

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

KADD Minimalizacja funkcji

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

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.

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

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

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Elementy inteligencji obliczeniowej

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

Zmienne zależne i niezależne

Wprowadzenie do analizy korelacji i regresji

wiedzy Sieci neuronowe

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Instrukcja realizacji ćwiczenia

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

Optymalizacja ciągła

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

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

METODY INŻYNIERII WIEDZY

Analiza składowych głównych. Wprowadzenie

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

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

Elementy modelowania matematycznego

Obliczenia inteligentne Zadanie 4

Rozdział 1 Sztuczne sieci neuronowe. Materiały do zajęć dydaktycznych - na podstawie dokumentacji programu Matlab opracował Dariusz Grzesiak

Lekcja 5: Sieć Kohonena i sieć ART

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

ALGORYTM RANDOM FOREST

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

Metody numeryczne I Równania nieliniowe

Klasyfikacja LDA + walidacja

Podstawy sztucznej inteligencji

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.

Zastosowania sieci neuronowych

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

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

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

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

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

6. Perceptron Rosenblatta

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

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

Uczenie sieci radialnych (RBF)

wiedzy Sieci neuronowe (c.d.)

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

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

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

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

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

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

Co to jest grupowanie

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

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

Sztuczne sieci neuronowe

Podstawy Sztucznej Inteligencji

Testowanie hipotez statystycznych

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

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

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

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

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

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

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Rozpoznawanie obrazów

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

ALHE. prof. Jarosław Arabas semestr 15Z

SIECI REKURENCYJNE SIECI HOPFIELDA

Sztuczne sieci neuronowe. Uczenie, zastosowania

Dokumentacja Końcowa

SZTUCZNA INTELIGENCJA

I EKSPLORACJA DANYCH

Inteligentne systemy przeciw atakom sieciowym

Transkrypt:

Ogólna idea procesu uczenia Najważniejszy element wiedzy o sieciach neuronowych uczenie sieci 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 w n w 1 w 2 w 3 g(x, w) x f(x) 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 Ciąg uczący Postawienie zadania Wzorcowe rozwiązanie zadania Regulowanie parametrów sieci Ocena błędu... i-1 i i+1... X 1 X 2.... X n D 1 D 2... X 1 X 2.... X n w x 1 w x 1 w x 1 w x 1 w 1 x w Zmodyfikuj wagi tak aby zmniejszyć błędy! 1 x Y 1 Y 2 - D 1 - D 2 E i Błąd! Błąd! Proces ten jest powtarzany wielokrotnie aż do uzyskania przez sieć wymaganego stopnia nauczenia Sieć wymagająca uczenia Rozwiązanie zadania przez uczoną sieć... w 1 x Dostarczenie pożądanych wartości wyjściowych D 1 D 2 celem wyznaczenia błędów 1

Ewa 2013-06-12 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 Learning set Porównanie zawartej w danych wzorcowej odpowiedzi z wynikiem obliczonym przez sieć daje błąd Błąd Learning process changes network weights Exam Input Na podstawie błędu zmienia się wagi wszystkich neuronów w sieci, tak żeby ten błąd malał Robi to algorytm uczenia 01 10 Expected output Outputs 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). korekta błędu Jan 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 2

Bez zera! 2013-06-12 Alternatywne rozwiązanie to użycie algorytmu znanego jako Nguyen-Widrow Randomization (NW) Inny przykład histogramu losowo zainicjowanych wag Przykład rozkład uzyskany w wyniku inicjalizacji sieci algorytmem NW 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 Sieć może mieć wiele wyjść, a ponadto dla każdego zadania ze zbioru uczącego popełnia inny błąd. x x y y x 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: 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 E R p 1 M o d pk y pk k 1 2 3

Przebieg typowej zmiany funkcji błędu w czasie procesu uczenia 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 Typowy histogram błędów sieci 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 4

suma kwadratów błędów 2013-06-12 Uczenie z nauczycielem Bez mieszania (randomizacji) zbioru uczącego może dochodzić do cyklicznych zmian wag podczas 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 Epoka - Jednokrotna prezentacja wszystkich przypadków uczących krok uczenia numer i x i1 x i2 y i 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. 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. Tak wygląda przebieg prawidłowego uczenia sieci (trajektoria zmiany wag) 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. W i W j 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ć: N SSE d i y i i 1 2 I rzeczywiście zwykle błąd maleje! Jeśli proces uczenia ma zakończyć się sukcesem, Najpierw to błąd Potem powinien wolniej maleć szybko Krzyżyki oznaczają elementy zbioru uczącego Linia ciągła prezentuje wynik działania sieci Start procesu uczenia wszystkie wagi są przypadkowe Błąd SSE Animowany przykładowy przebieg procesu uczenia 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. 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. linie Zależy to głównie od tego, jak wybrany został punkt startowy, to znaczy wartości wag na początku procesu uczenia. 0 50 100 150 200 250 300 350 400 450 czas uczenia (w epokach) Uczenie sieci o różnej liczbie neuronów w warstwie ukrytej 1 neuron ukryty 7 neuronów ukrytych 48 neuronów ukrytych 5

Błąd 2013-06-12 Inny sposób prezentacji uczenia sieci o różnej liczbie neuronów w warstwie ukrytej 1 neuron ukryty 7 neuronów ukrytych Teraz trochę szczegółów na temat zbioru uczącego 48 neuronów ukrytych Przykład tworzenia zbioru uczącego 2006 T=7 Dane źródłowe Przykładowy zbiór uczący 2005 T=6 2004 T=5 235 (zagrożone) 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 Liczba przypadków: 2731 (T) podzbiór testujący (L) podzbió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 wielkość zbioru uczącego Stopień skomplikowania modelu 6

Inny przykład zbioru uczącego Dlatego czasem zbiór uczący się sztucznie rozmnaża 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 7

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 przy takim zestawie wag a przy takim zestawie wag Drugi współczynnik wagowy w 2 Pierwszy współczynnik wagowy w 1 Istota uczenia polega na szukaniu miejsca, w którym błąd jest minimalny Błąd minimum funkcji błędu Powierzchnie błędów bywają dosyć skomplikowane! w s w n w ideal. waga w 2 waga w 1 w 8

Co więcej, powierzchnia taka zmienia się radykalnie wraz ze zmianą struktury sieci! 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: 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 E SSE N 2 d i y i i 1 Stary (gorszy) wektor wag Migracja w przestrzeni wag Nowy (lepszy) wektor wag 9

Poszukiwanie (i znajdowanie!) minimum funkcji błędu metodą wyznaczania w każdym kolejnym kroku kierunku najszybszego spadku Dane wejściowe ze Istota zbioru uczącego algorytmu uczenia ze wsteczną propagacją błędu Dane wejściowe ze Istota zbioru uczącego algorytmu uczenia ze wsteczną propagacją błędu Wynik ze zbioru uczącego Istota algorytmu uczenia ze wsteczną propagacją błędu Wynik ze zbioru uczącego Istota algorytmu uczenia ze wsteczną propagacją błędu Istota algorytmu uczenia ze wsteczną propagacją błędu 10

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 Uczenie sieci neuronowej krok po kroku metodą backpropagation Krok 1: Podanie danych wejściowych Trzeba to robić dla wszystkich elementów uczących Krok 2: Obliczanie wartości wyjściowej 1. neuronu 1. warstwy ukrytej Krok 3: Obliczanie wartości wyjściowej 2. neuronu 1. warstwy ukrytej 11

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 12

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 13

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 14

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 η) Błąd Problem doboru wartości współczynnika uczenia η w przypadku jednowymiarowej funkcji błędu - animacja 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 Minimum globalne Mały współczynnik uczenia Duży współczynnik uczenia Wagi 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 Zależność przebiegu uczenia od wartości współczynnika uczenia η oznaczanego także jako LR (Learning Rate) Współczynnik η = 0,001 Współczynnik η = 0,01 15

Wartość współczynnika uczenia η 2013-06-12 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 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ół! 16

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 Łączny dobór wartości współczynnika uczenia i momentum dane surowe Momentum przyspiesza i stabilizuje uczenie! Łączny dobór współczynnika uczenia i momentum dane wygładzone Trochę szczegółów na temat przebiegu procesu uczenia 17

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 18

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 Dla takiej funkcji trafienie podczas uczenia sieci do minimum lokalnego, a nie globalnego, oznacza klęskę! Ekstremum globalne, dobre dopasowanie sieci Problem minimów lokalnych 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 W dalszych przykładach będziemy używali funkcji błędu mającej jedno minimum lokalne i jedno globalne Sukces! Niepowodzenie! Oto wykres tej funkcji... oraz jej mapa z poziomicami 19

Wynik uczenia zależy od wyboru początkowych wartości wag (punktu startowego algorytmu) Utknięcie procesu uczenia w pułapce minimum lokalnego wyjaśnia, dlaczego czasem nauczona sieć dopasowuje swoje działanie tylko do części danych 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! Minimum lokalne jako pułapka w procesie uczenia Minimum lokalne, oznaczające niedoskonałe dopasowanie sieci do danych Minimum globalne, oznaczające najlepsze możliwe dopasowanie sieci do danych Ucieczka z lokalnego minimum jest trudna, bo wymaga chwilowego pogorszenia jakości działania sieci 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 20

Dlatego 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 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 21

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. Na jakiej podstawie przerwać uczenie sieci? Z R 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. Przykładowe rozkłady błędów dla dwóch różnych sieci neuronowych odpowiednio dla zbiorów L, V i T. Z R Ż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 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 22

Błąd Błąd 2013-06-12 Przeuczenie sieci czyli zanik zdolności do generalizacji Przeuczenie! 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 0.8 0.6 0.4 0.2 0 W trakcie uczenia obserwujemy: Zdolność do aproksymacji: y 0 200 400 600 800 1000 U i 1 i 2 k SSE d y Zdolność do generalizacji: W i k 1 Network training error 1 n 2 SSE di yi Tutaj dzieje się coś dziwnego! i Train Verify Dzięki użyciu zbioru danych walidacyjnych można wykryć moment przeuczenia sieci. 1 0.8 0.6 0.4 0.2 0 Tu zaczyna się przeuczenie 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 0,4 0,3 0,2 V 0,1 L 0 0 100 200 300 400 500 600 700 800 900 1000 Liczba epok trening weryfikacja 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 Ale czasem efekt przeuczenia jest ewidentny 0,6 0,5 0,4 0,3 0,2 0,1 0 0 200 400 600 800 1000 Liczba epok trening weryfikacja 23

17 Inny rzeczywisty przykład przeuczenia Uczenie z wyraźnym niemal skokowym pogorszeniem generalizacji w wyniku przeuczenia 0.8 16 15 0.7 Error 14 13 12 11 10 9 8 7 Error learning validation RMS 0.6 0.5 0.4 0.3 Error learning validation 6 5 0.2 4 3 0.1 2 1 0.0 0 0 5 10 15 20 25 30 35 40 45 Epochs -0.1 0 50 100 150 200 250 300 Epochs Jeśli stać nas na wydzielenie osobnych danych testowych to można sprawdzić, czy błąd uzyskany przy walidacji nie był wynikiem zbiegu okoliczności Wprowadzenie oceny na zbiorze testowym 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? 24

Błąd 2013-06-12 Na tych samych danych uczących sieć może zbudować model dobrze albo źle generalizujący 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ą Model zachowujący dobrą zdolność generalizacji Model który utracił zdolność generalizacji Dobra Zbyt skomplikowana Zbyt prosta Uczenie z trudnym rozruchem Błąd nauki sieci 0,7 0,6 0,5 0,4 0,3 0,2 Problem z sieciami, które są nadmiernie inteligentne 0,1 0 0 500 1000 1500 2000 2500 3000 Liczba epok trening weryfikacja Efekt uczenia na pamięć Błąd na zbiorze walidacyjnym nie maleje Efekt uczenia na pamięć w zestawieniu z typowym uczeniem Błąd na zbiorze walidacyjnym nie maleje wcale Sieć w istocie nie zdobywa użytecznej wiedzy! Powolny ale systematyczny postęp Błąd na zbiorze uczącym maleje Błąd na zbiorze uczącym maleje niezwykle szybko 25

Błąd Błąd 2013-06-12 Przykład sieci, która w pewnym momencie zaczęła uczyć się na pamięć 0.40 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 54 0.35 0.40 0.30 0.25 0.20 0.15 0.10 0.05 0.35 0.30 0.25 0.20 0.15 0.10 0.05 0.00 Błąd 0.00 U.1-0.05-0.05 W.1 0 20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320-100 -50 0 50 100 150 200 250 300 350 400 450 500 550 600 MLP 20-8-1 MLP 20-9-1 Inny efekt uczenia na pamięć Błąd nauki sieci 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 0 200 400 600 800 1000 Liczba epok Jeszcze jeden przykład uczenia się na pamięć Błąd nauki sieci 0,7 0,6 0,5 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 trening w eryfikacja Efekty uczenia sieci - 1 Efekty uczenia sieci - 2 SSE 1.2 1.0 0.8 0.6 0.4 0.2 0.0-0.2 Niedouczenie Epoki UCZ WAL Przypadek I Błąd wyznaczony na podstawie zbioru uczącego oraz błąd wyznaczony na podstawie zbioru walidacyjnego 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. SSE Przeuczenie 1.2 Przypadek II 1.0 0.8 0.6 0.4 0.2 0.0 UCZ -0.2 WAL Epoki 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. 26

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 UCZ -0.2 WAL Epoki 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 parametrów sieci nie mamy Dygresja 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. 27

Dla oceny jakości modelu zbudowanego przez sieć neuronową stosuje się często metodę k-krotnej walidacji krzyżowej (ang. k-fold cross-validation). 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 Walidacja krzyżowa k-krotna (dla k=4) 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. Czasem na typowej krzywej uczenia pojawiają się przystanki znamionujące konieczność przezwyciężania przez sieć pewnych kryzysów Pokażemy teraz kilka takich nietypowych przebiegów. 28

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: 29

Algorytm Quickprop W wyniku tego niezadowolenia opracowano wiele metod uczenia, które w łatwych zadaniach są szybsze od backpropagation Metoda gradientów sprzężonych Metoda Newtona Algorytm Levenberga-Marquardta Porównanie drogi, jaką dochodzi do rozwiązania metoda Levenberga-Marquardta oraz backpropagation 30

Przebieg uczenia kilkoma metodami tej same sieci tego samego zadania Przykładowe porównanie jakości uczenia przy użyciu różnych algorytmów LM (Levenberga Marquardta) BFGS (Broyden-Fletcher- Goldfarb-Shanno) 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 różna ilość wejść N = 7 N = 8 Wiedza, którą nabywa sieć neuronowa w trakcie uczenia jest zwykle niemożliwa do interpretacji przez człowieka Niestety te bardziej wyrafinowane metody niekiedy fatalnie zawodzą w przypadku zadań naprawdę trudnych 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 31

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 32