DNN in hard way:卷积层
来源:互联网 发布:施耐德网络面板接线图 编辑:程序博客网 时间:2024/06/01 22:04
卷积层
在上面的几篇文章中,我们已经看到了全链接层的威力,但是,这还远远不够。在本文中,我们将看到DNN的一个重要特性,卷积层。
熟悉信号处理的朋友对于卷积的概念不会陌生,这就是我们常用的滤波。只是在很多应用场景中,不是我们常见的一维滤波,而是图像处理中常见的2D滤波(比如最常见的锐化,就是一个简单的高通滤波)。在深度学习的术语中,滤波器被叫做卷积核(kernal)。
在以图像为输入的DNN网络中,一个卷积核其实是针对于输入所有通道的一个滤波器组(group of filters)。比如以常见的MNIST数据为例,每个输入数据是28x28x3的像素集合(28x28是尺寸,3是RGB 通道)。一种常见的卷积核尺寸是5x5x3,就是说每5x5x3的立方体内所有的像素点都与系数做内积,得到输出的特征图上的一个点。
卷积核的常见参数包括
经过简单的计算可以得到,在长或者宽的维度上,输入尺寸
一般而言,为了简化控制流,我们会约定
下面这篇文章对于卷积层的归纳相当不错,对比来看就会发现,还是信号处理中熟悉的味道 :)。
https://zhuanlan.zhihu.com/p/30074309?utm_source=wechat_session&utm_medium=social
卷积层的计算
正向传播
卷积层的正向传播和反向传播的基本运算是单通道的2D卷积(滤波)。为了简化下文的推导和展示,本文添加了一个虚拟层来表示单通道 2D卷积的输出。虚拟层进行加权求和之后可以得到卷积层的真正输出。
我们定义,
从上面的计算可以看到,一个卷积层需要的参数的数目是
反向传播
简单起见,在进行反向传播的推导过程中,本文将仅仅计算最简单的
从上面的式子可以看出,卷积层的反向传播也是2D卷积的求和,只是区别在于要将二维卷积系数进行上下和左右的反转。
系数更新
卷积层的系数更新跟全连接层并没有太大的变化。
深度可分离的卷积(Depth-Separatable)
下面一部分是对于深度可分离的卷积的一点想法。如上面所述,可以将一个完整的卷积层拆分为两层,一个是二维的平面卷积,另外一个是将平面卷积结果作为输入的一维卷积(类似于全连接层)。
这样的话,参数的数目将为
我们来分两步看反向传播。
- DNN in hard way:卷积层
- 深度学习:CNN RNN DNN 区别 卷积层或是LSTM单元
- learning python in the hard way习题1~5的附加题练习
- learning python in the hard way习题6~10的附加题练习
- learning python in the hard way习题11~15的附加题练习
- learn the python in hard way习题16~20的附加习题
- earn the python in hard way习题21~25的附加习题
- earn the python in hard way习题26~30的附加习题
- earn the python in hard way习题31~35的附加习题
- learn the python in hard way习题36~39的附加习题
- 卷积层
- 卷积层
- 卷积层
- learn lua the hard way
- Learn Python The Hard Way
- Learn Python The Hard Way
- 《Learn Ruby the Hard Way》
- 《Learn Vimscript the Hard Way》
- sdfgfgh法规胡
- 手动修改后缀名方式实现ios打ipa包
- Servlet的url-pattern匹配规则
- Java 接口回调机制
- Oracle数据库学习笔记
- DNN in hard way:卷积层
- MySQL--多表更新
- Matlab中对字符串的处理(转 备查)
- Java内存区域的划分
- 独家 | 社交媒体假新闻检测方法及发展方向(附数据集)
- 啊啊啊
- 工厂模式与抽象工厂模式
- 【C#与.NET程序设计】(2)- C#基本数据类型及控制结构
- 使用小米手机开发调试遇到无法安装APK的问题