前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习(九)梯度下降算法1 梯度2 梯度下降法

机器学习(九)梯度下降算法1 梯度2 梯度下降法

作者头像
致Great
发布2018-04-11 16:50:41
1.1K0
发布2018-04-11 16:50:41
举报
文章被收录于专栏:程序生活程序生活

1 梯度

1.1 定义

梯度:是一个矢量,其方向上的方向导数最大,其大小正好是此最大方向导数。 关于梯度的更多介绍请看:如何直观形象的理解方向导数与梯度以及它们之间的关系?

1.2 计算

一个标量函数φ的梯度记为:

在三维直角坐标系中表示为:

1.3 范例

2 梯度下降法

2.1 定义

梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。

2.2 描述

梯度下降法基于以下观察的:如果实值函数F(x)在a处可微且有定义,那么函数F(x)在a点沿着梯度相反的方向-▽F(a)下降最快。 因而,假设

对于γ>0为一个够小数值时成立,那么F(a)≥F(b)。 考虑到这一点,我们可以从函数F的局部极小值的初始估计x0出发,考虑到如下序列x0,x1,x2,....使得:

因此可以得到

如果顺利的话,序列(xn)收敛到期望的极值。注意每次迭代的γ可以改变。 下面的这张图片展示了这一过程,这里假设F定义在平面上,并且函数图像是一个碗形。蓝色的曲线是等高线,即函数F为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数F值最小的点。

2.4 实例

梯度下降法处理一些复杂的非线性函数会出现问题,例如Rosenbrock函数

其最小值在(x,y)=(1,1)处,数值为f(x,y)=0。优化过程是之字形的向极小值点靠近,速度非常缓慢。

代码实现

参考:

  • 梯度下降算法以及其Python实现
  • 梯度下降法
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.09.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 梯度
    • 1.1 定义
      • 1.2 计算
        • 1.3 范例
        • 2 梯度下降法
          • 2.1 定义
            • 2.2 描述
              • 2.4 实例
                • 代码实现
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档