哎,刚刚submit上paper比较心虚啊,无心学习,还是好好码码文字吧。
subgradient中文名叫次梯度,和梯度一样,完全可以多放梯度使用,至于为什么叫子梯度,是因为有一些凸函数是不可导的,没法用梯度,所以subgradient就在这里使用了。注意到,子梯度也是求解凸函数的,只是凸函数不是处处可导。
f:X→R 是一个凸函数, X∈Rn 是一个凸集。
若是f在 x′ 处 ∇f(x′) 可导,考虑一阶泰勒展开式:
1. t=1 选择有限的正的迭代步长 {αt}∞t=1
2.计算一个次梯度 g∈∂f(xt)
3.更新 xt+1=xt−αtgt
4.若是算法没有收敛,则 t=t+1 返回第二步继续计算
1.简单通用性:就是说第二步中, ∂f(xt) 任何一个次梯度都是可以的.
2.收敛性:只要选择的步长合适,总会收敛的
3.收敛慢:需要大量的迭代才能收敛
4.非单调收敛: −gt 不需要是下降方向,在这种情况下,不能使用线性搜索选择合适的 αt
5.没有很好的停止准则
不妨设 ftbest=min{f(x1),..,f(xt)} 是t次迭代中的最优结果
1.步长和不可消时(Non-summable diminishing step size):
limt→∞αt=0 并且 ∑∞t=1αt==∞
这种情况能够收敛到最优解: limt→∞ftbest−f(x∗)=0
2.Constant step size:
αt=γ,where γ>0
收敛到次优解: limt→∞ftbest−f(x∗)≤αG2/2
3.Constant step length:
αt=γ||gt|| (i.e. ||xt+1−xt||=γ ), ||g||≤G,∀g∈∂f
能够收敛到次优解 limt→∞ftbest−f(x∗)≤γG/2
4.Polyak’s rule: αt=f(xt)−f(x∗)||gt||2
若是最优值 f(x∗) 可知则可以用这种方法。
一个不等式约束的凸二次优化问题可以表示为:
注意到 ξi≥max(0,1−yi(wTxi+b)) ,而且当目标函数取得最优的时候,这里的等号是成立的,所以可以进行代替:
ξi=max(0,1−yi(wTxi+b))
所以就可以将这个二次悠哈问题改写成一个非约束凸优化问题
因为
i -th function | ∂wfi(w,b) | ∂bfi(w,b) |
---|---|---|
I+={i|yi(wTxi+b)>1} | 0 | 0 |
I0={i|yi(wTxi+b)=1} | Co{0,−yixi} | Co{0,−yi} |
I−={i|yi(wTxi+b)<1} | −yixi | −yi |
所以次微分可以写作 ∂f(w,b)=∂f0(w,b)+C∑mi=1∂fi(w,b) 可以使用参数话的表示方法,设 0≤βi≤1,i∈I0 ,所以就有 g=[w′b′]∈∂f(x)