umz21/lab/11_Wielowarstwowe_sieci_neuronowe.ipynb
2021-03-05 08:21:24 +01:00

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 i Y_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 aktywacji tanh 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 algorytm Adagrad, porównaj jakość, krótko opisz wnioski.