点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要5分钟
跟随小博主,每天进步一丢丢
作者:陈楠
来源:知乎
整理:机器学习算法与自然语言处理公众号
链接:https://zhuanlan.zhihu.com/p/81675803
阅读本文之前,可以先阅读之前讲述的全连接层的反向传播算法详细推导过程,
已经了解反向传播算法的请自动忽略。
1. 卷积层的反向传播
废话不说,直接上图:
假设输入为一张单通道图像 ,卷积核大小为
,输出为
。为了加速计算,首先将
按卷积核滑动顺序依次展开,如上图所示。其中,
中的红色框代表
中的红色框展开后的结果,将
依次按照此方式展开,可得
。同理可得
,然后通过矩阵相乘可得输出
(
与
等价)。此时,已经将CNN转化为FC,与反向传播算法完全一致,这里不再做详细介绍。
当有 N 个样本,做一个batch训练,即channel=N时,前向与反向传播方式如下图所示:
其中,输入图像channel=3,使用2个 的卷积核,输出两张图像,如图所示。红色框、黄色框代表的是卷积核以及使用该卷积核得到的输出图像
。当输入图像为一个batch时,
的转化方式如上图,首先将输入图像与卷积核分别按单通道图像展开,然后将展开后的矩阵在行方向级联。此时,已经将CNN转化为了FC,与反向传播算法完全一致,这里不再做详细介绍。
2. Average pooling的反向传播
不用求,因为
为常数。
3. Max-pooling的反向传播
遍历 的每一行,找出此行最大值的索引
,然后将
中索引为
的值设为
对应行的值,将此行其余列的值设为
,如上图所示红框所示。假设
中(1,1)处的值是第一行中最大的值,则将
赋值给
中索引为
的位置。最后计算:
。
方便交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
推荐阅读:
【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文
【一分钟论文】IJCAI2019 | Self-attentive Biaffine Dependency Parsing
【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译
【一分钟论文】Semi-supervised Sequence Learning半监督序列学习
【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing
详解Transition-based Dependency parser基于转移的依存句法解析器
让更多的人知道你“在看”