我的人工智慧之旅——正則化
無論線性迴歸,還是邏輯迴歸,都需要對假設函式進行設定。而假設函式的設定,將影響到預測結果的準確性。因此,如何判斷假設函式是否合適,以及如何修改假設函式將變得十分重要。本文,我們將記錄假設函式的正則化。在記錄的過程當中,將涉及以下概念。
(1)過度擬合,overfitting
(2)欠擬合,underfitting
(3)正則化,regularization
(4)懲罰項(或正則化項),penalize item
以下為正文。
擬合曲線
假設函式,為N元M次方程式(,)。不同的方程式,代表不同的圖形。
例如,
,為直線;
,為拋物線;
,為曲線;
線上性迴歸中,正是通過設定的方程式(假設函式),畫出特定形狀的曲線,將盡量多的樣本點串聯起來。而邏輯迴歸,則是使用設定的方程式(假設函式),儘量分隔不同樣本。但不論串聯還是分隔,我們將畫出的曲線,稱為擬合曲線。
我們仍以房價預估為例,來看一下線性迴歸中的擬合曲線。
從左至右,圖(1)(2)(3)(4)中,藍色的點為樣本集合。橫座標為面積,縱座標為價格。
分別選取三個的方程式作為假設函式,通過引數推算,可以獲得三條不同的曲線。
其中圖(4)中的曲線,完美的連線所有樣本點。
但經驗告訴我們,
(a)在同一地段,面積越大,房價通常越高。
(b)在同一地段,面積越大,單價越低,價格不會呈現以固定比例增長。
因此,圖(4)(2)對應的假設函式不合常理。
當有新樣本(綠色)加入時,更能進一步證實我們的推測。
相對而言,圖(3)中的假設函式較為適中。
我們將圖(4)中,對前期樣本完美擬合,但對後期樣本存在較大偏差的情況,稱為過度擬合。
對於圖(2)中,無論前期樣本,還是後期樣本,偏差都較大的情況,稱為欠擬合。
當然,邏輯迴歸中也會存在同樣的問題,如圖。
通過簡單的示例,我們可以瞭解到,設定合適假設函式的重要性。那麼如何設定假設函式呢?
正則化
對比上節例子中的三個假設函式,我們會發現,變數的階數越高,曲線越扭曲。換一個角度,若將高階變數看做一個新變數,也可以理解為,變數越多,曲線越扭曲。那麼,如何降低高階變數對結論的影響呢?最簡單的方式,就是移除高階變數,或多餘變數。但移除過於簡單粗暴,因為變數數量或者高階變數的減少,將會或多或少的影響結論的準確度。另一方面,移除哪個變數也是一個讓人糾結的問題。因此,我們引入正則化(regularization)的概念
正則化的核心思想是,通過在代價函式中新增懲罰項(penalize item,或正則化項),降低某一變數對預估結論的影響。
正則化後的代價函式如下
(1)線性迴歸代價函式
(2)邏輯迴歸代價函式
其中為A中的元素,為正則化引數,
而即為懲罰項。
懲罰項的加入,可以防止假設函式的過度擬合問題。
有利也有弊。加入懲罰項,需要初始化正則引數。如果過大,將是的。對於線性迴歸而言,其假設函式的對應圖形將變成一條平行於X軸的直線。對於房價預估問題,這樣的假設函式肯定欠擬合。同樣,對於其他迴歸問題,也並非是最好的預估模型。所以,的取值對於正則化是十分重要的。
線性迴歸的正則化
線上性迴歸章節中,我們提到過,使用梯度下降和正規方程的兩種方式來推算。加入正則引數後,原有方法仍然有效。
梯度下降演算法
對於梯度下降演算法而言,由於
那麼,
與不加正則化項的相比,只是在前多了一個引數項。
通常來說,該引數項是一個趨近於1的值,例如0.99。原因在於,作為樣本數量的m通常都是非常巨大,學習率又非常小(學習率太大將影響收斂)。從效果上來看,在正則化後,梯度下降演算法變得更加精細了。
正規方程式演算法
正規方程的核心思路是,通過使計算出。
那麼,加入正則項後,須使得
那麼,
邏輯迴歸的正則化