一、正規方程(Normal equation):
對於某些線性回歸問題,正規方程方法很好解決;
\(\frac{\partial}{\partial\theta_j}J(\theta_j)=0\),假設我們的訓練集特征矩陣為 X(包含了 x0)並且我們的訓練集結果為向量 y,則利用正規方程解出向量 \(\theta=(X^TX)^{-1}X^Ty\)
注意:\((X^TX)^{-1}\) 如果特征數量n較大,運算代價就很大,一般小於10000即可;只適用於線性模型;
二、正則化:
解決過擬合問題:
1.丟棄一些不能幫助我們正確預測的特征。可以是手工選擇保留哪些特征,或者使用一些模型選擇的算法來幫忙(例如PCA)
2.正則化。 保留所有的特征,但是減少參數的大小(magnitude)。
如果我們的模型是:\(h_\theta(x)=\theta_0x_0^0+\theta_1x_1^1+...+\theta_nx_n^n\)
正是這些高次項導致了過擬合的產生,所以去減小他們系數的大小就好了。修改代價函數,給他們的系數設置懲罰;
修改后的代價函數:\(J(\theta)=\frac{1}{2m}[\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^n\theta_j^2]\)
其中\(\lambda\)稱作正則化參數,需要對哪個參數懲罰,就把他們加進去,默認全加上。
因為如果我們令\(\lambda\)的值很大的話,為了使Cost Function 盡可能的小,\(\theta_j\)的值都會在一定程度上減小 。。。
(備注: \(\theta_0\)不參與其中的任何一個正則化 )
2.1正則線性回歸的代價函數為:
\(J(\theta)=\frac{1}{2m}\sum_{i=1}^m[((h_\theta(x^{(i)}-y^{(i)})^2+\lambda\sum_{j=1}^n\theta_j^2)]\)
求得更新式子為:\(\theta_j:=\theta_j(1-a\frac{\lambda}{m})-a\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\) 可以看出,正則化線性回歸的梯度下降算法的變化在於,每次都在原有算法更新規則的基礎上令 \(\theta\)值減少了一個額外的值。
若用正規方程求解:
2.2正則邏輯回歸的代價函數為:
\(J(\theta)=\frac{1}{m}\sum_{i=1}^m[-y^{(i)}log(h_\theta(x^{(i)}))-(1-y^{(i)})log(1-h_\theta(x^{(i)}))]+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2\)
梯度更新式子和正則線性的一樣的注:看上去同線性回歸一樣,但是知道 \(h_\theta(x)=g(\theta^TX)\) ,所以與線性回歸不同。