什么是泛化能力?什么是過擬合?和正則化又有什么樣的關系?Follow me


  我開始寫這篇博客其實是深受實驗室師兄的影響,他在找工作中,在一面、二面的過程中被問到了很多NLP的基礎知識,平時對於這些知識我也是雲里霧里,搞不太清楚。今天就先針對這個知識點查了很多資料,以及讀了很多知乎上、CSDN博客上一些分享,我在此結合起來,更加細致的說一下自己的理解。希望大家都能了解一些,現在就拓展知識面,准備起來吧!!!希望在自己在面試之前,能夠踏實一些...

 

什么是泛化能力?

  通俗的說就是一個機器算法對於新的樣本(即沒有見過的樣本)的舉一反三的能力,也可以稱為學以致用的能力。能通過具有統一規律的訓練樣本來學習數據背后一些規律,經過訓練的網絡也能對訓練數據以外的數據給出合適的輸出。即通過學習----->預測新數據的輸出。

 

那跟過擬合什么聯系呢?Follow me

  假設,給兩個數,讓機器來計算兩個數的加法,它學會了1+1=2,但是當給出15+7,它卻不會計算了,這就是泛化能力很差的表現,只會學習給定的東西,換兩個數還是不會計算,這也是不具備舉一反三、學以致用的能力----->沒錯,這就是過擬合。(聯系上了吧)

同時就能根據自己的理解總結出來過擬合的特點:模型在訓練時效果很好(死記硬背),但是在測試時效果很差(不會舉一反三)。引用別人說的一句話,模型對數據學習過度,把局部特征、噪音當成一個很明顯的特征並賦予一個較大的權重。

 

正則化怎么引進的呢?為什么使用?Follow me

 

  前邊說到的之所以會過擬合,就是因為機器把局部特征或者噪音當做很明顯的特征賦予了一個較大的權重,so,如何避免過擬合就可以順着往下推了,就是要丟棄掉一部分無關緊要的噪音或者要利用好所有的輸入的特征而不是局部特征。看的很多文章介紹,又是0范數之類的,我覺得那樣理解起來真的很難,我們可以換一種思維。過擬合,就是因為要把所有的特征都學來,不允許一點誤差,當然正常的,預測值是允許有誤差的,但同時要保證誤差很小,所以只需要把注意力轉移到如何使誤差函數的值最小了。引用----------->我們通過一個例子形象理解一下L2正則化的作用,考慮一個只有兩個參數W1和W2,其損失函數曲面如下圖所示。從a可以看出,最小值所在是一條線,這條線就會對應無數個參數組合,單純使用梯度下降法難以得到確定解。但是這樣的目標函數若加上一項0.1*(W12+W22則曲面就會變成b圖的曲面,最小值所在的位置就會從一條山嶺變成一個山谷了,此時我們搜索該目標函數的最小值就比先前容易了.

很明顯圖b最小值要比圖a好找。

后期會補充的衡多的理論知識...................

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM