Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:ml:lab6 [2013/04/03 10:54] esimon [Uwagi] |
pl:dydaktyka:ml:lab6 [2019/06/27 15:50] (aktualna) |
{{:pl:dydaktyka:ml:ex4.pdf|Instructions}} in English. | {{:pl:dydaktyka:ml:ex4.pdf|Instructions}} in English. |
| |
Ćwiczenia do pobrania (files to download): {{:pl:dydaktyka:ml:neural-networks.zip|Sieci Neuronowe}} | Ćwiczenia do pobrania (files to download): {{:pl:dydaktyka:ml:neural-networks.zip|Neural Networks}} |
| |
===== Lista i opis plików ===== | ===== Lista i opis plików ===== |
* //ex4.m// - Skrypt pomagający przejść przez laboratorium | * //ex4.m// - Skrypt pomagający przejść przez laboratorium |
* randInitializeWeights.m - Losowa inicjalizacja wag sieci neuronowej | * randInitializeWeights.m - Losowa inicjalizacja wag sieci neuronowej |
* :!: nnCostFunction.m - funkcja kosztu dla sieci neuronowej | * :!: nnCostFunction.m - funkcja kosztu dla sieci neuronowej |
| ===== Rozgrzewka ===== |
| Zanim zaczniemy właściwą część zajęć, poświeć chwilę na obejrzeniu jak działa prosta sieć neuronowa w akcji: http://playground.tensorflow.org/ |
| |
| Zastanów się co wpływa na jakość klasyfikacji: |
| * ilość neuronów w warstwie ukrytej? |
| * funkcja aktywacji neuronu? |
| * cechy, które podajemy na wejściu? |
| * ilość danych wejśćiowych? |
| * współczynnik regularyzacji lub learning rate? |
| * ilość warstw ukrytych? |
| |
===== Wstęp ===== | ===== Wstęp ===== |
Celem ćwiczeń laboratoryjnych jest nauczenie sieci neuronowej rozpoznawania cyfr. | Celem ćwiczeń laboratoryjnych jest nauczenie sieci neuronowej rozpoznawania cyfr. |
| |
{{:pl:dydaktyka:ml:digit-nn.png?700|Struktura sieci neuronowej do rozpoznawania cyfr}} | {{:pl:dydaktyka:ml:digit-nn.png?700|Struktura sieci neuronowej do rozpoznawania cyfr}} |
| |
===== Funkcja kosztu ===== | ===== Funkcja kosztu ===== |
Uzupełnij plik //nnCostFunction.m// wyznaczając koszt i gradient dla sieci neuronowej. | Uzupełnij plik //nnCostFunction.m// wyznaczając koszt i gradient dla sieci neuronowej. |
| |
Wartość funkcji kosztu obliczany jest za pomocą wzoru: | Wartość funkcji kosztu obliczany jest za pomocą wzoru: |
$$J(\theta)= \frac{1}{m}\sum_{i=1}^{m}\sum_{k=1}^{K}\left [ -y_k^{(i)}log((h_\theta(x^{(i)}))_k)-(1-u_k^{(i)})log(1-(h_\theta(x^{(i)}))_k \right ]$$ | $$J(\theta)= \frac{1}{m}\sum_{i=1}^{m}\sum_{k=1}^{K}\left [ -y_k^{(i)}log((h_\theta(x^{(i)}))_k)-(1-y_k^{(i)})log(1-(h_\theta(x^{(i)}))_k \right ]$$ |
| |
Gdzie $m$ to ilość przykładów w zbiorze uczącym, a $K$ to ilość etykiet (w naszym przypadku 10). | Gdzie $m$ to ilość przykładów w zbiorze uczącym, a $K$ to ilość etykiet (w naszym przypadku 10). |
0\\ | 0\\ |
0\\ | 0\\ |
3\\ | 1\\ |
0\\ | 0\\ |
...\\ | ...\\ |
Wartość funkcji kosztu obliczany jest za pomocą wzoru: | Wartość funkcji kosztu obliczany jest za pomocą wzoru: |
$$ | $$ |
J(\theta)= \frac{1}{m}\sum_{i=1}^{m}\sum_{k=1}^{K}\left [ -y_k^{(i)}log((h_\theta(x^{(i)}))_k)-(1-u_k^{(i)})log(1-(h_\theta(x^{(i)}))_k \right ] + R(\theta) | J(\theta)= \frac{1}{m}\sum_{i=1}^{m}\sum_{k=1}^{K}\left [ -y_k^{(i)}log((h_\theta(x^{(i)}))_k)-(1-y_k^{(i)})log(1-(h_\theta(x^{(i)}))_k \right ] + R(\theta) |
$$ | $$ |
| |
Przetestuj działanie algorytmu przy pomocy skryptu //check.m// oraz //ex4.m//. | Przetestuj działanie algorytmu przy pomocy skryptu //check.m// oraz //ex4.m//. |
===== Uwagi ===== | ===== Uwagi ===== |
* Wzór funkcji kosztu podany jest wyłącznie dla jednej warstwy - poprawić, żeby było jasne że konieczne jest zrobienie iteracji dla kolejnych warstw. | |
* Za długie - rozbić na dwie części | |
| |