常用損失函數(shù)

前言

在聊損失函數(shù)之前,我們先來主觀的想一下,一個模型及其參數(shù)的好壞與哪些因素有關。
首先可以確定的是,參數(shù)的確定是通過外部的輸入不斷迭代生成的,即這是一個優(yōu)化問題。優(yōu)化問題的關鍵是如何選定一個恰到好處的目標函數(shù),使得當目標函數(shù)取得最值的時候,模型剛剛好也是最佳的。
還有一個就是與VC維有關。舉個例子,把VC維具象為決策的中間節(jié)點數(shù)目有關系,中間節(jié)點數(shù)目越多,理論上對本組訓練集而言得到的結果越精準。


隱藏層

但是隱藏層的數(shù)目也不是越多越好,隱藏層節(jié)點數(shù)目越多很有可能導致過擬合,在訓練集上表現(xiàn)不錯,在測試集上表現(xiàn)不佳。
這兩個問題如何解決呢。
第一個問題的關鍵在于如何選擇目標函數(shù)(損失函數(shù));
第二個問題的關[圖片上傳失敗...(image-939fe8-1549807116525)]
鍵在于如何選取適當?shù)木S度(懲罰項/正則化項);


最終的表達式

arg是滿足條件的自變量的值;
w是模型中各節(jié)點的參數(shù);
L為損失函數(shù);
yi為真實值;
f(xi;w)是在取w的情況下,給模型f輸入參數(shù)xi得到的值;
lambda 是規(guī)則化參數(shù),需要自行確定;
omiga 是懲罰項。

常用損失函數(shù)

  • 0-1 損失函數(shù)
  • log損失函數(shù)
  • 均方損失和函數(shù)
  • 自定義損失函數(shù)
    舉個例子:


    自定義損失函數(shù)

正則項/懲罰項

如上文所說,正則項的存在是為了避免VC維度過高產生過擬合,所以一般而言正則項是參數(shù)向量w范數(shù)的函數(shù)。

  • L0范數(shù)
    向量中非零元素個數(shù)。
  • L1范數(shù) tf.contrib.layers.l1_regularizer()
    向量中各個元素的絕對值之和。
  • L2范數(shù) tf.contrib.layers.l2_regularizer()
    向量中各元素的平方然后求平方根。0.1的平方是0.01,10的平方是100,使小權重趨于0。

規(guī)則化參數(shù)

上文提到的lambda就是規(guī)則化參數(shù)。需要自行設定,一般看看損失函數(shù)和正則項的相對大小決定lambda取值。
典型值為0.01。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容