【优化】梯度下降 收敛性 证明

梯度下降方法的收敛率是 O ( 1 / t ) O(1/t) O(1/t)

本文首先介绍梯度下降算法的定义,之后解释收敛性的意义,并给出梯度下降算法收敛性详细证明过程1

梯度下降算法

设系统参数为 x x x。对于样本 i i i,其代价函数为 f i ( x ) f_i(x) fi(x)。在n个样本组成的训练集上,其整体代价函数为:
f ( x ) = ∑ i = 1 n f i ( x ) f(x)=\sum_{i=1}^nf_i(x) f(x)=i=1nfi(x)

要求 ω \omega ω使得上式最小,由于没有闭式解,需要通过近似迭代逐步逼近。

梯度下降(Gradient Descent)以 η \eta η为学习率,在每次迭代中用一阶泰勒展开近似:
x t + 1 = x t − η ∇ f ( x ) x_{t+1}=x_t - \eta\nabla f(x) xt+1=xtηf(x)

x x x的维度为D,代价函数 f f f是个标量,梯度 ∇ f ( x ) \nabla f(x) f(x)也是一个D维向量。

序列的收敛性

基础定义

有序列 { x t } \{x_t\} { xt},如果序号 t t t趋于无穷时,满足以下条件:
lim ⁡ t → ∞ x t + 1 − x ∗ x t − x ∗ = μ \lim_{t\to \infty}\frac{x_{t+1}-x^*}{x_t-x^*}=\mu tlimxtxxt+1x=μ
则称该方法收敛到 x ∗ x^* x,收敛率为 μ \mu μ, μ ∈ ( 0 , 1 ) \mu\in(0,1) μ(0,1)。也称为以 μ \mu μ收敛到 x ∗ x^* x

例:数列 1 , 1 / 2 , 1 / 4 , 1 / 8... {1,1/2,1/4,1/8...} 1,1/2,1/4,1/8...收敛到 L = 0 L=0 L=0,收敛率为 1 / 2 1/2 1/2

扩展定义

还有一些序列也会随着序号趋于某个定值,但是收敛的速率随着下标发生变化。这里引入一个扩展的收敛率定义。
如果存在序列 { ϵ t } \{ \epsilon_t \} { ϵt},根据基础收敛率定义,以收敛率 μ \mu μ收敛到0。
则如果序列 { x t } \{x_t\} { xt}满足:
∣ x t − x ∗ ∣ < ϵ t |x_t-x^*|<\epsilon_t xtx<ϵt
称该方法收敛到 x ∗ x^* x,收敛率为 ϵ t \epsilon_t ϵt

例:数列{1,1,1/4,1/4,1/16,1/16…}收敛到 L = 0 L=0 L=0,收敛率为 ϵ t = 1 2 t − 1 \epsilon_t=\frac{1}{2^{t-1}} ϵt=2t11={2,1,1/2,1/4,1/8,1/16…}。

梯度下降的收敛性

当我们说“梯度下降的收敛性为 1 / t 1/t 1/t”时,我们指的是:

t t t趋于无穷时,代价函数 f ( x t ) f(x_t) f(xt)收敛到最优解 f ( x ∗ ) f(x^*) f(x),收敛率为 ϵ t = O ( 1 / t ) \epsilon_t=O(1/t) ϵt=O(1/t)

引理

这部分为收敛性证明做准备,步骤较曲折,请关注大流程。
##Lipschitz连续
如果标量函数 f ( x ) f(x) f(x)满足如下条件,称其满足Lipschitz连续性条件
∣ f ( x 1 ) − f ( x 2 ) ∣ ≤ L ∣ ∣ x 1 − x 2 ∣ ∣ |f(x_1)-f(x_2)| \leq L||x_1-x_2|| f(x1)f(x2)Lx1x2
其中 ∣ ∣ x ∣ ∣ ||x|| x表示向量的模长, L L L称为Lipschitz常数。对于固定的 f f f L L L是一个定值。
这个条件对函数值的变化做出了限制。

β \beta β平滑

进一步,如果函数 f ( x ) f(x) f(x)的梯度满足值为 β \beta β的Lipschitz连续,称函数 f ( x ) f(x) f(x) β \beta β平滑:

∣ ∣ ∇ f ( x ) − ∇ f ( y ) ∣ ∣ 2 ≤ β ∣ ∣ x − y ∣ ∣ 2 ||\nabla f(x)- \nabla f(y)||^2\leq \beta ||x-y||^2 f(x)f(y)2βxy2

其中 ∣ ∣ x ∣ ∣ 2 = x T x ||x||^2=x^Tx x2=xTx。这个条件对函数梯度的变化进行了约束:梯度之差的模长,不会超过自变量之差模长的常数倍。

β \beta β平滑性质1

满足 β \beta β平滑的函数有如下性质:

∣ f ( x ) − f ( y ) − ∇ f ( y ) T ( x − y ) ∣ ≤ β 2 ∣ ∣ x − y ∣ ∣ 2 |f(x)-f(y)-\nabla f(y)^T(x-y) | \leq \frac{\beta}{2}||x-y||^2 f(x)f(y)f(y)T(xy)2βxy2

证明如下

构造一个插值函数 g ( t ) = f ( y + t ( x − y ) ) g(t)=f(y+t(x-y)) g(t)=f(y+t(xy)),其关于 t t t的导数:
g ′ ( t ) = ∇ f ( y + t ( x − y ) ) T ( x − y ) g'(t)=\nabla f(y+t(x-y))^T(x-y) g(t)=f(y+t(xy))T(xy)

可以把函数值之差转化为积分:
f ( x ) − f ( y ) = g ( 1 ) − g ( 0 ) = ∫ 0 1 g ′ ( t )   d t = ∫ 0 1 ∇ f ( y + t ( x − y ) ) T ( x − y )   d t f(x)-f(y)=g(1)-g(0)=\int_0^1g'(t)\,dt=\int_0^1\nabla f(y+t(x-y))^T(x-y)\,dt f(x)f(y)=g(1)g(0)=01g(t)dt=01f(y+t(xy))T(xy)dt

代入左侧:
l e f t = ∣ ∫ 0 1 . . .   d t − ∇ f ( y ) T ( x − y ) ∣ left = |\int_0^1...\,dt-\nabla f(y)^T(x-y)| left=01...dtf(y)T(xy)
第二项是和 t t t无关的常数,可以直接写入[0,1]的积分中:
l e f t = ∣ ∫ 0 1 . . .   d t − ∫ 0 1 ∇ f ( y ) T ( x − y )   d t ∣ left = |\int_0^1...\,dt-\int_0^1\nabla f(y)^T(x-y)\,dt| left=01...dt01f(y)T(xy)dt

两个积分号合并:
l e f t = ∣ ∫ 0

  • 17
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
多目标优化梯度下降是一种用于解决多目标优化问题的算法。在传统的单目标优化中,我们希望找到一个最优解来最小化或最大化某个目标函数。而在多目标优化中,我们需要找到一组解,这些解称为 Pareto 最优解集,使得在一个目标函数值改善的同时,其他目标函数值不会恶化。 梯度下降是一种常用的优化算法,用于在搜索空间中找到某个函数的最小值。然而,在多目标优化中,由于存在多个目标函数,我们无法简单地使用梯度下降来寻找全局最优解。 在多目标优化中,常用的方法之一是利用 Pareto 支配关系来定义解的优劣。一个解支配另一个解,意味着在所有目标函数上都至少与其相等且在某个目标函数上更好。基于 Pareto 支配关系,可以构建 Pareto 前沿(Pareto front),即所有非支配解组成的集合。 多目标优化梯度下降算法的基本思想是不断地调整解的参数,使得每次迭代都朝着 Pareto 前沿的方向前进。具体而言,它通过计算目标函数的梯度来引导搜索方向,但在更新解时,会考虑到多个目标函数的改善情况,以确保解的 Pareto 支配关系得以维持。 需要注意的是,多目标优化梯度下降算法并不是一种全局优化算法,它可能只能找到 Pareto 前沿中的某些解,而无法保证找到所有 Pareto 最优解。因此,在实际应用中,我们往往需要根据具体问题的需求和约束条件来选择合适的算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值