机器学习中的数学:(六)连续优化(Continuous Optimization)


在这里插入图片描述
在本节中,主要讨论连续优化的两个主要分支: 约束优化(constrained optimization)、 无约束优化(unconstrained optimization)。在求解一个线性方程的最优问题的时候,可以对方程进行求导,让后让求导得到的式子赋值为0,接触的结果就是 驻点(Stationary points),想要知道这个驻点是极大值还是极小值,需要看在该点的二阶导数的的值的情况。由于五次方及以上的高次方程没有代数解(Abel–Ruffini theorem),所以在一些情况下无法求解出求导式子的解析解,这时候我们可以设置一个初始点,为了求解极小值,只需要让点顺着梯度的反方向运动即可,但是这有可能无法得到全局最优解,而是得到一个局部最优解。
在这里插入图片描述

梯度下降法(Optimization Using Gradient Descent)

梯度下降法是一种一阶优化算法,算法会不断更新参数的值,每一步的变化方向都是梯度的反方向(梯度方向的变化率最大。)
梯度下降的目标是:
min ⁡ x f ( x ) \min_xf(x) xminf(x)
其中, f : R d → R f:\mathbb R^d \rightarrow \mathbb R fRdR被称为目标函数(objective function)。在等高线图中, f ( x ) f(x) f(x)的变化方向与等高线相互垂直。

下面考虑多元方程 f ( x ) f(\boldsymbol x) f(x)的优化问题。
f ( x ) f(\boldsymbol x) f(x)下降最快的方向就是梯度的反方向 − ( ( ∇ f ) ( x 0 ) ) ⊤ -((\nabla f)(x_0))^\top ((f)(x0)),所以:
x 1 = x 0 − γ ( ( ∇ f ) ( x 0 ) ) ⊤ \boldsymbol{x}_{1}=\boldsymbol{x}_{0}-\gamma\left((\nabla f)\left(\boldsymbol{x}_{0}\right)\right)^{\top} x1=x0γ((f)(x0))
如果步长(step-size) γ ≥ 0 \gamma \ge 0 γ0,则 f ( x 1 ) ≤ f ( x 0 ) f(x_1)\le f(x_0) f(x1)f(x0)
在这里插入图片描述

步长/学习率(Step-size)

梯度实际上只给出了变化的方向,但是变化的大小是由学习率和当前梯度的绝对值决定的。梯度的绝对值由函数决定,学习率就成为了能够人为控制的变量。假如学习率过小,则取得最优解的耗时会很长,反之可能会在最优解两端左右震荡,也会可能会花费很多的时间求得最优解,在极端情况下还可能会发散。
有一种称为自适应梯度法(Adaptive gradient methods)能够在每次迭代的时候更新学习率,以保证代价函数能够“平滑”地移动到最优解点。下面是几个经验性的结论:

  1. 每一次迭代代价函数都应该减少,否则减小学习率并撤回当前操作。
  2. 当函数值接近最优解点的时候,函数的梯度减少,这个时候应该适当地增大学习率,以加快收敛速度。

在这里插入图片描述
我们可以使用梯度下降法求解线性方程:
求解一个线性方程 A x = b \boldsymbol A\boldsymbol x=\boldsymbol b Ax=b就是求解 A x − b = 0 \boldsymbol A\boldsymbol x-\boldsymbol b=\boldsymbol0 Axb=0,近似地等价于求解当平方误差最小时,x的取值:(这里使用欧几里得范数)
min ⁡ x ∥ A x − b ∥ 2 = ( A x − b ) ⊤ ( A x − b ) \min_x \|Ax-b\|^2=(Ax-b)^\top(Ax-b) xminAxb2=(Axb)(Axb
对上式对x进行求导:
∇ x = 2 ( A x − b ) ⊤ A \nabla_x=2(Ax-b)^\top A x=2(Axb)A
这时可以使用梯度下降法求解出x的值。
在求解线性方程的时候,梯度下降法的收敛速度由条件数(condition number)决定,即 κ = σ ( A ) m a x σ ( B ) m i n \kappa = \frac{\sigma(A)_{max}}{\sigma(B)_{min}} κ=σ(B)minσ(A)max,条件数在本质上就是最大弯曲方向与最小弯曲方向的比率(在等高线图上)
预处理子(preconditioner)
在求解 A x − b = 0 Ax-b=0 Axb=0之前,先进行 P − 1 ( A x − b ) = 0 P^{-1}(Ax-b) = 0 P1(Axb)=0,使得 P − 1 A P^{-1}A P1A有一个更好的条件数,其中 P P P称为预处理子。实际上就是对数量级进行匹配,使得等高线图上的图像更加均匀,这样能够加快收敛的速度。

带动量项的梯度下降(Gradient Descent With Momentum)

当函数数量级不是很匹配的时候(表现在等高线图上就是一个狭长的圆),这时候,在执行梯度下降算法的时候,可能会出现在最优解两端不断震荡的现象,为了改善这种情况,可以给梯度下降赋予一些记忆,这个记忆就是动量项,记录先前一次迭代发生的变化。
x i + 1 = x i − γ i ( ( ∇ f ) ( x i ) ) ⊤ + α Δ x i Δ x i = x i − x i − 1 = α Δ x i − 1 − γ i − 1 ( ( ∇ f ) ( x i − 1 ) ) ⊤ , α ∈ [ 0 , 1 ] \begin{aligned} \boldsymbol{x}_{i+1} &=\boldsymbol{x}_{i}-\gamma_{i}\left((\nabla f)\left(\boldsymbol{x}_{i}\right)\right)^{\top}+\alpha \Delta \boldsymbol{x}_{i} \\ \Delta \boldsymbol{x}_{i} &=\boldsymbol{x}_{i}-\boldsymbol{x}_{i-1}=\alpha \Delta \boldsymbol{x}_{i-1}-\gamma_{i-1}\left((\nabla f)\left(\boldsymbol{x}_{i-1}\right)\right)^{\top} ,\alpha\in[0,1]\end{aligned} xi+1Δxi=xiγi((f)(xi))+αΔxi=xixi1=αΔxi1γi1((f)(xi1)),α[0,1]

the momentum term is useful since it averages out different noisy estimates of the gradient

随机梯度下降法(Stochastic Gradient Descent)

由于在计算梯度的时候需要消耗很多的时间,所以可以考虑求解一个近似解即可并非需要求出精确解。
在运行梯度下降的时候,我们需要求解出所有代价函数最小时,所对应的参数的值:
L ( θ ) = ∑ n = 1 N L n ( θ ) L(\boldsymbol\theta)=\sum^N_{n=1}L_n(\boldsymbol \theta) L(θ)=n=1NLn(θ)
我们还可以使用负对数似然的形式表示代价函数:
L ( θ ) = − ∑ n = 1 N log ⁡ p ( y n ∣ x n , θ ) L(\boldsymbol \theta)=-\sum_{n=1}^N\log p(y_n|\boldsymbol x_n,\boldsymbol \theta) L(θ)=n=1Nlogp(ynxn,θ)

其中 x n ∈ R D x_n\in \mathbb R^{D} xnRD为训练数据, y n y_n yn为训练目标, θ \boldsymbol\theta θ为回归模型的参数。
我们原先提到的梯度下降是批优化算法,也就是在更新的时候需要用到所有的训练数据。
θ i + 1 = θ i − γ i ( ∇ L ( θ i ) ) ⊤ = θ i − γ i ∑ n = 1 N ( ∇ L n ( θ i ) ) ⊤ \boldsymbol \theta_{i+1}=\boldsymbol\theta_i-\gamma_i(\nabla L(\boldsymbol\theta_i))^{\top}=\boldsymbol\theta_i-\gamma_i\sum^N_{n=1}(\nabla L_n(\boldsymbol \theta_i))^\top θi+1=θiγi(L(θi))=θiγin=1N(Ln(θi))

当需要训练大量数据或是对应的方程无法简单地表示出来的时候,利用上式进行梯度下降将会消耗大量的计算资源。
其实,我们并不一定需要使用所有的数据,我们可以使用其中的一部分数据进行训练,这种梯度下降法被称为小批量梯度下降法(mini-batch gradient descent)当样品的数量越多,所得到的梯度结果也就越接近真实值,但是也会消耗更多的计算资源。
在这里插入图片描述
如果我们能够保持每次的数据小批量,那么数据噪音也许会帮助梯度下降算法跳出局部最优解。

在机器学习中有广泛应用,需要进行补充

约束优化和拉格朗格日乘数(Constrained Optimization and Lagrange Multipliers)

在这里插入图片描述

约束优化问题可以表示为:
min ⁡ x f ( x ) , s . t   g i ( x ) ≤ 0    i = 1 , ⋯   , m \min_x f(x),s.t \ g_i(x)\le0 \ \ i = 1,\cdots,m xminf(x),s.t gi(x)0  i=1,,m
也可以使用指示函数(indicator function)指示函数可以表示一个元素是否在设定的集合内,用 1 \boldsymbol 1 1表示:
J ( x ) = f ( x ) + ∑ i = 1 m 1 ( g i ( x ) ) J(x)=f(x)+\sum^m_{i=1}\boldsymbol 1(g_i(x)) J(x)=f(x)+i=1m1(gi(x))
其中 1 \boldsymbol 1 1无限阶跃函数(infinite step function):
1 ( z ) = { 0 i f   z ≤ 0 ∞ o t h e r w i s e \boldsymbol 1(z)=\left\{\begin{aligned} &0\quad if\ z\le0 \\ &\infin \quad otherwise\end{aligned}\right. 1(z)={0if z0otherwise
也就是当取值在约束范围之外时,会有一个无穷大的惩罚。
拉格朗日算子

L ( x , λ ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) = f ( x ) + λ ⊤ g ( x ) \begin{aligned} \mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}) &=f(\boldsymbol{x})+\sum_{i=1}^{m} \lambda_{i} g_{i}(\boldsymbol{x}) &=f(\boldsymbol{x})+\boldsymbol{\lambda}^{\top} \boldsymbol{g}(\boldsymbol{x}) \end{aligned} L(x,λ)=f(x)+i=1mλigi(x)=f(x)+λg(x)
其中 λ \boldsymbol\lambda λ拉格朗日乘子(Lagrange multiplier)

拉格朗日对偶(Lagrangian duality)
在优化问题中,对偶是将一个变量(原始变量,primal variables)装换成另一种变量(对偶变量,dual variables)x在这里插入图片描述

对偶问题是看待一个优化问题的两个角度。对偶问题的解是原始问题的一个下界。

原始问题(primal problem):
min ⁡ x f ( x ) , s . t . g i ( x ) ≤ 0 i = 1 ⋯   , m \min_x f(x), s.t. \quad g_i(x)\le 0\quad i = 1\cdots,m xminf(x),s.t.gi(x)0i=1,m
对应的对偶问题(Lagrangian Dual Problem):(将原始的问题转化成拉格朗日算子表示的式子)
max ⁡ λ ∈ R m D ( λ ) , s . t .   λ ≥ 0 \max_{\lambda\in\mathbb R^m}\mathfrak D(\lambda),\quad s.t.\ \lambda\ge 0 λRmmaxD(λ),s.t. λ0
这里 λ \lambda λ为对偶变量(dual variable), D = min ⁡ x ∈ R d L ( x , λ ) \mathfrak D = \min\limits_{x\in \mathbb R^d}\mathfrak L(x,\lambda) D=xRdminL(x,λ)

这里需要补充几点知识:
1.极大极小不等式(minimax inequality)
对于任意一个有两个参数的函数 φ ( x , y ) \varphi(\boldsymbol x, \boldsymbol y) φ(x,y)有:
max ⁡ y min ⁡ x φ ( x , y ) ⩽ min ⁡ x max ⁡ y φ ( x , y ) \max _{\boldsymbol{y}} \min _{\boldsymbol{x}} \varphi(\boldsymbol{x}, \boldsymbol{y}) \leqslant \min _{\boldsymbol{x}} \max _{\boldsymbol{y}} \varphi(\boldsymbol{x}, \boldsymbol{y}) ymaxxminφ(x,y)xminymaxφ(x,y)
2.弱对偶(weak duality)
原始变量 ≥ \ge 对偶变量(duality gap ≥ 0 \ge 0 0

下面的内容需要想想为什么?(为什么是下界,二者的关系是什么?)

λ ≥ 0 \lambda\ge0 λ0时, L ( x , λ ) \mathfrak L(x,\lambda) L(x,λ)是代价函数 J ( x ) J(x) J(x)的下界。所以:
J ( x ) = max ⁡ λ ≥ 0 L ( x , λ ) J(x)=\max_{\lambda\ge0}\mathfrak L(x,\lambda) J(x)=λ0maxL(x,λ)
同时我们原先先要解决的问题是找到J(x)最小时的参数的值所以:
min ⁡ x ∈ R d max ⁡ λ ≥ 0 L ( x , λ ) \min_{x\in\mathbb R^d}\max_{\lambda\ge0}\mathfrak L(x,\lambda) xRdminλ0maxL(x,λ)
再利用之前的极大极小不等式:
min ⁡ x ∈ R d max ⁡ λ ⩾ 0 L ( x , λ ) ⩾ max ⁡ λ ⩾ 0 min ⁡ x ∈ R d L ( x , λ ) . \min _{x \in \mathbb{R}^{d}} \max _{\boldsymbol{\lambda} \geqslant 0} \mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}) \geqslant \max _{\boldsymbol{\lambda} \geqslant 0} \min _{\boldsymbol{x} \in \mathbb{R}^{d}} \mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}) . xRdminλ0maxL(x,λ)λ0maxxRdminL(x,λ).
这也是弱对偶。这时候将问题转化成了 min ⁡ x ∈ R d L ( x , λ ) \min\limits_{\boldsymbol x\in\mathbb{R}^{d}} \mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}) xRdminL(x,λ),一个无约束的问题。

等式约束(Equality Constraints):
min ⁡ x f ( x )  subject to  g i ( x ) ⩽ 0  for all  i = 1 , … , m h j ( x ) = 0  for all  j = 1 , … , n . \begin{array}{rl} \min _{\boldsymbol{x}} & f(\boldsymbol{x}) \\ \text { subject to } & g_{i}(\boldsymbol{x}) \leqslant 0 \quad \text { for all } \quad i=1, \ldots, m \\ & h_{j}(\boldsymbol{x})=0 \quad \text { for all } \quad j=1, \ldots, n . \end{array} minx subject to f(x)gi(x)0 for all i=1,,mhj(x)=0 for all j=1,,n.
其中的等式可以用两个不等式表示,然后就可以继续使用拉格朗日乘子了。(有一些需要补充)

凸优化(Convex Optimization)

注意一点:国内外对凹凸函数的定义有时相反

当一个优化问题的目标函数为凸函数,约束条件为凸集时,称这种问题为凸优化问题
强对偶(strong duality):原始问题和对偶问题的最优化结果是一致的。
凸集:
对于一个凸集(convex set) C \mathcal C C,如果任意的 x , y ∈ C x,y\in \mathcal C x,yC和任意的标量 θ ( 0 ≤ θ ≤ 1 ) \theta(0\le \theta\le 1) θ(0θ1)有:
θ x + ( 1 − θ ) y ∈ C \theta x+(1-\theta)y\in \mathcal C θx+(1θ)yC
其实凸集就是凸函数上方形成的一个区域中的集合,如下图。

在这里插入图片描述
凸函数
对于一个函数 f : R D → R f:\mathbb R^D\rightarrow\mathbb R f:RDR的定义域是一个凸集,那么如果这个函数是凸函数,则对于定义域内的所有的点 x 、 y x、y xy和标量 θ ( 0 ≤ θ ≤ 1 ) \theta(0\le\theta\le1) θ(0θ1)有:(Jensen’s inequality)
f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x+(1-\theta)y)\le\theta f(x)+(1-\theta)f(y) f(θx+(1θ)y)θf(x)+(1θ)f(y)
判断一个函数是否为凸函数,可以使用函数的梯度:
f ( y ) ≥ f ( x ) + ∇ x f ( x ) ⊤ ( y − x ) f(y)\ge f(x)+\nabla_xf(x)^\top(y-x) f(y)f(x)+xf(x)(yx)
如果该函数二阶可导,则只要这个函数的海森矩阵是半正定的

线性规划(Linear Programming)

目标函数和约束函数都是线性方程的优化问题

min ⁡ x ∈ R d c ⊤ x ,   s . t .   A x ≤ b \min_{x\in\mathbb R^d}c^\top x,\ s.t.\ Ax\le b xRdmincx, s.t. Axb
其中: A ∈ R m × d   、 b ∈ R m A\in\mathbb R^{m\times d}\ 、b\in\mathbb R^m ARm×d bRm这里包含d个变量和m个线性约束条件。
对应的拉格朗日式为:
L ( x , λ ) = c ⊤ x + λ ⊤ ( A x ) \mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda})=\boldsymbol{c}^{\top} \boldsymbol{x}+\boldsymbol{\lambda}^{\top}(\boldsymbol{A} \boldsymbol{x}) L(x,λ)=cx+λ(Ax)
将上式对x进行求导,并设为0,得:
c + A ⊤ λ = 0 c+A^\top \lambda=0 c+Aλ=0
所以对偶问题为:
max ⁡ λ ∈ R m − b ⊤ λ ,    s . t .   c + A ⊤ λ = 0 , λ ≥ 0 \max_{\lambda\in\mathbb R^m}-b^\top\lambda,\ \ s.t.\ c+A^\top\lambda=0, \lambda\ge 0 λRmmaxbλ,  s.t. c+Aλ=0,λ0

二次规划问题(Quadratic Programming)

min ⁡ x ∈ R d 1 2 x ⊤ Q x + c ⊤    s . t .   A x ≤ b \min _{x\in \mathbb R^d}\frac{1}{2}x^\top Qx+c^\top\ \ s.t.\ Ax\le b xRdmin21xQx+c  s.t. Axb
其中: A ∈ R m × d , b ∈ R m , C ∈ R d A\in \mathbb R^{m\times d},b\in\mathbb R^m,C\in \mathbb R^d ARm×d,bRm,CRd,其中 Q ∈ R d × d Q\in \mathbb R^{d\times d} QRd×d是一个正定矩阵,目标函数是凸函数(convex)。这种问题被称为二次规划问题。

利用拉格朗日乘子:
L ( x , λ ) = 1 2 x ⊤ Q x + c ⊤ x + λ ⊤ ( A x − b ) = 1 2 x ⊤ Q x + ( c + A ⊤ λ ) ⊤ x − λ ⊤ b \begin{aligned} \mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}) &=\frac{1}{2} \boldsymbol{x}^{\top} \boldsymbol{Q} \boldsymbol{x}+\boldsymbol{c}^{\top} \boldsymbol{x}+\boldsymbol{\lambda}^{\top}(\boldsymbol{A} \boldsymbol{x}-\boldsymbol{b}) \\ &=\frac{1}{2} \boldsymbol{x}^{\top} \boldsymbol{Q} \boldsymbol{x}+\left(\boldsymbol{c}+\boldsymbol{A}^{\top} \boldsymbol{\lambda}\right)^{\top} \boldsymbol{x}-\boldsymbol{\lambda}^{\top} \boldsymbol{b} \end{aligned} L(x,λ)=21xQx+cx+λ(Axb)=21xQx+(c+Aλ)xλb
对上式进行整理之后,对x进行求导得:
Q x + ( c + A ⊤ λ ) = 0 Qx+(c+A^\top\lambda)=0 Qx+(c+Aλ)=0

假设矩阵Q是可逆得:
x = − Q − 1 ( c + A ⊤ λ ) x= -Q^{-1}(c+A^\top\lambda) x=Q1(c+Aλ)

将上面二式联立可以得到拉格朗日对偶:
D ( λ ) = − 1 2 ( c + A ⊤ λ ) ⊤ Q − 1 ( c + A ⊤ λ ) − λ ⊤ b \mathfrak D(\lambda)=-\frac12(c+A^\top\lambda)^\top Q^{-1}(c+A^\top\lambda)-\lambda^\top b D(λ)=21(c+Aλ)Q1(c+Aλ)λb

对偶优化问题的解可以由下解得:
max ⁡ λ ∈ R m − 1 2 ( c + A ⊤ λ ) ⊤ Q − 1 ( c + A ⊤ λ ) − λ ⊤ b ,    s . t . λ ≥ 0 \max_{\lambda\in\mathbb R^m}-\frac 12(c+A^\top\lambda)^\top Q^{-1}(c+A^\top\lambda)-\lambda^\top b,\ \ s.t. \lambda\ge 0 λRmmax21(c+Aλ)Q1(c+Aλ)λb,  s.t.λ0

Legendre-Fenchel变换和凸共轭(Legendre-Fenchel Transform and Convex Conjugate)

支撑超平面(supporting hyperplane):
我们可以用一个支撑超平面来表示一个凸函数或者凸集,如下图所示:

在这里插入图片描述
凸共轭
这也被称为Legendre-Fenchel变换
在这里插入图片描述
其中, sup ⁡ \sup sup: supremum 上确界

A legendre transformation is a way of transforming a function of some variable into another function of another variable without losing any information.
在这里插入图片描述

上下确界:(子集中最大和最小的元素)
在这里插入图片描述
在这里插入图片描述

这部分需要补充

补充内容

Legendre Transform

Sometime it’s much more easier to work with f ( s ) f(s) f(s) instead of f ( x ) f(x) f(x)
f ( x ) → f ( s ) , f ( s ) = d f ( x ) d x f(x)\rightarrow f(s),\quad f(s) = \frac{df(x)}{dx} f(x)f(s),f(s)=dxdf(x)
在这里插入图片描述
Now we want a function which is changing with s, the function f ∗ ( s ) f^*(s) f(s) is changing with s s s.And f ∗ f^* factually equal to − b -b b
And if we use the transformation again, we will regain the original function:

f ∗ ∗ ( x ) = x ⊤ s − f ∗ ( s ) = x ⊤ s − ( s ⊤ x − f ( x ) ) = f ( x ) \begin{aligned}f^{**}(x) & =x^\top s-f^*(s)\\ &=x^\top s-(s^\top x - f(x))\\ & =f(x) \end{aligned} f(x)=xsf(s)=xs(sxf(x))=f(x)
Why using it we can solve the optimistics problems pretty fast:

f ∗ ( 0 ) = 0 ⊤ x min ⁡ − f ( x min ⁡ ) f ( x min ⁡ ) = − f ∗ ( 0 ) f^*(0)=0^\top x_{\min}-f(x_{\min})\\f(x_{\min})=-f^*(0) f(0)=0xminf(xmin)f(xmin)=f(0)

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值