1.一个样本反向传播的过程:
首先,一个样本通过网络得到一个损失
它在网络的传播过程中会记录下他经过每一层之后的计算结果
当然,损失值也是这些结果之一
接下来就开始反向传播了
记住一个规则,每一层的梯度更新值和两个因素有关(梯度就是偏导数)
第一,网络前向传播过程中在这一层计算后得到的值 第二:这一层的下一层的梯度值
第一融合第二得到本层的梯度值
最后得到一个梯度值,然后干啥?
得到梯度值就可以更新参数了啊
参数 = 参数 - 学习率*梯度值
2.那么如果一个batch有200张图片,应该怎么反传呢?请开始你的演讲
一个图片网络梯度更新一次,那么200张图片作为一个batch呢?
也是更新一次!
为什么是一次,他在每一层都会有200个计算副本,都会有200个梯度,他会把他们加起来取平均
用平均值去更新梯度~更新网络
3.那么为什么要避免极端值
第一个原因:
在一个batch中,我们希望每个样本都起到作用,L2使用的二次函数的增长很可怕,如果有几个极端值,那么batch中其他的样本就起不到作用了
为什么起不到作用?很简单,取平均啊~~取平均啊~~~
第二个原因~
你知道学习率大了网络会发散,对吗?为什么会发叁?
因为梯度更新的幅度太大了
我们再看这个式子:参数 = 参数 - 学习率*梯度值
大声告诉我,梯度更新幅度除了与学习率有关还和什么有关!
是下一层梯度值和本层前向传播的结果值啊
【本层前向传播咋可能有损失值!!!难道你中间层还有lable??? 没有lable哪里来的损失】
那么如果l2损失遇到极端值,最后一层的损失会很大。然而它参与梯度计算
同样会导致发散~
4.那为啥还要有L2损失,既然他这么不好
一个原因!
平滑~容易求导~