損失函數公式推導以及L2正則化
假設預測函數為 \(h\),預測函數中出現的所有常量為 \(\Theta\)(常量可能不止一個,所以用大寫的來表示)
例如 \(h=ax+bx^2+c\),那么 \(\Theta=(a,b,c)\)
那么 \(h_{\Theta}\) 就表示再常量為 \(\Theta\) 的情況下的假設函數
假設函數就是預測函數,同樣代價函數和損失函數也是一個意思
假設損失函數為 \(J\) ,則
\[\begin{aligned} J(\Theta)&=\frac{1}{2m}\sum_{i=1}^m(h_{\Theta}(x_i)-y_i)^2\\ \frac{\part J}{\part \theta_k}&=\frac{1}{m}\sum_{i=1}^m(h_{\Theta}(x_i)-y_i)\frac{\part h_{\Theta}(x_i)}{\part \theta_k} \end{aligned} \]
其中 \(m\) 表示樣本數、\(x_i\) 表示第 \(i\) 個樣本、\(y_j\) 表示第 \(i\) 個樣本的標簽、\(\theta_k\) 表示第 \(k\) 個常量
\(x_i\) 表示的是一個完整的樣本,不一定是一個數,也有可能是一個矩陣,\(y_i\) 同理
那么 \(\frac{\part J}{\part \theta_k}\) 就表示代價函數 \(J\) 的對其第 \(k\) 個參數的偏導數
得到了偏導數,我們就可以根據梯度下降的公式來更新參數,即
\[\begin{aligned} \theta_k\rightarrow\theta_k-lr\frac{\part J}{\part \theta_k} \end{aligned} \]
其中 \(lr\) 表示學習率
L2正則化(權重衰減)
L2正則化可以減少過擬合,因為它可以使權重衰減。過擬合的原因一般是因為假設函數顧及到了樣本中的每一個點,最終形成的函數波動很大,自變量稍微變化就會導致函數值劇烈變化,結果一般顯現為在訓練集上的准確率很高,而在測試集上的准確率很低。從函數的結構上來看,波動很大的原因就是因為函數中的權重(常量)太大了,如果能將權重減小,就能減小波動,就能在一定程度上減小過擬合的情況。
\[\begin{aligned} J_{L2}(\Theta) &=\frac{1}{2m}\left(\sum_{i=1}^m(h_{\Theta}(x_i)-y_i)^2+\lambda\sum_{j=1}^n\theta_j^2\right) \\ &=J(\Theta)+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2\\ \frac{\part J_{L2}}{\part\theta_k} &=\frac{1}{m}\left(\sum_{i=1}^m(h_{\Theta}(x_i)-y_i))\frac{\part h_{\Theta}(x_i)}{\part\theta_k}+\lambda\theta_k\right)\\ &=\frac{\part J}{\part\theta_k}+\frac{\lambda}{m}\theta_k\\ \end{aligned} \]
其中 \(\lambda\) 表示正則化系數,\(n\) 表示權重的個數,\(\theta_j\) 就表示第 \(j\) 個權重
重新推導權重更新方程
\[\begin{aligned} \theta_k &\rightarrow\theta_k-\frac{\part J_{L2}}{\part\theta_k}\\ &\rightarrow\theta_k-\left(\frac{\part J}{\part\theta_k}+\frac{\lambda}{m}\theta_k\right)\\ &\rightarrow\theta_k-\frac{\part J}{\part\theta_k}-\frac{\lambda}{m}\theta_k\\ &\rightarrow\theta_k(1-\frac{\lambda}{m})-\frac{\part J}{\part\theta_k} \end{aligned} \]
與原來的推導方程相比僅僅是 \(\theta_k\) 被放大了 \(1-\frac{\lambda}{m}\) 倍
所以 \(\lambda\) 越大,權重衰減的越厲害