【AI学习笔记10】卷积神经网络CNN反向传播原理 The principle of CNN backpropagation
max pooling在前向传播中,把一个patch中最大的值传递给下一层,其他值会被舍弃掉。因此,在反向传播中,就是将当前梯度直接传递给前一层的某个像素,而让同一个patch中的其他像素值为0。《【CNN基础知识】一文详解反向传播(Backpropagation)在CNN中如何具体实现——卷积、池化(上)》开始推导反向传播原理之前,先回顾一下偏导数(Partial Derivatives)的链式
卷积神经网络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》
【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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)