Zastosowania sieci neuronowych aproksymacja LABORKA Piotr Ciskowski
zadanie 1. aproksymacja funkcji odległość punktów źródło: Żurada i in. Sztuczne sieci neuronowe, przykład 4.4, str. 137 Naucz sieć taką samą jak do problemu XOR, czyli: 2-2-1 o bipolarnych sigmoidalnych funkcjach aktywacji, obliczania długości wektora wejściowego o współrzędnych x 1 i x 2 (wejścia sieci), 2 2 czyli o żądanym wyjściu danym wzorem: d = x1 + x2 dla x 1 i x 2 z przedziału od 0 do 0.7 ucz sieć metodą propagacji wstecznej błędu przez 30.000 epok przy współczynniku uczenia równym η = 0.4 jako zbioru uczącego użyj 10 losowych punktów położonych w pierwszej ćwiartce układu współrzędnych poniżej prostej x 2 = x 1 Narysuj wykres 3D oraz warstwicowy powierzchni błędu d dla otrzymanych wag dla wejść x 1 i x 2 z przedziału od 0 do 0.7 (takich, jak podczas uczenia), zaznacz na nim te 10 punktów uczących Czy (podobnie jak u Żurady) błąd aproksymacji szybko rośnie na zewnątrz obszaru zawierającego punkty uczące?
zadanie 1. aproksymacja funkcji odległość punktów źródło: Żurada i in. Sztuczne sieci neuronowe, przykład 4.4, str. 137 Powtórz naukę dla ciągu uczącego składającego się z 64 punktów położonych w węzłach siatki będącej podstawą wykresu 3D funkcji błędu Znów przeanalizuj wykres funkcji błędu
zadanie 1. aproksymacja funkcji odległość punktów źródło: Żurada i in. Sztuczne sieci neuronowe, przykład 4.4, str. 137 Powtórz naukę dla ciągu uczącego składającego się z 64 punktów położonych w węzłach siatki będącej podstawą wykresu 3D funkcji błędu - i dla sieci o 10 neuronach w warstwie ukrytej Znów przeanalizuj wykres funkcji błędu
zadanie 1. aproksymacja funkcji odległość punktów źródło: Żurada i in. Sztuczne sieci neuronowe, przykład 4.4, str. 137 Powtórz naukę dla sieci o: bipolarnych funkcjach aktywacji w pierwszej warstwie liniowych funkcjach aktywacji w drugiej warstwie Zbadaj zależność jakości / szybkości uczenia sieci od: liczby neuronów w warstwie ukrytej metody uczenia x 0 = 1 x = x 1 x 2 0 1 y
Napisz program ilustrujący uczenie sieci dwuwarstwowej zadania aproksymacji funkcji jednej zmiennej x 0 = 1 x = x 1 0 1 y Niech pierwsza warstwa sieci ma sigmoidalną bipolarną funkcję aktywacji, a warstwa wyjściowa liniową funkcję aktywacji
Niech program pozwoli wybrać: funkcję, jakiej ma się nauczyć sieć liczbę neuronów w warstwie ukrytej pozostałe parametry uczenia: liczba przykładów uczących / sprawdzających / testujących max. liczba epok docelowy błąd średniokwadratowy itp. Niech program rysuje na żywo podczas uczenia: wykres błędu pierwszej i drugiej warstwy przebieg wag neuronów pierwszej i drugiej warstwy co już umie sieć przekształcenie x w y żądane i już nauczone przekształcenia sygnału wejściowego nauczone przez poszczególne neurony warstwy ukrytej Przykładowy dialog programu z użytkownikiem oraz przykładowe przebiegi uczenia pokazane są na następnych slajdach We wszystkich przypadkach wykorzystane zostały funkcje z zajęć: int2, dzialaj2, ucz2, a więc najprostsza metoda uczenia najszybszego spadku gradientu Zaimplementuj (lub wykorzystaj toolbox owe) inne metody uczenia, sprawdź różnicę w uczeniu
co sieć umie przed uczeniem jako całość:
co sieć umie przed uczeniem poszczególne neurony warstwy ukrytej: - przemnożone przez odpowiednie wagi neuronu wyjściowego:
co sieć umie podczas uczenia jako całość:
co sieć umie po zakończeniu uczenia jako całość:
co sieć umie po zakończeniu uczenia poszczególne neurony warstwy ukrytej: - przemnożone przez odpowiednie wagi neuronu wyjściowego:
przebieg uczenia błąd średniokwadratowy:
przebieg uczenia wagi sieci:
przebieg uczenia 2 neurony w warstwie ukrytej, 40 pokazów w kroku (uczenie wsadowe): co umie sieć:
przebieg uczenia 5 neuronów w warstwie ukrytej, 40 pokazów w kroku, 50000 epok: co umie sieć:
przebieg uczenia 5 neuronów w warstwie ukrytej, 1 pokaz w kroku (uczenie przyrostowe): co umie sieć:
zadanie 3. aproksymacja funkcji 2D Napisz program ilustrujący uczenie sieci dwuwarstwowej zadania aproksymacji funkcji dwóch zmiennych x 0 = 1 x = x 1 x 2 0 1 y
zadanie 3. aproksymacja funkcji 2D Niech program pozwoli wybrać: funkcję, jakiej ma się nauczyć sieć liczbę neuronów w warstwie ukrytej pozostałe parametry uczenia: liczba przykładów uczących / sprawdzających / testujących max. liczba epok docelowy błąd średniokwadratowy itp. Niech program rysuje na żywo podczas uczenia: wykres błędu pierwszej i drugiej warstwy przebieg wag neuronów pierwszej i drugiej warstwy co już umie sieć - przekształcenie x w y żądane i już nauczone przekształcenia sygnału wejściowego nauczone przez poszczególne neurony warstwy ukrytej
zadanie 4. aproksymacja funkcji wielu zmiennych modelowanie wyceny opcji Naucz sieć neuronową MLP, RBF, a może jakąś inną, modelowania wzoru Blacka-Scholesa na wycenę opcji: o cena opcji kupna: o cena opcji sprzedaży: rt ( ) ( ) c = SN d Xe N d 1 2 ( ) ( ) rt p = Xe N d2 SN d1 gdzie: d 1 2 S σ ln + r + T X 2 = σ T 2 S σ ln + r T X 2 d2 = = d1 σ T σ T przy czym: S - obecna cena instrumentu bazowego X - cena wykonania r - stopa procentowa wolna od ryzyka T - czas do wygaśnięcia opcji σ - procentowy współczynnik zmienności przyszłych cen N - dystrybuanta rozkładu normalnego
zadanie 4. aproksymacja funkcji wielu zmiennych modelowanie wyceny opcji problem 1 - wycena opcji kupna / sprzedaży: rt ( 1) ( 2 ) rt ( ) ( ) c = SN d Xe N d p = Xe N d SN d 2 1 x 0 = 1 x1 S x2 X x r 3 x3 x 3 T σ x 0 = 1 S - obecna cena instrumentu bazowego X - cena wykonania r - stopa procentowa wolna od ryzyka T - czas do wygaśnięcia opcji σ - proc. współczynnik zmienności przyszłych cen zmienność implikowana N - dystrybuanta rozkładu normalnego c p
zadanie 4. aproksymacja funkcji wielu zmiennych modelowanie wyceny opcji problem 2 oszacowanie zmienności implikowanej z bieżącej wyceny opcji i pozostałych parametrów: x 0 = 1 x 0 = 1 x1 S x2 X x r 3 x3 x T 3, c p S - obecna cena instrumentu bazowego X - cena wykonania r - stopa procentowa wolna od ryzyka T - czas do wygaśnięcia opcji c,p cena opcji kupna / sprzedaży σ
zadanie 4. aproksymacja funkcji wielu zmiennych modelowanie wyceny opcji zakresy zmienności wejść przykładowe dla EURUSD: (poprawność merytoryczna (ekonomiczna) do sprawdzenia) X: 0.8000 1.8000 S: 0.8000 1.8000 r: 0.5 5.0 T: 7/365 90/365 σ: 10% 200%
zadanie 5. aproksymacja funkcji dane z życia wzięte Naucz sieć aproksymacji funkcji dla danych zebranych/zmierzonych samodzielnie lub znalezionych w sieci, np. z bazy zbiorów uczących UCI Machine Learning Repository W programie STATISTICA przeprowadź wstępną analizę danych wejściowych (histogramy, wykresy rozrzutu, statystyki opisowe, miary korelacji zmiennych), przeprowadź wstępne rozpoznawcze uczenie różnych sieci neuronowych Wybierz najlepszą architekturę sieci oraz metodę uczenia, przeanalizuj ją dokładnie, ewentualnie dopieść, wygeneruj kod w STATSITICe a potem naucz sieć dokładnie i wygeneruj kod w MATLABie
zadanie 5. aproksymacja funkcji dane z życia wzięte Przykładowe dane z helpów/dem MATLABa: house_dataset abalone_dataset bodyfat_dataset building_dataset chemical_dataset engine_dataset