在VC理論中, 僅僅考慮了Eout < Ein + \delta, 其中\delta 與growth function, N相關, 但是卻沒考慮到target function的影響, noise的影響, 現在我們要來補全它。
-
下面從一個簡單的例子開始。還記得我們之前的, 給定兩個點, 用一根線擬合sin的例子吧, y = ax + b表現的并不那么好, 可以看出來它的variance非常大, 雖然bias小(y=b這個簡單的假設反而variance沒那么大)。 而當我們加了regularization的時候, things become better。 Regularization減小variance的代價是稍微增大了bias, 而顯然這是可以接受了。 Regularization在這里的一種理解是假如我們有0,1,2,3階模型, regularization不選擇到具體的模型, 而是處于a gap between them。
example
winner -
多項式模型。更一般化的, 我們將線性回歸表達成矩陣/向量的形式,看成是變換到Z空間,再做回歸, 每個Z空間對應一個勒讓德多項式。采用勒讓德多項式的好處是它們之間兩兩正交, 代表著假設空間是不會重復的。 然后就是跟之前一樣的求解步驟了。
polynomial
sol -
事實上, 我們可以加constrain, hard的形式是直接把某些項置零, 這樣子有些粗暴, soft的形式是讓w≤C, 加了soft constrain, VC維度更小(對不加constrain而言), better generalization。
constrain -
那么如何求解constrain形式的規劃問題呢。 問題的解空間是一個橢圓(藍色), 而約束是一個圓(紅色), 最優解存在與兩者的梯度反向平行的位置上, 即夾角越大越好。 轉成第二個表達式, 我們可以將問題重新轉化, 可以看到C越大的話, \lambda就越小。
constrain sol -
代入, 求解。 求解結果有點是矩陣加了擾動的意思???
problem
solution -
從結果我們看到, 需要選擇一個比較好的lambda, 結果才能更好。
Result -
上面提到的技術其實是稱之為weight decay。 我們可以看到, 它就是在梯度更新的時候, 不選擇原來的w(t), 而是讓w(t)更小一些(1-xx), 這樣可以防止w一直上漲的太厲害, 起到一種shrinkage的效果。另外, 我們也可以規定不同的w賦予不同的regularization, 起到importance emphasis的作用。
weight decay
weight decay2 -
如果使用weight growth呢, 效果顯然是不好的, Eout直線上升。 前面我們提到的隨機noise是高頻的, 而確定性noise也是非平滑的, 其實價格regularization就是讓最終選擇到的hypothesis更加平滑! 這樣可以消除這兩種noise的影響。
weight growth -
更一般形式的表達。 相比于Ein, Eaug是Eout更好的表達。
general -
如何選擇regularizer呢, 指導思想是要往target function的方向去, 這個方向是一個更加平滑或者說讓模型更加簡單的方向。在神經網絡中, 觀察tanh函數, 如果w比較小, 那么激活之后就是在線性區域, 而如果w比較大, 激活之后就是1, -1 這樣的布爾值了。 或者說, 我們可以刪除權重, 這將使得VC維更小, better generation。 如圖中的公式, 若w比較小, beta dominant, 若w比較大, 值接近雨1, beta diminish, 這樣就起到了刪除權重的作用了。
choice
NN -
更一般的, 用early stopping, validation來防止過擬合。對隨機噪聲來說, 如果它不存在, 我們就不用regularization了, 噪聲越多, 需要的regularization也就越多了; 確定性噪聲同理。
regularizer
lambda