2.8 KiB
Wielowarstwowe sieci neuronowe
Keras to zaawansowany pakiet do tworzenia sieci neuronowych w języku Python.
Na komputerach wydziałowych powinien być zainstalowany.
Na własnych komputerach pod Linuxem można go zainstalować poleceniem: sudo pip install keras
.
Uwaga: pierwsze uruchomienie zazwyczaj trwa jakiś czas, ponieważ pod spodem model kompiluje się jako aplikacja w C++.
1. Iris dataset
Korzystając z oficjalnej dokumentacji oraz materiałów szkoleniowych znalezionych w internecie (np. machinelearningmastery.com), zbuduj (co najmniej) dwuwarstwową sieć neuronową do klasyfkacji _Iris dataset. Opisz stworzony model: architekturę sieci, jej rozmiar, zastosowane funkcje aktywacji, funkcję kosztu, wersję GD, metodę regularyzacji. Podaj wynik ewaluacji na zbiorze testowym.
2. MNIST
Uruchom przykład mnist_mlp.py
z katalogu oficjalnych przykładów (warto ew. zmienić liczbę epok do 5). Posiłkując się dokumentacją, przeanalizuj kod i opisz:
- Do jakiej postaci sprowadzane są dane
Y_train
iY_test
? - Przedstaw wzór matematyczny na zastosowaną funkcję błędu.
- Jaka jest architektura sieci neuronowej? Ile ma warstw, jakie są rozmiary macierzy warstw? Czy można uzyskać dostęp do tych wag?
- Jakie funkcje aktywacji użyto? Podaj ich wzory.
- Czym jest
Dropout
? Czemu służy? Jakie znaczenie ma parametr?
Zmodyfikuj model z przykładu mnist_mlp.py
i wykonaj:
- Usuń warstwy
Dropout
, jaki jest efekt? - Stwórz 6-cio warstwowy model o rozmiarach warstw 2500, 2000, 1500, 1000, 500 oraz 10 bez
Dropout
, użyj wszędzie funkcji aktywacjitanh
z wyjątkiem ostatniej warstwy, gdzie należy użyćsoftmax
. Trenuj model przez 10 epok. - Dodaj warstwy
Dropout
, porównaj jakość po 10 epokach, krótko opisz wnioski. - Zamiast
RMSprop
użyj algorytmAdagrad
, porównaj jakość, krótko opisz wnioski.