在實現機器學習演算法時,最常用的是l2正則化,因為l2正則化有連續可微的性質,易求導。但l1能產生稀疏解,而且稀疏解的泛化能力會比較好,不過由於l1正則化並不是處處連續的,所以優化的時候會有一定難度。
對於目標函式不是連續可微的情況,可以用次梯度來進行優化,但次梯度存在兩個問題:
次梯度定義:次梯度,次導數
此時可以用proximal algorithm對l1進行求解。
定義如下: 設 f
:rn→
r∪f :r
n→r∪
為凸函式,那麼凸函式的上鏡圖(epigraph)定義為: ep
if= epi
f=是非空的閉凸集,其effective domain: do
mf= dom
f=即,f f
的取值範圍為有限個的一組點。
上鏡圖(epigraph)意為在函式影象之上。乙個用途是用來聯絡凸集合凸函式的。即,乙個函式為凸函式,當且僅當其上鏡圖是凸集。proximal operatorproxf:
rn→r
n' role="presentation">f:
rn→r
nf:r
n→rn
的定義: pr
oxf(
v)=arg
minx(f
(x)+
12‖x
−v‖2
2)p ro
xf(v
)=arg
minx(f
(x)+
12‖x
−v‖2
2)或者 或
者pro
xλf(
v)=arg
minx(f
(x)+
12λ‖
x−v‖
22) pro
xλf(
v)=arg
minx(
f(x)
+12λ
‖x−v
‖22)
其中‖⋅
‖2‖ ⋅‖
2為歐幾里得範數,λ λ
視為引數即可(scaled function)。
由此可知,
proximal operator 公式是在尋找乙個距離點 v v
附近的點
x' role="presentation">x
x,使得 f(
x)f (x
)盡可能小,並且 f(
x)<=f(
v)f (x
)<=f(
v),如圖:
來自proximal algorithms by n. parikh and s. boyd其中粗的黑線表示為作用域,細黑線表示函式f的等高線,藍色的點是
v v
,紅點是
x' role="presentation">x
x。函式域中的三點停留在域內,向函式的最小值移動,另外兩點移動到域的邊界,並朝函式的最小值移動。 引數
λ λ
控制 proximal operator 對映指向
f f
的最小值的程度,其中
λ' role="presentation">λ
λ的較大值與最小值附近的對映點相關聯,較小的值給出向最小值的較小移動。
假設目標函式為 y=
f(x)
+ϕ(x
) y=f
(x)+
ϕ(x)
其中 f(
x)f (x
)連續可微,ϕ(
x)ϕ (x
)不連續(比如l1正則化),這類目標函式在機器學習演算法中很常見。迭代優化步驟如下:
proximal 演算法中要求 ▽f
(x) ▽f(
x)滿足 lipschitz 條件其係數為
l l
,所以引數
λ' role="presentation">λ
λ的取值範圍為 λ∈
(0,1
l)λ ∈(
0,1l
),若
l l
未知,可以使用line search:
L1正則化與稀疏性 L1正則化不可導問題
l1正則化與稀疏性 座標軸下降法 解決l1正則化不可導的問題 lasso回歸演算法 座標軸下降法與最小角回歸法小結 l1正則化使得模型引數具有稀疏性的原理是什麼?機器學習經典之作 pattern recognition and machine learning 中的第三章作出的乙個解釋無疑是權威且直...
L1正則化和L2正則化
為了降低過擬合風險,需要控制模型複雜度,自然想到減少引數個數,但是這個問題不易直接解決,可以通過放寬條件控制。新增優化條件 這會使引數條件空間有明顯的凸角,這些突出點顯然會成為聯合優化時的最優解,但同時這些這些凸點中又會有較多的0值 由其限制條件可見,凸點都在座標軸上 因此l1範數會更易得到稀疏解,...
L1正則化和L2正則化
l1標準化與l2標準化 參考 l1 l2標準化及其python 實現 我們知道,正則化的目的是限制引數過多或者過大,避免模型更加複雜。l1 與 l2 解的稀疏性 以二維情況討論,上圖左邊是 l2 正則化,右邊是 l1 正則化。從另乙個方面來看,滿足正則化條件,實際上是求解藍色區域與黃色區域的交點,即...