梯度下降法中步长更新公式

  凸优化问题有一个重要的特性:所有的局部最优解一定是全局最优解。
  但实际中的问题往往不是凸的,或者说其梯度很难求解,所以我们想要得到精确的解很难。工程上一般用迭代法求近似解。它的思想是,从一个初始点开始,反复使用某种规则移动到下一个点,构造这样一个数列,直至收敛到梯度为0的点处。即有下列极限成立。
lim k + f ( x k ) = 0 \mathop {\lim }\limits_{k \to + \infty } \nabla f\left( {{x_k}} \right) = 0
迭代法中核心是利用一阶或者二阶导数信息,得到由上一个点确定一个点的迭代公式:
x k + 1 = h ( x k ) {x_{k + 1}} = h\left( {{x_k}} \right)
由于在最小化算法的设计中,要求迭代过程中目标函数是下降的,也就是:
f ( x k + 1 ) < f ( x k ) f\left( {{x_{k + 1}}} \right) < f\left( {{x_k}} \right)
又因为目标函数在 x k + 1 {{x_{k + 1}}} 的一阶泰勒展开为:
f ( x k + 1 ) f ( x k ) + ( f ( x k ) ) T Δ x k f\left( {{x_{k + 1}}} \right) \approx f\left( {{x_k}} \right) + {\left( {\nabla f\left( {{x_k}} \right)} \right)^T}\Delta {x_k}
可以知道,当 ( f ( x k ) ) T Δ x k < 0 {\left( {\nabla f\left( {{x_k}} \right)} \right)^T}\Delta {x_k}<0 的时候,有 f ( x k + 1 ) < f ( x k ) f\left( {{x_{k + 1}}} \right) < f\left( {{x_k}} \right)
所以称使得 ( f ( x k ) ) T Δ x k < 0 {\left( {\nabla f\left( {{x_k}} \right)} \right)^T}\Delta {x_k}<0 的搜索方向 Δ x k \Delta {x_k} 叫做目标函数在第k次迭代时的下降方向。
又两个向量相乘等于模长乘以cosθ。
( f ( x k ) ) T Δ x k = f ( x k ) Δ x k cos θ {\left( {\nabla f\left( {{x_k}} \right)} \right)^T}\Delta {x_k} = \left\| {\nabla f\left( {{x_k}} \right)} \right\| \bullet \left\| {\Delta {x_k}} \right\|\cos \theta
这里,cosθ=[-1,1],只有当cos<0时,上式才会小于0。特别的,当θ= π \pi 时,有极小值。此时, f ( x + Δ x ) f(x + \Delta x) 沿着x的梯度方向下降最快。下降值为: f ( x k ) Δ x k \left\| {\nabla f\left( {{x_k}} \right)} \right\| \bullet \left\| {\Delta {x_k}} \right\|
α \alpha 为一个接近于0的数,称为步长,有, Δ x = α f ( x ) \Delta x = - \alpha \nabla f(x)
所以有, f ( x α f ( x ) ) < f ( x ) f\left( {x - \alpha \nabla f(x)} \right)\mathop < \limits_ \sim f(x)
这就意味着,我们如果用 x x α f ( x ) x \leftarrow x - \alpha \nabla f(x) 来迭代x,目标函数f(x)的值可能降低。所以在梯度下降中,我们先选取一个初始值x和常数α>0,然后通过上式不断来迭代x,直到达到停止条件。

发布了61 篇原创文章 · 获赞 17 · 访问量 2999

猜你喜欢

转载自blog.csdn.net/qq_35027690/article/details/103344670