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:lab5 [2013/03/21 13:34]
esimon [Regularized Cost Function]
pl:dydaktyka:ml:lab5 [2013/03/21 13:48]
esimon [Regularized Cost Function]
Linia 71: Linia 71:
 Przetestuj działanie funkcji za pomocą skryptu //check.m// Przetestuj działanie funkcji za pomocą skryptu //check.m//
 ===== Regularized Cost Function ===== ===== Regularized Cost Function =====
-Regularyzacja pomaga zwalczyć problem tzw. //​overfittingu//​ danych, który pojawia się gdy do uczenia wykorzystujemy zbyt wiele parametrów przy jednoczesnej niewielkiej ilości przykładów uczących. //​Overfitting//​ skutkuje nadmiernym dopasowaniem do danych uczących i utrata pewnej generalizacji. Efektem //​Overfittingu//​ jest to, że algorytm idealnie działa na zbiorze uczącym, natomiast bardzo niedokładnie klasyfikuje dane ze zbioru testowego. ​(zobacz rysunek poniżej)+Regularyzacja pomaga zwalczyć problem tzw. //​overfittingu//​ danych, który pojawia się gdy do uczenia wykorzystujemy zbyt wiele parametrów przy jednoczesnej niewielkiej ilości przykładów uczących. //​Overfitting//​ skutkuje nadmiernym dopasowaniem do danych uczących i utrata pewnej generalizacji. Efektem //​Overfittingu//​ jest to, że algorytm idealnie działa na zbiorze uczącym, natomiast bardzo niedokładnie klasyfikuje dane ze zbioru testowego ​- zobacz rysunek poniżej. 
 + 
 +{{:​pl:​dydaktyka:​ml:​overfit-lr3.png|Overfitting}} 
 + 
 +Parametrem, który pozwala na regularyzację jest parametr $\lambda$. W zależności od jego wartości możemy skutecznie zlikwidować problem overfittingu. Jednak zwiększając nieodpowiedzialnie wartość tego parametru możemy doprowadzić do sytuacji, w której algorytm uczący nie będzie dobrze klasyfikował nawet danych treningowych - zobacz rysunek poniżej
 + 
 +{{:​pl:​dydaktyka:​ml:​underfit-lr4.png|}}
  
 Funkcja kosztu uwzględniająca regularyzację określona jest następującym wzorem: Funkcja kosztu uwzględniająca regularyzację określona jest następującym wzorem:
Linia 77: Linia 83:
  
 **Uwaga** Nie normalizujemy parametru $\theta_0$ :!: W Octave indeksy zaczynają się od 1, dlatego parametr, który powinien zostać pominięty to //​theta(1)//​. Gradient w takim wypadku przedstawia się następująco:​ **Uwaga** Nie normalizujemy parametru $\theta_0$ :!: W Octave indeksy zaczynają się od 1, dlatego parametr, który powinien zostać pominięty to //​theta(1)//​. Gradient w takim wypadku przedstawia się następująco:​
 +
 +**Dla** $j=0$
 +$$\frac{\partial J(\theta)}{\partial\theta_0}= \frac{1}{m}\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j$$
 +
 +**Dla** $j\geq1$
 +$$\frac{\partial J(\theta)}{\partial\theta_j}= (\frac{1}{m}\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j)+\frac{\lambda}{m}\theta_j$$
 +
 +Sprawdź swoją implementację za pomocą skryptu //​ex2_reg.m//​ oraz //​check.m//​.
 +
 +**Uwaga** Otwórz plik //​ex2_reg.m//​ i przetestuj działanie algorytmu zmieniając wartość współczynnika $\lambda$ w okolicach linii 90. 
  
  
pl/dydaktyka/ml/lab5.txt · ostatnio zmienione: 2019/06/27 15:50 (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