卷积神经网络CNN反向传播原理 The principle of CNN backpropagation

一、链式法则Chain rule

开始推导反向传播原理之前,先回顾一下偏导数(Partial Derivatives)的链式法则:【1】【2】【3】

 

图中,  L代表损失函数(Loss Function),对x的偏导数为:

二、反向传播backpropagation公式推导 【4】【5】

1. 以如下卷积为例:

2. 卷积运算的动态图:

3. 对Filter F的链式求导公式如下:

    

4. 对Input X的链式求导公式如下:

用矩阵表示:

5. 总结链式求导公式如下:

三、Pooling的反向传播 【6】

1. max pooling

max pooling在前向传播中,把一个patch中最大的值传递给下一层,其他值会被舍弃掉。因此,在反向传播中,就是将当前梯度直接传递给前一层的某个像素,而让同一个patch中的其他像素值为0。

2. average pooling

在反向传播中,就是把某个像素的值平均分成 n 份分配给上一层。

参考文献(References):

【1】 Fei-Fei Li & Andrej Karpthy & Justin Johnson 《Lecture 4: Backpropagation and Neural Networks part 1》

cs231n-2016-winter/lecture-slides/winter1516_lecture4.pdf at master · maxim5/cs231n-2016-winter · GitHub

【2】Andrej Karpathy 《CS231n Winter 2016: Lecture 4: Backpropagation, Neural Networks 1》 https://www.youtube.com/watch?v=i94OvYb6noo

【3】Pavithra Solai 《Convolutions and Backpropagations》

https://pavisj.medium.com/convolutions-and-backpropagations-46026a8f5d2c

【4】Rukayat Sadiq 《CNN BackPropagation Fall 2021》

https://deeplearning.cs.cmu.edu/F21/document/recitation/Recitation5/CNN_Backprop_Recitation_5_F21.pdf

【5】ESRSchao 《【CNN基础知识】一文详解反向传播(Backpropagation)在CNN中如何具体实现——卷积、池化(上)》

【CNN基础知识】一文详解反向传播(Backpropagation)在CNN中如何具体实现——卷积、池化(上)_cnn前向传播和反向传播-CSDN博客

【6】Jackie_AI  《Pooling层的作用以及如何进行反向传播》

【AI学习笔记10】卷积神经网络CNN反向传播原理 The principle of CNN backpropagation

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐