Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:ml:lab6 [2013/04/03 09:03]
esimon [Regularyzowane backpropagation]
pl:dydaktyka:ml:lab6 [2019/06/27 15:50] (aktualna)
Linia 4: Linia 4:
 {{:​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
Linia 19: Linia 21:
   * 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.
Linia 26: Linia 39:
  
 {{:​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.
Linia 37: Linia 49:
  
 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).
Linia 43: Linia 55:
 **Uwaga** Pamiętaj aby poprawnie obliczyć wartość $h(x)$, która w przypadku sieci neuronowej polega na wymnożeniu współczynników wag //Theta// i danych wejściowych - zobacz rysunek powyżej. **Uwaga** Pamiętaj aby poprawnie obliczyć wartość $h(x)$, która w przypadku sieci neuronowej polega na wymnożeniu współczynników wag //Theta// i danych wejściowych - zobacz rysunek powyżej.
  
-**Uwaga** Sieć neuronowa ma 10 neuronów w warstwie wyjściowej. Zatem wyjście sieci oznaczające,​ że rozpoznano np liczbę 3, będzie wyglądać następująco:​+**Uwaga** Sieć neuronowa ma 10 neuronów w warstwie wyjściowej. Zatem wyjście sieci oznaczające,​ że rozpoznano np liczbę 3, będzie wyglądać następująco ​(cyfrę **zero** reprezentować będzie 10 indeks wektora //y//):
  
 $$y = \begin{bmatrix} $$y = \begin{bmatrix}
-0\\  
 0\\  0\\ 
 0\\  0\\ 
 1\\  1\\ 
 +0\\ 
 ...\\  ...\\ 
 0 0
Linia 60: Linia 72:
 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)
 $$ $$
  
Linia 102: Linia 114:
 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.+
  
pl/dydaktyka/ml/lab6.1364972637.txt.gz · ostatnio zmienione: 2019/06/27 15:54 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0