理解梯度下降法

梯度下降法是求解无约束最优问题中常用到的一种学习方法,形式简单,属于一阶收敛,在空间进行线性搜索。在前面讲到的逻辑斯蒂回归模型中,就常用到梯度下降法来学习参数。
首先给出问题定义(统计学习方法附录A):
假设f(x)是 Rn 上具有一阶连续偏导的函数,求解的目标问题如下:

minxRnf(x)

x 表示目标函数 f(x) 的极小值点。
梯度下降法通过迭代的方法不断更新 x 的值,直至x离极小值点 x 的距离满足条件。由于函数的负梯度方向是函数值下降最快的方向,因此梯度下降法选择在负梯度方向更新 x 的值。

若第k次迭代时x的值为 x(k) ,在该点处对 f(x) 一阶泰勒展开,得到:

f(x)=f(x(k))+gTk(xx(k))

其中, gk 为在 x(k) 点的梯度。有如下等式来对 x(k+1) 更新:

x(k+1)=x(k)+λkpk

其中, pk=gk 是该点的负梯度,表示更新 x 时的搜索方向;λk是步长,在梯度下降法使用中是最需要考虑的一个参数,要求:

f(x(k)+λkpk)=minλ0f(x(k)+λpk)

在实际运用中最简单方法是通过多次实验选取最合适的步长作为定长来使用。
综上,梯度下降法的步骤如下:
(1)、取初始值 x(0) ,置k=0;
(2)、计算 f(x(k)) ;
(3)、计算梯度 gk=g(x(k)) ,当 ||gk||<ϵ 时,说明已经收敛,停止迭代,记 x=x(k) ;否则,令 pk=gk ;
(4)、使用等式 x(k+1)=x(k)+λkpk 来更新 x ,并求f(x(k+1)),当 ||f(x(k+1))f(x(k))||<ϵ ||x(k+1)x(k)||<ϵ 时,停止迭代,记 x=x(k+1)
(5)、否则,置 k=k+1 ,转(3)。

梯度下降法通常在离极值点远的地方下降很快,但在极值点附近时会收敛速度很慢。并且,在目标函数是凸函数时,梯度下降法的解是全局最优解。而在一般情况下,梯度下降法不保证求得全局最优解。

示例
若对一个线性数据集通过梯度下降法求得线性方程的参数 theta,xk 。设在训练数据上的损失函数为:


J(θ)=12mi=1m(hθ(xi)yi)2

其中, hθ(x)=θx , θ广
J(θ) 求偏导,得:
J(θ)=12m×2mi=1(hθ(xi)yi)×hθ(xi)
=1mmi=1(hθ(xi)yi)×xi
用式子
θjθjλJ(θ)
θj 进行更新。
下面是对一个单变量数据集使用梯度下降法得出的线性方程:
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值