Laboratorium 2 Programowanie Sieciowe Klasyfikacja wieloklasowa
Marek Bazan
III rok - Elektornika
Semestr letni 2019/2020
Plan zajęć
1. Literatura
2. Elementy modułu scikit-learn
3. Klasyfikacja wieloklasowa za pomocą perceptronu wielowarstwowego
4. Przeszukiwanie siatki hiper-parametrów 5. Dowolne zadanie z kaggle’a
Literatura
(Scikit-Learn) https://scikit-learn.org/stable/
tutorial/basic/tutorial.html
Dane mnist
http://yann.lecun.com/exdb/mnist/
Klasyfikacja wieloklasowa - struktura sieci
1. Kodowanie wyjścia typu hot one
n-ta klasa na wyjściu kodowana (0, . . . , 1
|{z}
n−ta składowa
, . . . , 0)
2. Model perceptronu wielowarstowego z jedną warstwą ukrytą do zadania klasyfikacji
3. Funkcja softmax na wyjściu sieci dla klasyfikacji wieloklasowej https://scikit-learn.org/stable/modules/neural_
networks_supervised.html
Aby użyć na wyściu funkcji softmax trzeba zrobić podstawienie przed treningiem:
your model .out activation =0 softmax0. Patrz
https://scikit-learn.org/stable/modules/generated/
sklearn.neural_network.MLPClassifier.html
Klasyfikacja wieloklasowa - funkcja celu
https://ml-cheatsheet.readthedocs.io/en/latest/loss_
functions.html
Algorytm uczenia z doborem hiper-parametrów
1. Z modułu scikit-learn
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 C l a s s i f i e 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) 2. GridSearchCV – https:
//scikit-learn.org/stable/modules/generated/
sklearn.model_selection.GridSearchCV.html
Algorytm uczenia perceptronu wielowarstwowego
solver : ‘lbfgs’, ‘sgd’, ‘adam’, default ‘adam’
The solver for weight optimization.
1. ‘lbfgs’ is an optimizer in the family of quasi-Newton methods.
2. ‘sgd’ refers to stochastic gradient descent.
3. ‘adam’ refers to a stochastic gradient-based optimizer proposed 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. Algorytm optymalizacji wag – adam, lfbs, sgd.
Zadanie na kaggle
Kaggle.com – klasyfikacja