1. 程式人生 > >ML入門(持續更新)

ML入門(持續更新)

評估方法:交叉驗證法

交叉驗證用於評估模型的預測效能,尤其是訓練好的模型在新資料上的表現

劃分資料集

  • 訓練集用於訓練模型引數
  • 驗證集用於“訓練”模型的超引數
  • 測試集用於估計模型對樣本的泛化誤差

作用

  • 可以在一定程度上減小過擬合。
  • 可以從有限的資料中獲取儘可能多的有效資訊。

方法

  • 留出法
  • k折交叉驗證法
  • Bootstrapping自助取樣法

正則化

作用:

  • 保證模型儘可能的簡單,避免過擬合
    引數值大小和模型複雜度是成正比的。引數過多會導致模型複雜度上升,越複雜的模型,越是會嘗試對所有的樣本進行擬合,甚至包括一些異常樣本點。
  • 約束模型特性,加入一些先驗知識,例如稀疏、低秩​等。

L0範數

L0是指向量中非0的元素的個數。

如果我們用L0範數來規則化一個引數矩陣W的話,就是希望W的大部分元素都是0。即讓引數W是稀疏的。稀疏的好處:

  • 簡化模型,避免過擬合;
  • 引數變少可以提高可解釋性

但是,L0範數的最優化問題是一個NP hard問題,理論證明,L1範數是L0範數的最優凸近似,因此通常使用L1範數來代替。

L1範數

L1範數是指向量中各個元素絕對值之和。

L1正則化之所以可以防止過擬合,是因為它能產生等於0的權值,即產生稀疏的效果。引數值大小和模型複雜度是成正比的。因此複雜的模型,其L1範數就大,最終導致損失函式就大,說明這個模型就不夠好。

L2範數

L2範數即歐式距離。

L2正則化之所以可以防止過擬合,是因為它是讓各個引數接近於0。越小的引數說明模型越簡單,越簡單的模型越不容易產生過擬合現象。

L1稀疏、L2平滑

  • 假定 w i > 0

    w_i>0 ,L1的權值每次更新都固定減少一個特定的值,那麼經過若干次迭代之後,權值就有可能減少到0。 w i = w i η w_i=w_i-\eta 。( w i < 0 0 w_i<0時則是增加到0 )。

  • L2的權值更新公式為 w i = w i η w i wi= wi- η * w_i ,假設 η = 0.5 \eta=0.5 ,也就是說權值每次都等於上一次的1/2,那麼,雖然權值不斷變小,但是因為每次都等於上一次的一半,所以很快會收斂到較小的值但不為0。

因此

  • L1能產生等於0的權值,即產生稀疏的效果
  • L2能迅速得到比較小的權值,但是難以收斂到0,即產生平滑的效果 。