1. 程式人生 > >細品 - 過擬合與模型選擇*

細品 - 過擬合與模型選擇*

最優 優化 並且 情況下 最小化 wid 正方 tro 預測

欠擬合和過擬合

  欠擬合是指模型不能很好的捕獲到數據特征,不能很好的擬合數據,學習能力底下。解決方法:增加模型的復雜度

    技術分享

  過擬合是指模型不僅僅學習了數據集中的有效信息,也學習到了其中的噪音數據,使得模型在訓練集上的表現非常好,但是對於測試集的預測效果很差。解決方案:

  (1) 導致過擬合的一個原因可能是由於數據不純、包含大量的噪聲數據,這時候我們需要重新清洗數據

  (2) 增加訓練數據的樣本量

  (3) 采用正則化方法,降低模型參數復雜度(參數大小和參數量),從而降低模型復雜度

  (4) 神經網絡中常采用dropout方法:在訓練的時候讓神經元以一定的概率不工作。

    技術分享

  如何判斷你的模型是欠擬合還是過擬合?通常的做法就是將你的訓練數據集拆分成訓練集和驗證集,通過觀察訓練誤差和驗證誤差的情況來判斷模型對訓練數據的擬合情況。

正則化

  監督學習問題無非就是在規則化參數的同時最小化誤差。最小化誤差是為了讓我們模型更好的擬合數據,而規則化參數是為了防止模型對數據的過分擬合。前面我們也提到,當我們的模型處於過擬合時,我們可以通過在模型損失函數上添加正則化項,用於控制模型參數的復雜度,從而得到更為簡單的參數,獲得更為理想的模型。可見,正則化的一個根本目的就是使我們可以選擇出那種既能夠很好的擬合數據,相對來說又最簡單的模型。

  線性回歸正則化後的表達式為:

    技術分享

這裏的技術分享代表正則化系數,技術分享是我們常說的正則化項,正則化項常用的形式有哪些呢?

技術分享

  該範數表示的是參數向量中非0元素的個數。這時候我們可以試想我們用技術分享範數正則化一個參數矩陣技術分享的話,就相當於讓技術分享中值為0元素非常多,也就是讓參數矩陣技術分享稀疏。

      技術分享

技術分享

該範數表示的是參數向量中各元素絕對值之和技術分享範數也稱為稀疏規則算子。我們試想用技術分享範數正則化一個參數向量技術分享的話,就相當於讓技術分享中每一個元素都很小甚至是等於0。

      技術分享

那問題來了Question1:技術分享範數為什麽可以實現稀疏

  加入技術分享範數後的代價函數可以表示為無約束形式

      技術分享

  最小化技術分享又等價於約束問題技術分享下最小化技術分享

      技術分享

  這裏我們假設參數向量技術分享只有兩個元素,我們可以在一個平面上畫出技術分享

的等高線圖以及約束條件的表示,如圖

      技術分享

  我們知道等高線越向外損失越大(凸函數),技術分享約束在圖上可以表示為如圖的正方形,兩圖形的第一個交點就是代價函數取最小時的情形。兩圖形第一個交點相交於正方形頂角上的概率遠遠大於相交於其他位置的概率(很明顯)。頂點坐標只有一個參數不為0,另一個參數為0,也就是更加容易產生稀疏。在更高維的情況下也是如此,因此技術分享會使得參數更多的為0,只是又較少的一部分不為0。技術分享的這種特性使它可以應用於特征選擇。

  前面我們也提了技術分享範數也可以實現稀疏,那問題又來了Question2:為什麽實現稀疏上基本上是使用技術分享範數而很少使用技術分享範數呢?這主要有兩個原因:

  (1) 技術分享範數很難優化求解

  (2) 技術分享範數是技術分享範數的最優凸近似,並且技術分享範數更容易優化求解

技術分享

  技術分享範數是參數向量中各元素的平方和再開平方。在防止過擬合問題上技術分享範數被廣泛的應用。

    技術分享

  那麽問題來了Question1:是什麽使得它可以非常好的解決過擬合問題呢?我們再來試想:若我們最小化技術分享正則項,會使得參數向量發生什麽樣的變化? 會使得參數向量的每一個元素都很小,都接近於0,而非等於0(與技術分享最大的不同),這樣就成功的降低了模型參數復雜度,從而避免了過擬合現象的出現。那麽問題又來了Question2:為什麽技術分享會使得參數元素都趨向於0,而非等於0呢?我們像技術分享那樣給出代價函數的約束等價問題:

      技術分享

該約束問題在圖形上的表示,如下:

    技術分享

技術分享不同,技術分享的約束條件表示為一個圓形,兩個圖形的第一個交點大多不會出現在非坐標軸上,因為要想交於坐標軸那麽技術分享的圓心也必須在坐標軸上,這種情況是很少發生的,故技術分享不會擁有技術分享的那種使得參數大部分都是0的特性。而最小化技術分享正則就會使得參數元素都很小,也就是都趨於0。

總結:技術分享會趨向於產生少量的特征,而其他特征的參數(權值)都為0,可以用來做特征選擇; 而技術分享會選擇更多的特征,這些特征的參數都趨於0,廣泛應用與過擬合問題。

補充:其實技術分享除了有防止過擬合的特性,它還可以使得梯度下降的求解過程變得穩定而迅速,這又是如何實現的呢

我們前面給出了加入正則項技術分享技術分享後的線性回歸代價函數的表示形式:

    技術分享

    技術分享

我們對其求導後得到了梯度下降的權值更新公式:

    技術分享

這時我們發現技術分享中的技術分享是第j個參數的符號,是個定值; 而技術分享中的技術分享是變得。故,技術分享正則化後的參數更新速度會隨著參數的更新而變動,參數大更新快,參數小更新慢,所以它會進一步優化梯度下降的求解。

細品 - 過擬合與模型選擇*