L1正则化求导问题
在实现机器学习算法时,最常用的是L2正则化,因为L2正则化有连续可微的性质,易求导。但L1能产生稀疏解,而且稀疏解的泛化能力会比较好,不过由于L1正则化并不是处处连续的,所以优化的时候会有一定难度。
对于目标函数不是连续可微的情况,可以用次梯度来进行优化,但次梯度存在两个问题:
- 求解慢
- 通常不会产生稀疏解
此时可以用 Proximal Algorithm 对L1进行求解。
Proximal Algorithm
定义如下:
设 f:Rn→R∪{
+∞} f : R n → R ∪ { + ∞ } 为凸函数,那么凸函数的 上镜图(epigraph) 定义为:
epi f={
(x,t)∈Rn×R|f(x)<+∞} e p i f = { ( x , t ) ∈ R n × R | f ( x ) < + ∞ }
是非空的闭凸集,其 effective domain :
dom f={
x∈Rn|f(x)<+∞} d o m f = { x ∈ R n | f ( x ) < + ∞ }
即, f f 的取值范围为有限个的一组点。
上镜图(epigraph)意为在函数图像之上。一个用途是用来联系凸集合凸函数的。即,一个函数为凸函数,当且仅当其上镜图是凸集。
proximal operator Prox
的定义:
proxf(v)=argminx(f(x)+12‖x−v‖22) p r o x f ( v ) = arg min x ( f ( x ) + 1 2 ‖ x − v ‖ 2 2 )
或者 或 者
proxλf(v)=argminx