[ML笔记]梯度下降和线性梯度下降

引导

前一篇讲解代价函数作用,在监督学习的回归问题上,我们使用代价函数求解最优解,以确定假设函数。
代价函数公式
J(θ0,θ1)=12mm1(hθ(xi)yi)2
上文也提到,在参数较为复杂的情况下,代价函数的轮廓图可能如下图,该如何找到合适的 θ0,θ1 呢?
轮廓图

预备知识

有关导数,偏导数,方向导数,梯度,向量的概念请参考博文:
[机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)

梯度下降

梯度下降是一种找到代价函数最优解的方法。

梯度下降原理

代价函数是一座山,我们站在山上某个点上,我们环视四周,从上往下看,找到一个方向,向下走,下降得最快,直到下降到最底部。

梯度下降步骤

  1. 确定向下 每一步的步长,我们称作learning rate;
  2. 给定一个初始值(到山上某个点去);
  3. 确定一个向下的方向,向下走一步,步长为step 2规定的步长;
  4. 更新当前位置,回到step 3继续;
  5. 当下降的高度小于某个定义的值(比如0),则停止下降。

梯度下降算法

repeat util convergence: {
   θj:=θjαθjJ(θ0,θ1)  (simultaneously update j=0,j=1)
}
其中,α为learning rate, θjJ(θ0,θ1) 是代价函数 J(θ0,θ1) θj 方向的偏导数。

梯度下降算法特点

  1. 初始点不同,获得的最小值也不同,因此梯度下降算法求得的只是局部最小值;
  2. 越接近最小值,下降速度越慢(偏导数越来越小)

梯度下降过程

梯度下降示意图

如图,按照X一步步下降,起始点不同,下降到的最低点也可能不同。

需要注意的点

  1. α值该如何选择?会有什么影响?
    答: 如果取得一个合适的learning rate, 则代价函数应该越来越小(下降),正确做法是实时观察代价函数变化,如果代价函数变小了,则learning rate取得合适,如果代价函数变大了,则应该减小learning rate的值。
    如果learning rate 太小了,梯度下降就会很慢,如果learning rate太大,那么梯度下降可能掠过最小值,就可能出现无法收敛,甚至出现发散的现象。
    about learning rate

  2. 如果 (θ0,θ1) 已经处于局部最小值,那么 (θ0,θ1) 会如何变化?
    答: leave (θ0,θ1) unchanged,因为已经在局部最小值,则导数肯定为0,则 (θ0,θ1) 不会变化。

  3. 固定learning rate梯度下降如何收敛?
    答: 在convex函数(凸函数)底部,我们可以看到偏导数接近与0,因此最小值时,我们可以得到,
    θj:=θjα0
    越到底部,偏导数越小。因此固定步长时,收敛到底部时下降速度会越慢(特点中提到过),因此,无需慢慢减小α的值。
    固定learning rate收敛

线性梯度下降

高数复习

开始之前,我们先来复习一点高数知识,

复合函数求导法则

y=f(u)u=φ(x),f(u)φ(x)y=f(φ(x))
dydx=dydududx    或     y=f(u)φ(x)


u=φ(t)v==ψ(t)tz=f(uv)(uv)z=f[φ(t),ψ(t)]t
dzdt=zududt+zvdvdt


和的导数等于导数的和


复习完毕,我们继续
(TODO:高数复习篇)

线性回归梯度下降

假设函数:
hθ(x)=θ0+θ1x

代价函数:
J(θ0,θ1)=12mm1(hθ(xi)yi)2

梯度下降算法:
repeat util convergence: {
   θj:=θjαθjJ(θ0,θ1)  (simultaneously update j=0,j=1)
}

在线性回归中,我们使用真实的代价函数和假设函数可以推导出梯度下降方程如下:

repeat util convergence: {

   θ0:=θ0α1mm1(hθ(xi)yi)
  
   θ1:=θ1α1mm1((hθ(xi)yi)xi)
}

推导过程关键在于如何求 θjJ(θ0,θ1) ,

θjJ(θ0,θ1)=θj12mm1(hθ(xi)yi)2

假设 f(θ)=hθ(xi)yi ,则,

θjJ(θ0,θ1)=θj12mm1f2(θ)=12m2f(θ)m1f(θ)=1mf(θ)m1f(θ)

因此
j=0,

f(θ)m1f(θ)=(hθ(xi)yi)m1θ0(hθ(xi)yi) ,

m1θ0(hθ(xi)yi)=m1θ0(θ0+θ1xiyi)=m11 ,那么,

θ0:=θ0α1mm1(hθ(xi)yi)

j=1,

f(θ)m1f(θ)=(hθ(xi)yi)m1θ1(hθ(xi)yi) ,

m1θ1(hθ(xi)yi)=m1θ1(θ0+θ1xiyi)=m1xi ,那么,

θ1:=θ1α1mm1((hθ(xi)yi)xi)

推导结束。

具体怎么使用,请听下回分解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值