梯度下降法
1、选择初始值 x 0 x_0 x0和步长 η \eta η
2、循环从1…n:
x i + 1 = x i + η ∇ f ( x ) \quad\quad x_{i+1}=x_i+\eta\nabla f(x) xi+1=xi+η∇f(x)
这个就是典型的梯度下降法,也就是不断的循环,直到x收敛,找到最优的 x x x,那么迭代多少次才能收敛呢?
今天咱们就分析一下
梯度下降法的收敛分析
梯度下降法的收敛分析,我们常用的定理就是:
假设函数满足L-Lipscthitz条件,并且函数是凸函数 ,设定: x ∗ = a r g m a x f ( x ) x^*=argmaxf(x) x∗=argmaxf(x)那么对于步长 n t ≤ 1 L n_t\leq \dfrac{1}{L} nt≤L1:
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} f(xk)≤f(x∗)+2ηtk∣∣x0−x∗∣∣2
公式中L表示一个常数, k k k表示迭代的次数, x ∗ x^* x∗表示最优解,也就是随着迭代次数的增加, ∣ ∣ x 0 − x ∗ ∣ ∣ 2 2 η t k \dfrac{||x_0-x^*||^2}{2\eta_tk} 2ηtk∣∣x0−x∗∣∣2越小表示我们的解也就越接近最优解,比如:第一次迭代 f ( x 1 ) ≤ f ( x ∗ ) + 20 f(x_1)\leq f(x^*)+20 f(x1)≤f(x∗)+20,第23次迭代: f ( x 23 ) ≤ f ( x ∗ ) + 0.1 f(x_{23})\leq f(x^*)+0.1 f(x23)≤f(x∗)+0.1我们从公式中可以看出 f ( x 23 ) f(x_{23}) f(x23)要比 f ( x 1 ) f(x_1) f(x1)要更加接近 f ( x ∗ ) f(x^*) f(x∗)
并且如果 k = ∣ ∣ x 0 − x ∗ ∣ ∣ 2 ε k=\dfrac{||x_0-x^*||^2}{\varepsilon} k=ε∣∣x0−x∗∣∣2 且 ( η t = 1 L ) (\eta_t=\dfrac{1}{L}) (ηt=L1)我们可以得到在k次迭代后获得的解与最优解的差距为 ε \varepsilon ε
为什么是这样呢?大家有没有考虑过这个问题?所以今天我们就证明一下这个定理:
先来证明:
k = ∣ ∣ x 0 − x ∗ ∣ ∣ 2 ε k=\dfrac{||x_0-x^*||^2}{\varepsilon} k=ε∣∣x0−x∗∣∣2 且 ( η t = 1 L ) (\eta_t=\dfrac{1}{L}) (ηt=L1)我们可以得到在k次迭代后获得的解与最优解的差距为 ε \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} f(xk)≤f(x∗)+2ηtk∣∣x0−x∗∣∣2
只有k是变化的,将 k = L ∣ ∣ x 0 − x ∗ ∣ ∣ 2 ε k=\dfrac{L||x_0-x^*||^2}{\varepsilon} k=εL∣∣x0−x∗∣∣2 和 ( η t = 1 L ) (\eta_t=\dfrac{1}{L}) (ηt=L1)代入公式中:
∣ ∣ 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} 2ηtk∣∣x0−x∗∣∣2=2L1εL∣∣x0−x∗∣∣2∣∣x0−x∗∣∣2=