梯度下降的理解及部分细节

“梯度下降”的理解及部分细节

友情提醒:如果你是查资料想搞明白“梯度下降”是怎么回事找到这里,推荐你别看了,因为这个是我的一些疑问和梳理,不体系不条理,推荐你去搜吴恩达视频,挑梯度下降的那几节连续观看,系统条理。如果还有问题可以看下我们的问题是否一致

最早看过一遍吴恩达老师的深度学习入门视频,不知重点地草草过了一遍。最近才开始写网络,虽然已经是封装好的积木,但是一些细节不懂总是心里过不去那个槛,重新学习了视频,关于“梯度下降”的一些理解特此记录。

何时用梯度下降

关于网络,我们的目标就是学习到一个函数,我输入进x,可以输出相应的y。我们是通过不断的训练来得到这个函数的,那么怎么得到呢。首先我们假设这个函数存在,具体的参数可以随机初始化,然后放入很多的x,让他去计算得到一个y。这个y和真实的y是有差距的,所以再假设一个函数叫损失/代价函数,可以用函数表达出真实值和预测值之间的差距。如果我们能把这个差距变小,说明我们的函数预测效果越好,那么现在的目标就变成了找到这个代价函数的最小值,这就用到了梯度下降。

梯度下降的概念理解

我们要用梯度下降去找到一个函数的最小值,这个最小值对应的参数就是我们要的参数了。我们一般找函数的最小值就是求导,找倒数为0点。所以梯度下降的核心也是求导(分层次求导)。
一个代价函数被多个参数所影响,如果对单个参数求偏导,就会得到一个这个参数和代价函数最终值的关系图,就是把这个代价函数变成了由一个参数所影响的函数,那么我去寻找这个关系图的最低点也就是导数为0的点就是在从这个参数角度去降低最终值,如何寻找最低点呢,就是让这个参数在目前点的斜率方向上挪动,比如下图,只要按照斜率方向去移动,那么值一定是在减小的。每个参数都这样子做,整个函数的值就会都下降。
从这里我们就可以看出,关键点子啊如何求斜率,也就是导数。
在这里插入图片描述

对梯度下降的疑问

第一:代价函数是一个求和,如何理解求和以及在计算的过程中怎么处理求和这回事的。
解答:l是损失函数,是计算一个样本的损失,我们也知道一个损失函数如何计算对某个参数的偏导。j是代价函数,是所有函数的损失和的均值,我们的最终目标是使j最小,根据式子可以看出j对某个参数求偏导,就是损失函数对每个样本的求偏导的和的平均,所以求和是不存在理解问题。
经过计算我们知道,斜率最终就是拿预测值和真实值以及输入值就可以求出来(在下面会说),那么不同的样本计算出来的斜率就是不同的,你让这个参数往下90度走,他让45度走,所以求和平均是把所有样本的斜率综合了一下在这里插入图片描述
关于求和的细节计算,要么是把损失函数拿出来,计算每个样本的损失函数然后遍历每个样本,再求和求平均。最终大家采用的都是向量化,就是用矩阵的形式多个样本一起计算,一起求损失,一起求导。
在这里插入图片描述
第二:求导是怎么进行的,因为有那么多x w,谁是参数谁是变量不好弄?
回答:核心在于“分层向后传播”。
不是想象中的直接把代价函数展开成由w x组成的长长的式子,而是从最后一层向前一层层传播,把这层前面的不拆开,只求关于这个的导数,然后再向前求导,就是一个链式求导过程。
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值