统计机器学习-梯度下降法

假设f(x)\textbf R^n上具有一阶连续偏导数的函数,要求解的无约束最优化问题是
\min_{x\in\textbf R^n}f(x)\tag1
x^*表示目标函数f(x)的极小点。由于负梯度方向是使函数数值下降最快的方向,所以梯度下降法在迭代的每一步,以负梯度方向更新x的值,从而达到减少函数值的目的。

当目标函数是凸函数时,梯度下降法的解是全局最优解。一般情况下,其解不保证是全局最优解。梯度下降法的收敛速度也未必是很快的。

算法

输入:目标函数f(x),梯度函数g(x)=\nabla f(x),计算精度\varepsilon

输出:f(x)的极小点x^*

  1. 取初始值x^{(0)}\in\textbf R^n,置k=0
  2. 计算f(x^{(k)})
  3. 计算梯度g_k=g(x^{(k)}),当||g_k||\lt\varepsilon时,停止迭代,令x^*=x^{(k)};否则,令p_k=-g(x^{(k)}),通过一维搜索\lambda_k,使

f(x^{(k)}+\lambda_kp_k)=\min_{\lambda\geq0}f(x^{(k)}+\lambda p_k)

  1. x^{(k+1)}=x^{(k)}+\lambda_kp_k,计算f(x^{(k+1)})

    ||f(x^{(k+1)}-f(x^{(k)})||\lt\varepsilon||x^{(k+1)}-x^{(k)}||\lt\varepsilon时,停止迭代,令x^*=x^{(k+1)}

  2. 否则,置k=k+1,转(3)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容