深度学习(1)—基于梯度优化的理解

对基于梯度优化的理解:
y _ p r e d = r e l u ( d o t ( W , X ) + b ) y\_ pred=relu(dot(W,X)+b) y_pred=relu(dot(W,X)+b)
训练过程

  1. 抽取训练样本x和相应目标y组成数据批量
  2. 在x上运行网络(前向传播),得到预测值y_pred
  3. 计算网络在这批数据上的损失,用于衡量y_pred和y之间的距离
  4. 更新网络的所有权重,使网络在这批数据上的损失略微下降

训练的过程就是得到合适的W和b,使得y_pred与y之间的距离非常小。但是如何更新网络权重W???

考虑一个权重 w i w_{i} wi,初始值为0.3,前向传播后得到损失为0.5;将 w i w_{i} wi变为0.35,重新进行前向传播,损失增大到0.6;如果将 w i w_{i} wi变为0.25,损失减小到0.4,这说明 w i w_{i} wi减小有助于损失最小化。

对于网络中大量的权重,采用这一方法:计算损失(loss_function)相对于权重(W)的梯度,向梯度的反方向改变权重,从而使网络损失减小。

一元函数举例:

在这里插入图片描述

w 0 w_{0} w0左侧:损失函数相对于 w w w的导数为,为使损失函数最小,则 w w w沿正方向移动;
w 0 w_{0} w0右侧:损失函数相对于 w w w的导数为,为使损失函数最小,则 w w w沿负方向移动;

同样的,在多元函数上,导数可以推广到梯度上。
y _ p r e d = d o t ( W , X ) y\_pred=dot(W,X) y_pred=dot(W,X) l o s s _ v a l u e = l o s s ( y _ p r e d , y ) loss\_value=loss(y\_pred,y) loss_value=loss(y_pred,y)
输入数据 X X X y y y保持不变,讨论 W W W的变化如何影响 l o s s _ v a l u e loss\_value loss_value。可以将 l o s s _ v a l u e loss\_value loss_value看作 W W W的函数, l o s s _ v a l u e = f ( W ) loss\_value=f(W) loss_value=f(W),对于 f ( W ) f(W) f(W),将 W W W向梯度的反方向移动来减小 f ( W ) f(W) f(W),即减小 l o s s _ v a l u e loss\_value loss_value

函数的最小值是导数为0的点对应的函数值, l o s s _ v a l u e loss\_value loss_value最小值为梯度(对W的梯度)为0的点对应的值,如上图,即 l o s s _ v a l u e ( w ′ ) loss\_value(w') loss_valuew

上述训练过程修改为:

  1. 抽取训练样本x和相应目标y组成数据批量
  2. 在x上运行网络(前向传播),得到预测值y_pred
  3. 计算网络在这批数据上的损失,用于衡量y_pred和y之间的距离
  4. 计算 l o s s loss loss相对于 W W W的梯度(一次反向传播)
  5. W W W沿着梯度的反方向移动一点,比如: W − = s t e p ∗ g r a d i e n t W-=step*gradient W=stepgradient,从而使这批数据损失减小
  6. 重复4,5,直到梯度为0

上述描述的方法为梯度下降,首先初始化参数 W W W,然后迭代更新这些参数使损失函数不断变小,梯度下降法可以分为三种:

  1. 批量梯度下降法(Batch Gradient Descent, BGD):每次使用全部数据计算梯度去更新参数

  2. 随机梯度下降法(Stochastic Gradient Descent, SGD):每次迭代仅选择一个训练样本去计算代价函数的梯度,然后更新参数

  3. 小批量梯度下降法(Mini-Batch Gradient Descent, MBGD):每次迭代中仅使用m个训练样本去计算代价函数的梯度

参考链接:三种类型的梯度下降算法 ;梯度下降法的总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mrs.King_UP

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

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

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

打赏作者

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

抵扣说明:

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

余额充值