梯度下降的收敛分析

梯度下降法

1、选择初始值 x 0 x_0 和步长 η \eta

2、循环从1…n:

x i + 1 = x i + η f ( x ) \quad\quad x_{i+1}=x_i+\eta\nabla f(x)

这个就是典型的梯度下降法,也就是不断的循环,直到x收敛,找到最优的 x x ,那么迭代多少次才能收敛呢?
今天咱们就分析一下

梯度下降法的收敛分析

梯度下降法的收敛分析,我们常用的定理就是:

假设函数满足L-Lipscthitz条件,并且函数是凸函数 ,设定: x = a r g m a x f ( x ) x^*=argmaxf(x) 那么对于步长 n t 1 L n_t\leq \dfrac{1}{L} :

f ( x k ) f ( x ) + x 0 x 2 2 η t k f(x_k)\leq f(x^*)+\dfrac{||x_0-x^*||^2}{2\eta_tk}

公式中L表示一个常数, k k 表示迭代的次数, x x^* 表示最优解,也就是随着迭代次数的增加, x 0 x 2 2 η t k \dfrac{||x_0-x^*||^2}{2\eta_tk} 越小表示我们的解也就越接近最优解,比如:第一次迭代 f ( x 1 ) f ( x ) + 20 f(x_1)\leq f(x^*)+20 ,第23次迭代: f ( x 23 ) f ( x ) + 0.1 f(x_{23})\leq f(x^*)+0.1 我们从公式中可以看出 f ( x 23 ) f(x_{23}) 要比 f ( x 1 ) f(x_1) 要更加接近 f ( x ) f(x^*)

并且如果 k = x 0 x 2 ε k=\dfrac{||x_0-x^*||^2}{\varepsilon} ( η t = 1 L ) (\eta_t=\dfrac{1}{L}) 我们可以得到在k次迭代后获得的解与最优解的差距为 ε \varepsilon

为什么是这样呢?大家有没有考虑过这个问题?所以今天我们就证明一下这个定理:

先来证明:
k = x 0 x 2 ε k=\dfrac{||x_0-x^*||^2}{\varepsilon} ( η t = 1 L ) (\eta_t=\dfrac{1}{L}) 我们可以得到在k次迭代后获得的解与最优解的差距为 ε \varepsilon

扫描二维码关注公众号,回复: 9643473 查看本文章

首先我们可以看到在公式中:

f ( x k ) f ( x ) + x 0 x 2 2 η t k f(x_k)\leq f(x^*)+\dfrac{||x_0-x^*||^2}{2\eta_tk}

只有k是变化的,将 k = L x 0 x 2 ε k=\dfrac{L||x_0-x^*||^2}{\varepsilon} ( η t = 1 L ) (\eta_t=\dfrac{1}{L}) 代入公式中:

x 0 x 2 2 η t k = x 0 x 2 2 1 L L x 0 x 2 ε = ε 2 \dfrac{||x_0-x^*||^2}{2\eta_tk}=\dfrac{||x_0-x^*||^2}{2\dfrac{1}{L}\dfrac{L||x_0-x^*||^2}{\varepsilon}}=\dfrac{\varepsilon}{2}
也就是

f ( x k ) f ( x ) + ε 2 f(x_k)\leq f(x^*)+\dfrac{\varepsilon}{2}

所以我们可以用 ε \varepsilon 来表示与最优解之间的差异。

下一步证明:

f ( x k ) f ( x ) + x 0 x 2 2 η t k f(x_k)\leq f(x^*)+\dfrac{||x_0-x^*||^2}{2\eta_tk}

在证明这个公式之前我们要明白L-Lipschitz定理:

L-Lipschitz定理分析

定理一

若一个光滑的函数满足L-Lipschitz,对于任意x,y我们:

f ( x ) f ( y ) L x y ||\nabla f(x)-\nabla f(y)||\leq L||x-y||

举个例子:

线性回归的目标函数: 1 n x w y 2 \dfrac{1}{n}||xw-y||^2

那么
f ( w 1 ) f ( w 2 ) = 2 n x T ( x w 1 y ) x T ( x w 2 y ) = 2 n x T x ( w 1 w 2 ) 2 n x T x ( w 1 w 2 ) ||\nabla f(w_1)-\nabla f(w_2)||=\dfrac{2}{n}||x^T(xw_1-y)-x^T(xw_2-y)||=\dfrac{2}{n}||x^Tx(w_1-w_2)||\leq\dfrac{2}{n}||x^Tx||\cdot||(w_1-w_2)||

我们可以清楚的看出 2 n x T x \dfrac{2}{n}||x^Tx|| 为L

定理二

若一个光滑的函数满足L-Lipschitz,并且是凸函数,对于任意x,y R d \in R^d 我们有:

f ( y ) f ( x ) + f ( x ) ( y x ) + 1 2 y x 2 f(y)\leq f(x)+\nabla f(x)(y-x)+\dfrac{1}{2}||y-x||^2

证明:

h ( x ) : h ( 1 ) = h ( 0 ) + 0 1 h ( z ) d z h(x):h(1)=h(0)+\int ^{1}_{0} h^`(z)dz

现在我们令: h ( z ) = f ( x + z ( y x ) ) h(z)=f(x+z(y-x))

那么 h ( 1 ) = f ( y ) , h ( 0 ) = f ( x ) h(1)=f(y),h(0)=f(x)

f ( y ) = f ( x ) + 0 1 f ( x + z ( y x ) ) ( y x ) d z f(y)=f(x)+\int^{1}_{0}\nabla f(x+z(y-x))\cdot(y-x)dz

= f ( x ) + f ( x ) ( y x ) + 0 1 ( f ( x + z ( y x ) ) f ( x ) ) ( y x ) d z =f(x)+\nabla f(x)(y-x)+\int^{1}_{0}(\nabla f(x+z(y-x))-\nabla f(x))(y-x)dz
根据定理一得:

f ( x ) + f ( x ) ( y x ) + 0 1 L z ( y x ) ( y x ) d z \leq f(x)+\nabla f(x)(y-x)+\int^{1}_{0}L||z(y-x)||(y-x)dz

f ( x ) + f ( x ) ( y x ) + L 2 y x 2 \leq f(x)+\nabla f(x)(y-x)+\dfrac{L}{2}||y-x||^2

也就是:
f ( y ) = f ( x ) + f ( x ) ( y x ) + L 2 y x 2 f(y)=\leq f(x)+\nabla f(x)(y-x)+\dfrac{L}{2}||y-x||^2
证明完毕

收敛证明

由定理二我们可以得到:

f ( x i + 1 ) f ( x i ) + f ( x i ) ( x i + 1 x i ) + L 2 x i + 1 x i 2 f(x_{i+1})\leq f(x_i)+\nabla f(x_i)(x_{i+1}-x_i)+\dfrac{L}{2}||x_{i+1}-x_i||^2

根据梯度下降法我们可以知道 x i + 1 = x i η f ( x i ) x_{i+1}=x_i-\eta\nabla f(x_i) 所以上式为:

= f ( x i ) + f ( x i ) ( 1 ) ( η f ( x i ) ) + L 2 η 2 f 2 ( x i ) =f(x_i)+\nabla f(x_i)(-1)(\eta\nabla f(x_i))+\dfrac{L}{2}{\eta^2}\cdot\nabla f^2(x_i)

= f ( x i ) η f 2 ( x i ) + L 2 η 2 f 2 ( x i ) =f(x_i)-\eta\nabla f^2(x_i)+\dfrac{L}{2}{\eta^2}\cdot\nabla f^2(x_i)

= f ( x i ) η ( 1 L 2 η ) f 2 ( x i ) =f(x_i)-\eta(1-\dfrac{L}{2}{\eta})\cdot\nabla f^2(x_i)

f ( x i ) η 2 f 2 ( x i ) \leq f(x_i)-\dfrac{\eta}{2}\cdot\nabla f^2(x_i)

上面主要是利用了 η 1 L \eta\leq \dfrac{1}{L}

继续推:

f ( x ) + f ( x i ) ( x i x ) η 2 f ( x i ) 2 \leq f(x^*)+\nabla f(x_i)(x_i-x^*)-\dfrac{\eta}{2}||\nabla f(x_i)||^2

= f ( x ) + x i x i + 1 η ( x i x ) η 2 x i x i + 1 η 2 = f(x^*)+\dfrac{x_i-x_{i+1}}{\eta}(x_i-x^*)-\dfrac{\eta}{2}||\dfrac{x_i-x_{i+1}}{\eta}||^2

还是利用了: x i + 1 = x i η f ( x i ) x_{i+1}=x_i-\eta\nabla f(x_i)

将上式展开再合并我们得到:

= f ( x ) + 1 2 η ( x i x ) 2 1 2 η ( x i x 2 2 η f ( x i ) ( x i x ) + η f ( x i ) 2 ) =f(x^*)+\dfrac{1}{2\eta}(x_i-x^*)^2-\dfrac{1}{2\eta}(||x_i-x^*||^2-2\eta\nabla f(x_i)(x_i-x^*)+||\eta\nabla f(x_i)||^2)

= f ( x ) + 1 2 η ( x i x ) 2 1 2 η ( x i x η f ( x i ) ) 2 =f(x^*)+\dfrac{1}{2\eta}(x_i-x^*)^2-\dfrac{1}{2\eta}(||x_i-x^*||-||\eta\nabla f(x_i)||)^2

再利用: x i x i + 1 = η f ( x i ) x_i-x_{i+1}=\eta\nabla f(x_i) 化简得:
= f ( x ) + 1 2 η ( x i x 2 x i + 1 x 2 ) =f(x^*)+\dfrac{1}{2\eta}(||x_i-x^*||^2-||x_{i+1}-x^*||^2)

所以总结一下为:

f ( x i + 1 ) f ( x ) + 1 2 η ( x i x 2 x i + 1 x 2 ) f(x_{i+1})\leq f(x^*)+\dfrac{1}{2\eta}(||x_i-x^*||^2-||x_{i+1}-x^*||^2)

转换一下:

f ( x i + 1 ) f ( x ) 1 2 η ( x i x 2 x i + 1 x 2 ) f(x_{i+1})-f(x^*)\leq \dfrac{1}{2\eta}(||x_i-x^*||^2-||x_{i+1}-x^*||^2)

将每一次迭代使用公式展开得:

f ( x 1 ) f ( x ) 1 2 η ( x 0 x 2 x 1 x 2 ) f(x_{1})-f(x^*)\leq \dfrac{1}{2\eta}(||x_0-x^*||^2-||x_{1}-x^*||^2)
f ( x 2 ) f ( x ) 1 2 η ( x 1 x 2 x 2 x 2 ) f(x_{2})-f(x^*)\leq \dfrac{1}{2\eta}(||x_1-x^*||^2-||x_{2}-x^*||^2)
f ( x 3 ) f ( x ) 1 2 η ( x 2 x 2 x 3 x 2 ) f(x_{3})-f(x^*)\leq \dfrac{1}{2\eta}(||x_2-x^*||^2-||x_{3}-x^*||^2)
. . . ...
f ( x k ) f ( x ) 1 2 η ( x k 1 x 2 x k x 2 ) f(x_{k})-f(x^*)\leq \dfrac{1}{2\eta}(||x_{k-1}-x^*||^2-||x_{k}-x^*||^2)

细心地同学可以看到我们下一步就是将上式相加得出:

i = 1 k f ( x i ) k f ( x ) 1 2 η ( x 0 x 2 x k x 2 ) \sum_{i=1}^k f(x_i)-kf(x^*)\leq\dfrac{1}{2\eta}(||x_0-x^*||^2-||x_{k}-x^*||^2)

在简化一下:

i = 1 k f ( x i ) k f ( x ) 1 2 η x 0 x 2 \sum_{i=1}^k f(x_i)-kf(x^*)\leq\dfrac{1}{2\eta}||x_0-x^*||^2

刚才我们在上面计算出了: f ( x i + 1 ) f ( x i ) η 2 f 2 ( x i ) f(x_{i+1})\leq f(x_i)-\dfrac{\eta}{2}\cdot\nabla f^2(x_i)

可以清楚的看到 η 2 f 2 ( x i ) \dfrac{\eta}{2}\cdot\nabla f^2(x_i) 是大于0的所以:

f ( x i + 1 ) f ( x i ) f(x_{i+1})\leq f(x_i)

也就是更新后的值一定会优于更新前的值(标准的梯度下降法)

也就是:

f ( x k ) f ( x k 1 ) . . . f ( 2 ) f ( 1 ) f(x_k)\leq f(x_{k-1})\leq...\leq f(2)\leq f(1)

因此我们把公式由: i = 1 k f ( x i ) k f ( x ) 1 2 η x 0 x 2 \sum_{i=1}^k f(x_i)-kf(x^*)\leq\dfrac{1}{2\eta}||x_0-x^*||^2 转换成:

k f ( x k ) k f ( x ) 1 2 η x 0 x 2 k f(x_k)-kf(x^*)\leq\dfrac{1}{2\eta}||x_0-x^*||^2

最终:
f ( x k ) f ( x ) x 0 x 2 2 η k f(x_k)-f(x^*)\leq\dfrac{||x_0-x^*||^2}{2\eta k}

证明完毕

发布了18 篇原创文章 · 获赞 8 · 访问量 990

猜你喜欢

转载自blog.csdn.net/li15006474642/article/details/104570485