美文网首页
Mirror Descent

Mirror Descent

作者: 顾劝劝 | 来源:发表于2020-05-07 23:36 被阅读0次

总结自Princeton数据科学的大规模优化课程幻灯片

灵感来源

当我们求一个凸且可微的函数在凸集可行域内的最小值,也就是求以下优化问题时:
\min_{x\in\mathcal{C}} f(x) \tag{1}
如果函数本身比较复杂,不妨用梯度下降,一点点逼近最优。每一次逼近的位置,可以是一个近似f(x)的更简单函数的最优值。比如,当前点邻域内的二阶泰勒展开:
x^{t+1} = \arg\min_{x\in\mathcal{C}}\{f(x^t)+\langle\nabla f(x^t),x-x^t\rangle+(x-x^t)^T\dfrac{\nabla^2f(x^t)}{2}(x-x^t)\}.\tag{2}
或者,把最后一项简化得更清cū爽cāo些,变成:
x^{t+1} = \arg\min_{x\in\mathcal{C}}\{f(x^t)+\langle\nabla f(x^t),x-x^t\rangle+\dfrac{1}{2\eta_t}\|x-x^t\|_2^2\}.\tag{3}.
这样得到的更新策略就是牛顿法。
可以看到,简化后的\eta_t近似取代了原来二阶导和夹角余弦平方的乘积,变成了一个可调节的参数。这一项二范数也可以看做是一阶泰勒展开和函数本身之间差距的近似补偿,决定了近似函数的曲率。

当衡量两个分布之间的距离时,最后一项用欧氏距离就显得不合时宜了。似乎可以考虑那些probability divergence metrics, 比如\chi^2-divergence, KL divergence,Total variation distance等。

形式初现

当当当!此时我们引入mirror descent的关键——Bregman divergence function。它便是欧氏距离的拓展,帮助数值优化问题找到更合适的近似函数。
Bregman divergence function长这样:
D_\varphi(x,z):=\varphi(x)-\varphi(z)-\langle \nabla f(z),x-z\rangle\tag{4}
其中\varphi是可微且凸的函数。
于是,mirror descent的更新公式就是:
x^{t+1} = \arg\min_{x\in\mathcal{C}}\{f(x^t)+\langle\nabla f(x^t),x-x^t\rangle+\dfrac{1}{\eta_t}D_\varphi(x,x^t)\}.\tag{5}
每一次迭代,先解无凸集约束优化问题,再以Bregman divergence为距离度量把无约束最优决策投影到\mathcal{C}上得到x^{t+1}。这种用Bregman divergence度量距离而不是用欧氏距离来度量的投影方法,叫做Bregman Projection。

参数选择与对应解

\varphi是2范数时,D就是欧式距离。所以欧式距离是Bregman divergence的特殊情形。D也可以有其他情形:如当\varphi是马氏距离时,D也是马氏距离;当\varphi是负熵(negative entropy,\sum_i x_i\log x_i, \text{s.t.} \sum_i x_i = 1)时,D是KL散度;\varphi是无约束负熵,D是广义KL散度\sum_i (x_i \log \frac{x_i}{z_i}-x_i+z_i)

不难通过计算证明,对于马氏距离\varphi(x,z)=\frac{1}{2}(x-z)^TQ(x-z)来说,它的迭代公式有显式解:
x^{t+1}=x^t-\eta_t Q^{-1}\nabla f(x^t)\tag{6}
KL散度的迭代公式也有显式解,通常这种形式的解叫做 exponentiated gradient descent或者entropic descent:
x^{t+1}_i = \dfrac{x^t_i\exp(-\eta_t\nabla [f(x^t)]_i)}{\sum_j x^t_j\exp(-\eta_t\nabla [f(x^t)]_j)}\tag{7}

事实上,mirror descent的迭代公式有另一种写法:
x^{t+1}\in\mathcal{P}_{\mathcal{C},\varphi}(\nabla\varphi(x^t)-\eta_t g_t),\tag{8}
其中\mathcal{P}_{\mathcal{C},\varphi}(y)y的Bregman Projection,g_t\in\partial f(x^t)
为什么叫mirror呢?
因为当\mathcal{C}\mathbb{R}^n时,
x^{t+1} = \nabla\varphi^*(\nabla\varphi(x^t)-\eta_t g_t)\tag{9}
其中\varphi^*\varphi的Fenchel共轭函数。
x通过\varphi得到了y:=\nabla\varphi(x^t)-\eta_t g_t,y又通过\varphi^*投影到了更新的x上。


找合适的\varphi有三个要点:

  • 拟合局部曲率
  • 拟合可行域的几何形状
  • Bregman Projection 计算方便(inexpensive)

Bregman divergence也有一些特点:

  • 非负
  • 对于函数的第一个自变量而言(也就是每次迭代待优化的那个)是凸的
  • 一般不对称,D_\varphi(x,z)\neq D_\varphi(z,x)\tag{9}

步长与收敛性

通过一些数值实验,我们会发现这个可调节参数的大小对梯度下降的收敛性举足轻重,如果它不合适的话容易发散。毕竟,它的存在要使得近似函数和函数本身足够接近才算精准。

那么理论上呢?

观察D,我们会发现类似于三角不等式的three-point property,如式(10)所示。它是收敛性的保证。
D_\varphi(x,z) = D_\varphi(x,y)+D_\varphi(y,z)-\langle \nabla \varphi(z)-\nabla \varphi(y),x-y\rangle
由于投影在凸集上,类似于余弦定理,根据\angle z\mathcal{P}_{\mathcal{C},\varphi}(x) x是钝角,我们可以得到
D_\varphi(z,x) \geq D_\varphi(z,\mathcal{P}_{\mathcal{C},\varphi}(x)) +D_\varphi(\mathcal{P}_{\mathcal{C},\varphi}(x),x) \tag{10}
等号在\mathcal{C}是仿射平面的时候取到。

根据凸性,当前位置的函数值离最优值相差不超过:
f(x^t)-f(x^*)\leq \langle g_t,x^t-x^*\rangle\tag{11}
最后能够得到这样的结论:
如果f\mathcal{C}上凸且Lipschitz连续(\|g\|_*\leq L_f),\varphi\rho-强凸,那么:
f(x^t)-f(x^*)\leq \dfrac{\sup_{x\in\mathcal{C}}D_\varphi(x,x^0)+\frac{L_f^2}{2\rho}\sum_{k=0}^t\eta^2_k}{\sum_{k=0}^t \eta_k}\tag{12}
收敛性的证明详见斯坦福EE364b的幻灯片

根据(12),定义R:=\sup_{x\in\mathcal{C}}D_\varphi(x,x^0)\eta_t=\frac{\sqrt{2\rho R}}{L_f}\frac{1}{\sqrt{t}}时有:
f(x^t)-f(x^*)\leq \mathcal{O}(\frac{L_f\sqrt{R}}{\sqrt{\rho }}\frac{\log t}{\sqrt{t}})\tag{13}
如此,给g_t\eta_t调参的思路就有迹可循啦。

相关文章

网友评论

      本文标题:Mirror Descent

      本文链接:https://www.haomeiwen.com/subject/hdlbghtx.html