梯度下降

什么是梯度下降法?

梯度:  是表示模型或者函数在某个点的位置法向量,所以它的方向表示下降最快或者上升最快

损失函数

              

说明一下这个式子的含义: J表示给定的函数预测值和实际值Y的均方差,它反映的是预测值与实际值的一个偏离的程度. 

我们是否可以用梯度下降算法来快速的无限逼近,使得J达到最小,当J达到最小的时候,那么我们这个时候的,不就是无限接近真是且理想的的那个权重么?

然后我们再按照梯度的方向逐步的移动,慢慢的逼近收敛值.用表达式表示为(更快找到权重的最小值,可以理解梯度下降算法是在最快寻找最小值的方法):

                  

其中需要说明的是:

  阿尔法表示的一个学习率,之所以添加这个学习率,是因为我们使用的是均方差,如果我们随机的方程预测的值与实际的值偏差比较大的话,均方差的值将会非常巨大,这样的话,可能造成我们的这个损失函数出现大幅度的偏移,我们称之为摆钟行为,所以为了避免出现这种情况,这个值就这么的诞生了,这个值的大小,可以用来调整我们移动的的步子大小,不要调的太大(一般设定在0.0001),当然也应场景而定哈~,还需要解释的是:表示的是损失函数的权重梯度,那么对于这个梯度,化简为:

    

              

得到上面的推倒之后, 所以我们可以用,替换掉中的,然后我们将会得到这样一个方程:


梯度下降法有哪些?

批量梯度下降算法(BGD)

批量梯度下降法,是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新

由于我们有m个样本,这里求梯度的时候就用了所有m个样本的梯度数据。


随机梯度下降算法(SGD)

    随机梯度下降法,和批量梯度下降法是两个极端,一个采用所有数据来梯度下降,一个用一个样本来梯度下降。自然各自的优缺点都非常突出。对于训练速度来说,随机梯度下降法由于每次仅仅采用一个样本来迭代,训练速度很快,而批量梯度下降法在样本量很大的时候,训练速度不能让人满意。对于准确度来说,随机梯度下降法用于仅仅用一个样本决定梯度方向,导致解很有可能不是最优。对于收敛速度来说,由于随机梯度下降法一次迭代一个样本,导致迭代方向变化很大,不能很快的收敛到局部最优解。

    那么,有没有一个中庸的办法能够结合两种方法的优点呢?有!这就是小批量梯度下降法。


小批量梯度下降法

小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样子来迭代,1<x<m。一般可以取x=10,当然根据样本的数据,可以调整这个x的值。对应的更新公式是:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值