反向传播超清晰理解加推导

反向传播超清晰理解+推导

我们知道,输入值的正向传播会得到有意义的输出值,那么误差的反向传播会得到什么呢?得到的东西有什么意义吗?误差反向传播更新W、b有什么依据吗?又有鸡毛用呢?

*总结一下就是:(1)误差通过一个神奇的反向传播过程会越来越小,而通过(2)公式的推导可以得知代价函数J只和W&b有关。(3)梯度下降就是调整W&b来减小J,达到一个所谓的最优,这样你在实际使用这个网络的时候(只有正向传播),会得到一个所谓最优的输出Y。因为整个过程中起作用的只有W&b,那些什么a、z、激活函数不过是运算过程中的中间代谢物和规则而已。

接下来我们对总结中标记的问题作出回答。

1、为什么误差通过一个神奇的反向传播过程会越来越小?

对于定义的代价函数J,可以很明显的看出这是一个J关于a的开口向上的二次函数,一定存在极小值点,我们又知道这个极小值点只和他的参数有关(x=-b/2a),这里就是包含在a中的W&b。
代价函数的定义
(也可能会是其他的凸函数,但保证有极小值点是一定的)
反向传播时会用到梯度下降,直白点就是找到W&b使J能取到这个最小值,而y-a就是那个误差。

2、公式的推导证明J只和W&b有关

借图如下,忽略细节,直接以向量表示开始,便于整体的快速理解,即
各参数向量表示
3层MLP
问题2的证明
J只和W&b有关对吧。

3、梯度下降就是调整W&b来减小J,达到一个所谓的最优

梯度下降为什么能减小J已经在第一个问题中说了,而之所以说是所谓的最优,是因为得到的并不是100%最优的选择,这个问题就先不说了。
重点是最后一层的误差我们可以直接通过y-a得到,那么隐藏层的误差了?其实实际的误差只有一个——就是输出层的误差,隐藏层并不存在真正的误差,它们不过是中间产物而已。
所以这里有个残差的定义:
在这里插入图片描述
由它可以推导出反向传播的第一大公式 BP1
BP1
在这里插入图片描述
其实都一样。
因为y只存在于最后一层,可以这么定义残差,但传入隐藏层的时候就没有下一个残差了,怎么办?
BP2
BP2
由于nl 层是输出层,我们从nl-1来计算残差,即
BP2推导
我们把nl和nl-1关系切换到隐藏层l+1和l层,即可得
在这里插入图片描述
下面来看BP3
BP3
BP3推导
BP4
BP4
BP4推导
完全写成向量形式就是:
4BP向量表示
整个推导只要一步步来就没啥问题,最大的问题就是里面的上下标,这里推荐看着那个三层的网络去写。尤其是在求W的偏导时,并不是一一对应,需要注意!
文献
这种东西也不要多看,大家用的标记都不一样,看的越多越懵逼,这里推荐两个文献,仔细看,完全够用。
[1]:http://deeplearning.stanford.edu/wiki/index.php/反向传导算法
[2]: https://blog.csdn.net/qq_32865355/article/details/80260212

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CNN(卷积神经网络)是一种常用的深度学习模型,用于图像识别、目标检测等任务。而反向传播是CNN中用于训练网络的关键步骤之一。 反向传播(Backpropagation)是指通过计算误差(即预测值与真实值的差异)来调整神经网络的权重和偏置,以提高模型的预测准确度。在CNN中,反向传播的实现主要包括两个步骤:前向传播和反向传播。 首先,进行前向传播。首先将输入数据通过卷积层进行卷积运算,提取出图像的特征。然后,通过激活函数(如ReLU)来引入非线性。接下来,利用池化层来减小特征图的尺寸,并保留更显著的特征。最后,将处理后的特征输入到全连接层中,进行分类或回归等任务的预测。 其次,进行反向传播。首先,计算预测值与真实值之间的误差。然后,通过链式法则,将误差从输出层向输入层反向传播,并更新每个连接权重和偏置的数值。这样,网络中每个神经元的梯度都可以通过反向传播得到,从而调整网络参数,使其逐渐逼近真实值。此过程可以利用梯度下降等优化算法来完成。 具体地讲,反向传播过程主要分为四个步骤:计算损失函数对输出层的输入的偏导数、计算损失函数对输出层的权重的偏导数、计算损失函数对输入层的权和的偏导数、计算损失函数对输入图像的偏导数。通过不断迭代这四个步骤,不断更新参数,从而提高网络的训练效果。 综上所述,CNN中的反向传播通过计算误差来调整网络的权重和偏置,以提高模型的准确度。这个过程主要包括前向传播和反向传播两个步骤,通过不断地更新参数,使得网络逐渐逼近真实值,从而达到优化模型的目的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值