#统计学相关,梯度下降(gradient descent)的由来

拟合数据的算法的原理:要拟合的数据直接找一条线,该线要符合→各点到该线的距离最小

那么如何获取最优解:
假设这里有数值E
E = (预测值-实际值)的平方
一般E被称为残差,残差越小拟合度越好

为了更好地对E进行计算(这里是求导)以便找到最优解,我们引入一个概念,链式法则,
是微积分中的求导法则,用于复合函数求导。复合函数的导数将为构成复合这有限个函数在相应点的导数的乘积,称链式法则。
在这里插入图片描述
为方便理解,直接联想高中学的复合函数求导即可

然后,

导数→变化率→变化率越小→E的数值越小,拟合度越好→E的导数为0的时候→误差最小的点→最优解

那么就产生了新的问题,要怎么控制计算E的X的区间呢(联想高中的最小二乘法的计算方式)
于是我们要引入一个新的概念,学习率
学习率是一个超参数,控制着我们根据损失梯度调整的网络权重。值越低,我们沿着向下的斜率走得越慢即值越低计算的间距/区间越小

学习率如何影响算法的计算:
new-weight = old-weight 减 (learning-ate * gradient)

为了提高计算的效率,我们就需要对学习率进行设计,当他离最优解的区间太远的时候适当提高,离最优解的距离比较近的时侯再减小即可

那么要怎么实现呢,
求导→变化率→在变化率上做文章即可
由此,得出以下公式
step-size = slope* learning-rate

问题来了,里面的斜率(slope)是怎么知道的呢
由此,我们要引入一个概念SSR(Sum of Squares due to Regression/回归平方和)
计算公式:

在这里插入图片描述
进一步推广,当y1,y2带进去并加起来的时候,自然就构成有梯度的斜率

那么梯度是如何下降的呢
step-size for calculating slope = slopelearning-rate
step-size for calculating intercept = intercept
learning-rate
new-intercept = old-intercept 减 step-size

推广
new-slope= old-slope 减 step-size

那么问题又来了
这么干,什么时候是个头呢
这个时候就要我们主动定义了,小于某个值,比如0.00001的时候我们认为这个误差足够小了
然后问题又出来了
如果怎么算都无法小于这个值呢
只要定义step大于某个值即可,比如当训练了2000次,这个还是没法降到那个值,那我们就认为它已经到了极限,停止训练模型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丰。。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值