凸优化学习-(二十三)算法基础知识

凸优化学习

所有的算法实质上都是在解KKT条件,这部分内容是学习算法之前需要掌握的一些东西。

学习笔记

一、引

所有的算法都是迭代算法,形如:
x k + 1 = x k + α k d k α k = arg ⁡ min ⁡ α ≥ 0 f 0 ( x k + α d k ) \begin{aligned} x^{k+1}&=x^k+\alpha^kd^k\\ \alpha^k&=\arg\min_{\alpha\ge0}f_0(x^k+\alpha d^k) \end{aligned} xk+1αk=xk+αkdk=argα0minf0(xk+αdk)
其中, x k x^k xk为我们当前得到的可行解, α k \alpha^k αk为我们为了得到下一步可行解所需要的步长(deep learning里面的learning rate), d k d^k dk为方向。
方向的求解之后会有许多方法来讨论,我们先看一下步长的求解,之后所有方法中步长的求解都是依据于此的。

二、解步长的方法

1.黄金分割法(优选法)(精确步长)

在这里插入图片描述
做法是,在选定 α m a x \alpha_{max} αmax的情况下,比较 0.382 α m a x 0.382\alpha_{max} 0.382αmax 0.618 α m a x 0.618\alpha_{max} 0.618αmax对应的 f 0 ( x k ) f_0(x^k) f0(xk)的值的大小,如果前者大,就丢掉左边一块在右边迭代寻找;反之亦然,直到寻找到下降最快的(最小的) f 0 ( x k ) f_0(x^k) f0(xk)

2.Amijo Rule(不精确步长)

找一个较小的步长,使得函数值有所下降就可以了。
过程:

若 f 0 ( x k + α d k ) > f 0 ( x k ) + γ α ∇ f 0 T ( x k ) d k 若f_0(x^k+\alpha d^k)>f_0(x^k)+\gamma\alpha\nabla f_0^T(x^k)d^k f0(xk+αdk)>f0(xk)+γαf0T(xk)dk
则 α ← α β 则\alpha \leftarrow\alpha\beta ααβ
否 则 停 止 否则停止
其中 β ∈ ( 0 , 1 ) , γ ∈ ( 0 , 0.5 ) , γ \beta\in(0,1),\gamma\in(0,0.5),\gamma β(0,1),γ(0,0.5)γ用于刻画下降显著程度(一般取0.5)。
意思是若满足这个不等式,则以 β \beta β的速率下降 α \alpha α
在这里插入图片描述
大体意思是在 f 0 ( x k ) f_0(x^k) f0(xk)这一点做直线 f 0 ( x k ) + α ∇ f 0 ( x k ) d k f_0(x^k)+\alpha\nabla f_0(x^k)d^k f0(xk)+αf0(xk)dk,使用 γ \gamma γ调整斜率。然后从 α m a x \alpha_{max} αmax开始下降,下降到符合条件的区域就停止,所得 α \alpha α即为步长。
可以看到,这个步长并不是精确的使函数在当前方向下降最多的步长,而仅仅是使其能够下降。

三、最优性条件分析

1、刻画函数凸性的两个矩阵

在凸函数的二阶条件中:
∇ 2 f ( x ) ≥ 0 \nabla^2 f(x)\ge0 2f(x)0
为了刻画它的凸性,我们称具有强凸性的凸函数有如下:
∃ m ∇ 2 f ( x ) ≥ mI \exist\textbf m\qquad\nabla^2f(x)\ge \textbf {mI} m2f(x)mI
就是避免出现一些虽然是凸函数,但是最优值非唯一且连续的函数(平底锅)。
相应的,也有:
∃ m , ∃ M MI ≥ ∇ 2 f ( x ) ≥ mI \exist\textbf m,\exist\textbf M\qquad\textbf {MI}\ge\nabla^2f(x)\ge \textbf {mI} m,MMI2f(x)mI
让它不那么凸。
在一阶条件下,强凸性可以表现为:
f ( y ) ≥ f ( x ) + ∇ f T ( x ) ( y − x ) + 1 2 m ∥ y − x ∥ 2 2 ① f(y)\ge f(x)+\nabla f^T(x)(y-x)+\frac 1 2 \textbf m\|y-x\|_2^2\qquad ① f(y)f(x)+fT(x)(yx)+21myx22

2、探究当 ∇ f ( x ) → 0 \nabla f(x)\rightarrow 0 f(x)0时, f ( x ) f(x) f(x) f ( x ∗ ) f(x^*) f(x)还有多远

x x x给定,有:
f ( x ) + ∇ f T ( x ) ( y − x ) + 1 2 m ∥ y − x ∥ 2 2 ② f(x)+\nabla f^T(x)(y-x)+\frac 1 2 \textbf m\|y-x\|_2^2\qquad ② f(x)+fT(x)(yx)+21myx22

这是一个关于 y y y的凸函数,我们可以通过求一阶偏导的方式求出它的最小值,求出之后,有:
f ( x ) + ∇ f T ( x ) ( y − x ) + 1 2 m ∥ y − x ∥ 2 2 ≥ f ( x ) − 1 2 m ∥ ∇ f ( x ) ∥ 2 2 ③ f(x)+\nabla f^T(x)(y-x)+\frac 1 2 \textbf m\|y-x\|_2^2\ge f(x)-\frac 1 {2\textbf m}\|\nabla f(x)\|_2^2\qquad ③ f(x)+fT(x)(yx)+21myx22f(x)2m1f(x)22
结合①②③式有:
f ( y ) ≥ f ( x ) − 1 2 m ∥ ∇ f ( x ) ∥ 2 2 ④ f(y)\ge f(x)-\frac 1 {2 \textbf m}\|\nabla f(x)\|_2^2\qquad ④ f(y)f(x)2m1f(x)22
④式对于任何 y y y都满足,令④式中的 y y y x ∗ x^* x,有:
p ∗ ≥ f ( x ) − 1 2 m ∥ ∇ f ( x ) ∥ 2 2 ⇒ f ( x ) − p ∗ ≤ 1 2 m ∥ ∇ f ( x ) ∥ 2 2 ⇒ ∥ f ( x ) − p ∗ ∥ 2 ≤ 1 2 m ∥ ∇ f ( x ) ∥ 2 2 \begin{aligned} &&p^*&\ge f(x)-\frac 1 {2\textbf m}\|\nabla f(x)\|_2^2 \\\Rightarrow&&f(x)-p^*&\le \frac 1 {2\textbf m}\|\nabla f(x)\|_2^2 \\\Rightarrow&&\|f(x)-p^*\|_2&\le \frac 1 {2\textbf m}\|\nabla f(x)\|_2^2 \end{aligned} pf(x)pf(x)p2f(x)2m1f(x)222m1f(x)222m1f(x)22
现在当给出一个梯度值,我们就可以知道 f ( x ) f(x) f(x) f ( x ∗ ) f(x^*) f(x)还有多远。

2、探究当 ∇ f ( x ) → 0 \nabla f(x)\rightarrow 0 f(x)0时, x x x x ∗ x^* x还有多远

由①式经柯西施瓦茨不等式得:
f ( x ) ≥ f ( x ) + ∥ ∇ f ( x ) ∥ 2 ∥ x − x ∗ ∥ 2 + m 2 ∥ x − x ∗ ∥ 2 ⇔ ∥ x ∗ − x ∥ 2 ≤ 2 m ∥ ∇ f ( x ) ∥ 2 \begin{aligned} &&f(x)&\ge f(x)+\|\nabla f(x)\|_2\|x-x^*\|_2+\frac {\textbf m} 2 \|x-x^*\|_2\\ \Leftrightarrow&&\|x^*-x\|_2&\le \frac 2 {\textbf m} \|\nabla f(x)\|_2 \end{aligned} f(x)xx2f(x)+f(x)2xx2+2mxx2m2f(x)2
现在当给出一个梯度值,我们就可以知道 x x x x ∗ x^* x还有多远。

个人思考

以上两个不等式说明了当我们得到的解不够精确时,我们的损失有多大,在实际问题中经常会出现求不到精确解的情况,这时我们就要掂量一下我们能接受的损失是多少,继续优化的成本和收益是多少,再决定下一步的动作。

纸质笔记

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值