手推DNN,CNN池化层,卷积层反向传播

反向传播算法是神经网络中用来学习的算法,从网络的输出一直往输出方向计算梯度来更新网络参数,达到学习的目的,而因为其传播方向与网络的推理方向相反,因此成为反向传播。神经网络有很多种,那么它们还有其中包含的一些结构,是如何计算出梯度来的呢,在这里为大家手动推导DNN,池化层,卷积层的求导过程。

DNN反向传播

在这里插入图片描述

DNN的反向传播推导相对来说比较简单,那么在卷积网络中如何反向传播呢,特别是在池化层和卷积层?

池化层反向传播

池化分为平均池化和最大池化,这两种池化在反向传播的时候会有不同。

  1. 平均池化。在反向传播的时候将某个元素平均分成n份分配给前一层,保证池化前后的梯度之和保持不变。
  2. 最大池化。前向传播的时候记录下最大值的位置,反向传播的时候把梯度传给这个位置,其他位置为0。

在这里插入图片描述

卷积层反向传播

卷积层的反向传播计算有些复杂,具体看下面的图,其中rot180(W)表示把卷积核上下翻转一次,接着左右翻转一次。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
欢迎爱好人工智能的小伙伴关注公众号:机器工匠,不定时发布一些关于人工智能的技术、资讯文章,更有面向初学者的系列文章。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/LXYTSOS/article/details/100051256