如何理解L1正则化(稀疏)和L2正则化(平滑)
上一篇文章說到使用高階多項式來擬合非線性的數(shù)據(jù)可能會帶來系數(shù)過大造成過擬合的問題,因此我們可以為損失函數(shù)增加復雜度的懲罰因子,其中 λ 越大,則懲罰力度越大:
λ∑j=1nθj2lambda sum_{j=1}^{n} theta_{j}^{2}
λj=1∑n?θj2?
我們稱之為正則項,即用參數(shù)的平方加和,這樣的形式也叫做 L2 正則( L2-norm )。 使用 L2 正則的損失函數(shù)為:
J(θ?)=12∑i=1m(hθ?(x(i))?y(i))2+λ∑j=1nθj2J(vec{theta})=frac{1}{2} sum_{i=1}^{m}left(h_{vec{theta}}left(x^{(i)}right)-y^{(i)}right)^{2}+lambda sum_{j=1}^{n} theta_{j}^{2}
J(θ)=21?i=1∑m?(hθ?(x(i))?y(i))2+λj=1∑n?θj2?
由于正則化項的存在,在優(yōu)化 J 的同時還得保證正則化項不至于太大,因此可以平緩曲線,達到降低過擬合的效果。
類似的,也有 L1 正則,表達式為:
J(θ?)=12∑i=1m(hθ~(x(i))?y(i))2+λ∑j=1n∣θj∣J(vec{theta})=frac{1}{2} sum_{i=1}^{m}left(h_{tilde{theta}}left(x^{(i)}right)-y^{(i)}right)^{2}+lambda sum_{j=1}^{n}left|theta_{j}right|
J(θ)=21?i=1∑m?(hθ~?(x(i))?y(i))2+λj=1∑n?∣θj?∣
二者有什么特點呢?L1 正則化具有特征選擇的功能;加入 L2 正則化后仍然是凸函數(shù)方便進行最優(yōu)值的求解;
如果把二者結合起來,就可以形成 “ Elastic Net ”,其中 p 指定了 L1, L2 正則化的權重:
J(θ?)=12∑i=1m(hθ?(x(i))?y(i))2+λ(ρ?∑j=1n∣θj∣+(1?ρ)?∑j=1nθj2)J(vec{theta})=frac{1}{2} sum_{i=1}^{m}left(h_{vec{theta}}left(x^{(i)}right)-y^{(i)}right)^{2}+lambdaleft(rho cdot sum_{j=1}^{n}left|theta_{j}right|+(1-rho) cdot sum_{j=1}^{n} theta_{j}^{2}right)
J(θ)=21?i=1∑m?(hθ?(x(i))?y(i))2+λ(ρ?j=1∑n?∣θj?∣+(1 大專欄 如何理解L1正則化(稀疏)和L2正則化(平滑)?ρ)?j=1∑n?θj2?)
加入不同的正則項后,最終得到的模型如下圖所示,確實起到了防止過擬合的作用:
為什么會有這樣的效果?
角度一:從梯度下降公式來看
上面提到了L1 正則化具有特征選擇的功能,是因為進行梯度下降的時候需要求導獲得梯度,假如需要學習的參數(shù)只有一個θ,那么更新參數(shù)的表達式為:
θ=θ?α??θJ(θ)theta=theta-alpha frac{partial}{partial theta} J(theta)
θ=θ?α?θ??J(θ)
假設求導后的系數(shù)為1,對 L1 和 L2 求導得到(其中sign( a ) 表示在 a<0, a=0, a>0 時分別取 -1, 0, 1):
dL1(θ)dθ=sign?(θ)frac{d L_{1}(θ)}{d θ}=operatorname{sign}(θ)
dθdL1?(θ)?=sign(θ)
dL2(θ)dθ=θfrac{d L_{2}(θ)}{d θ}=θ
dθdL2?(θ)?=θ
他們的圖像如下:
可以看到 L1 的倒數(shù)在0的附近梯度的絕對值是1,那么每次更新時,它都是穩(wěn)步向0前進,只要迭代次數(shù)足夠多,那么這個參數(shù) θ 就有可能變成 0。當然實際上模型的參數(shù)基本上不會只是一個θ而已,可能是 θ0, θ1, θ2 ... θn:
hθ(x)=∑i=0nθixih_{theta}(x)=sum_{i=0}^{n} theta_{i} x_{i}
hθ?(x)=i=0∑n?θi?xi?
在 L1 正則化的作用下,參數(shù) θi 就有可能變成 0 ,也就是能夠剔除特征 xi 在模型中的作用,達到了稀疏特征與特征選擇的作用。
而 L2 的話,就會發(fā)現(xiàn)它的梯度會越靠近 0,就變得越小,大部分特征對應的參數(shù)將是一個接近于 0 的數(shù),達到了平滑特征的作用。
角度二:從幾何空間來看
首先,我們把加入正則項的公式換一個角度來看,也就是帶約束條件的極值求解:
f=12∑i=1m(hθ?(x(i))?y(i))2min?J(θ?)?min?f?,s.t.?∑j=1n∣θj∣<C1f = frac{1}{2} sum_{i=1}^{m}left(h_{vec{theta}}left(x^{(i)}right)-y^{(i)}right)^{2}
min , J(vec{theta}) Leftrightarrow min , f , , quad
s.t. , sum_{j=1}^{n}left|theta_{j}right| < C_{1}
f=21?i=1∑m?(hθ?(x(i))?y(i))2minJ(θ)?minf,s.t.j=1∑n?∣θj?∣<C1?
帶 L1 正則項的公式如上,約束條件是要讓 θ 絕對值的和足夠小,邊界是 C1 。
為了更直觀的理解,假設每個樣本的參數(shù)只有兩個,θ1 和 θ2,那么約束邊界的圖像如下圖黃線部分所示,兩個坐標軸是參數(shù) θ 的兩個分量 θ1,θ2:
上圖中的大圈是所有 f 取值相同的點構成的等值線,中間的藍色點是 f 的最小值點,正則項與 f 的粉色交點除有三個向量:藍色的是 f 梯度下降的方向,粉色是掙脫約束邊界的方向,為了在約束條件下降低 f 的值,那么 f 只能沿著綠色的方向進行梯度下降,直到頂點(0, C1)處:
此時 f 已經在約束條件下到達最優(yōu)值點,并且發(fā)現(xiàn)此時分量 θ1 為0,意味著 θ1 對應的特征不起作用,達到了特征選擇的作用。
對于 L2 正則化而言,公式如下:
min?J(θ?)?min?f?,s.t.?∑j=1nθj2min , J(vec{theta}) Leftrightarrow min , f , , quad
s.t. , sum_{j=1}^{n} theta_{j}^{2}
minJ(θ)?minf,s.t.j=1∑n?θj2?
圖像如下:
當 f 在約束下到底紫色的點時,梯度下降的方向和掙脫約束的方向一致,達到了最優(yōu)值點:
此時兩個分量 θ1,θ2 的取值都比較小,避免了因為模型復雜導致的參數(shù)大小波動大的問題,起到了平滑的作用。
參考鏈接:
為什么L1稀疏,L2平滑?
l1 相比于 l2 為什么容易獲得稀疏解?
L1 正則與 L2 正則的特點是什么,各有什么優(yōu)勢
總結
以上是生活随笔為你收集整理的如何理解L1正则化(稀疏)和L2正则化(平滑)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去一趟泰国要花多少钱(去美国旅游大概多少
- 下一篇: 怀孕不想要怎么办(怀孕不到20天怎么打掉