Laboratorium 3 Programowanie Sieciowe
Zadanie regresji
Marek Bazan
III rok - Elektornika
Semestr letni 2019/2020
Plan zajęć
1. Dane ze wskaźnikami giełdowymi
2. Perceptron wielowarstwowy z jedną warstwą ukrytą do zadania regresji/aproksymacji
3. Proste zadanie aproksymacji
Dane ze wskaźnikami giełdowymi
https://www.kaggle.com/camnugent/sandp500
WAŻNE: W danych pomijamy polę daty.
Budowa zbioru danych
1. Załóżmy, że mamy szereg czasowy
y1(1), y1(2), . . . , y1(r ), y2(1), y2(2), . . . , y2(r ), . . . , yN(1), yN(2), . . . , yN(r ) gdzie yi(j ) ∈ R i chcemy z k·r kolejnych wyrazów tego ciągu wyznaczyć wyraz k·r + l gdzie l ∈ {1, . . . , r }.
2. Dane Z = {(xi, yi)}i =1N−k+1 gdzie xi ∈ Rk·r i yi ∈ R.
3. Kodowanie wejścia
xi = [yi(1), . . . , yi(r ), yi +1(1), . . . , yi +1(r ), . . . , yi +k(1), . . . , yi +k(r )], yi = yi +k+1(l ) gdzie i = 1, . . . , N − (k + 1) (1) W powyższych wzorach r jest liczbą wskaźników na
podstawie, których robimy predykcję. Natomiast l oznacza ten wskaźnik, który predykujemy.
Algorytm uczenia z doborem hiper-parametrów
1. Model perceptronu wielowarstowego z jedną warstwą ukrytą do zadania regresji
2. Funkcja tanh lub logistic w warstwie ukrytej i funkcja liniowa na wyjściu
3. Punkt startowy optymalizacji
c l a s s s k l e a r n . n e u r a l n e t w o r k . M L P R e g r e s s o r ( h i d d e n l a y e r s i z e s =(100 , ) ,
a c t i v a t i o n=” r e l u ” , s o l v e r=”adam” , a l p h a = 0 . 0 0 0 1 , b a t c h s i z e=” a u t o ” , l e a r n i n g r a t e =” c o n s t a n t ” ,
l e a r n i n g r a t e i n i t = 0 . 0 0 1 , p o w e r t = 0 . 5 , m a x i t e r =200 , s h u f f l e =True ,
r a n d o m s t a t e=None , t o l = 0 . 0 0 0 1 , v e r b o s e=F a l s e , w a r m s t a r t=F a l s e , momentum = 0 . 9 ,
e a r l y s t o p p i n g=F a l s e ,
v a l i d a t i o n f r a c t i o n = 0 . 1 , b e t a 1 = 0 . 9 , b e t a 2 = 0 . 9 9 9 , e p s i l o n =1e −08 ,
n i t e r n o c h a n g e =10)
4. Konfiguracja algorytmów szukania minimum funkcji błędu 5. GridSearchCV
Algorytm uczenia perceptronu wielowarstwowego
solver : ‘lbfgs’, ‘sgd’, ‘adam’, default ‘adam’
Solver do optymalizacji wag.
1. ‘lbfgs’ z rodziny metod quasi-Newton’owskich.
2. ‘sgd’ stochastyczny gradient.
3. ‘adam’ stochastyczny gradient zaproponowany przez by Kingma, Diederik, and Jimmy Ba
Przegląd zupełny przestrzeni parametrów
1. Liczba neuronów – 20, 40, . . . , 100,
2. Współczynnik uczenia sieci – 0.1, 0.01, 0.001,
3. Typ modyfikacji współczynnika uczenia – ’’constant’’,
’’adaptive’’,
4. Algorytm optymalizacji wag – adam, lfbs, sgd.
Proste zadanie aproksymacji
1. Mamy zbiór danych Z = {(xi, yi)}i =1N gdzie xi, yi ∈ R.
2. Chcemy zbudować aproksymator net taki, że net(xi) ≈ yi dlai = 1, . . . , N
3. Przykład: Niech y = cos(x ) ∗ sin(x ) + i oraz N = 500, węzły xi mają być rozłożone równomiernie a i jest szumem losowym z rozkładu N(0, σ)
3.1 Skonstruować zbiór treningowy i testowy
3.2 Skonstruować i wytrenować aproksymator sieć typu perceptron wielowarstwowy
3.3 Wynik zwizualizować.