cnn系列文章四 --池化层和简单卷积网络示例
cnn系列文章三 --padding和strides详解
一句歌词继续中:
《霜雪千年》
苔绿青石板街
斑驳了流水般岁月
小酌三盏两杯
理不清缠绕的情结
典型的卷积神经网络
- convolution (Conv) 卷积层
- pooling (pool) 池化层
- fully connected (FC) 全连接层
池化层
1. max pooling(最大池化)
简单的说就是使用过滤器对图像进行区域分割,然后输出每个区域的最大值。
比如下图使用 2 × 2 2\times 2 2×2的过滤器,选择步长为2,则然后输出 4 − 2 2 + 1 = 2 \frac{4 -2}{2} + 1 = 2 24−2+1=2即 2 × 2 2\times2 2×2的图像,每个像素点的值为原图像中过滤器覆盖区域的最大值
最大池化的直观理解:
还记得垂直边缘检测的例子吗,在边缘处,输出图像的值很大。也就是说,当输出图像的值很大时,意味着提取了某些特征。
而最大池化的操作就是,只要在任何一个象限中提取到某个特征,就都会保留到最大池化的输出结果中。如果提取到某个特征,则保留其最大值,比如上图中左上角的9,而如果为提取到特征,则最大池化后的输出仍很小,比如右上角的2.
在实际工作中,加入最大池化后,通常网络表现的会很好。
注意当有多个通道时:是对每一通道分别进行最大池化操作,不会改变图像的通道数目。
2.average pooling (平均池化)
顾名思义,就是在每个区域上求平均值,作为平均池化的输出值
平均池化用的很少
总结
池化操作不需要训练参数,只有两个超参数:
- f : f i l t e r s i z e f: filter size f:filtersize
- s : s t r i d e s: stride s:stride
常见的超参数有:
f = 2 , s = 2 f = 2, s=2 f=2,s=2将图像的高度和宽度减半
f = 3 , s = 2 f=3, s=2 f=3,s=2
很少用padding,即 p = 0 p=0 p=0
input: n H × n W × n C n_H \times n_W \times n_C nH×nW×nC
output: ⌊ n H − f s + 1 ⌋ × ⌊ n W − f s + 1 ⌋ × n C \lfloor \frac{n_H - f}{s} + 1 \rfloor \times \lfloor \frac{n_W - f}{s} + 1 \rfloor \times n_C ⌊snH−f+1⌋×⌊snW−f+1⌋×nC
卷积神经网络示例
参数设计收LeNet-5启发。我的建议还是在纸上推导一下呢。
接下来看一下网络结构和参数:
来计算几个参数:
我发现208这个参数数量有点没太搞懂
不是 5 × 5 × 3 × 8 + 8 = 608 5 \times 5 \times 3 \times 8 + 8 = 608 5×5×3×8+8=608吗?
- 参数大多集中在全连接层
- 随着网络层深度增加,激活数量在减小,但是数量不能下降的太快,否则会影响网络的表现性能。
卷积神经网络的优势
若是全连接层需要的参数大概是14 million。
- 参数共享
某一个特征检测器可以在所有图像上使用,大量减少参数数量 - 稀疏连接
每一个输出像素值紧依赖于输入很小的输入值,而非全连接层的所有输入值。更容易发现局部特征
通过以上两种方式,cnn结构大量减少参数数量。
接下来讲解tensorflow卷积和池化两个函数。
cnn系列文章四 --池化层和简单卷积网络示例相关推荐
- 1.8 简单卷积网络示例-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 1.7 单层卷积网络 回到目录 1.9 池化层 简单卷积网络示例 (A Simple Convolution Network Example) 上节课,我们讲了如何为卷积网络 ...
- cnn池化层输入通道数_(pytorch-深度学习系列)CNN中的池化层-学习笔记
CNN中的池化层 首先,池化(pooling)层的提出是为了缓解卷积层对位置的过度敏感性. 什么意思? 比如在图像边缘检测问题中,实际图像里,我们的目标物体不会总出现在固定位置,即使我们连续拍摄同一个 ...
- (pytorch-深度学习系列)CNN中的池化层-学习笔记
CNN中的池化层 首先,池化(pooling)层的提出是为了缓解卷积层对位置的过度敏感性. 什么意思? 比如在图像边缘检测问题中,实际图像里,我们的目标物体不会总出现在固定位置,即使我们连续拍摄同一个 ...
- 1.9 池化层-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 1.8 简单卷积网络示例 回到目录 1.10 卷积神经网络示例 池化层 (Pooling Layers) 除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度, ...
- 图像识别(七)| 池化层是什么?有什么作用?
前面的文章 图像识别(番外1)| AI算法攻城狮左手图纸,右手搬砖的真实性以及长图展示Resnet全貌和可视化CNN_董董灿是个攻城狮的博客-CSDN博客_ai图像识别算法中,展示了一张Resnet5 ...
- 深度学习入门 (九):卷积层和池化层的实现
目录 卷积神经网络 CNN 整体结构 卷积层 全连接层存在的问题 卷积运算 乘积累加运算 偏置 填充 (padding) 步幅 (stride) 小结:卷积层的输出特征图的大小 3 维数据的卷积运算 ...
- keras中的卷积层池化层
文章目录 卷积层 创建卷积层 卷积层的格式及参数: 卷积层中的参数数量 卷积层的形状 池化层 keras中的最大池化层 参数 卷积层 创建卷积层 首先导入keras中的模块 from keras.la ...
- 池化层对神经网络的运算速度有什么影响
虽然加入池化层是为了使网络获得抗扭曲,抗拉伸的特性并不完全是为了计算效率考虑,但加入池化层到底对计算速度有什么影响?这里设计了两个网络做对比, 其中一个是有2个卷积层,2层全连接层的神经网络,另一个是 ...
- 34. 池化层 / 汇聚层
1. 池化层 如果我们拍摄黑白之间轮廓清晰的图像X,并将整个图像向右移动一个像素,即Z[i, j] = X[i, j + 1],则新图像Z的输出可能大不相同.而在现实中,随着拍摄角度的移动,任何物体几 ...
最新文章
- aligned_storage简单学习
- Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五)
- SQLSERVER 分页
- 突然想起来,前天是感恩节。
- java 构造方法
- MongoDB(课时30 $group)
- jQuery就业课系列之.jQueryDOM
- Min_25 筛小结
- Android之二维码生成和识别
- Composer帮你轻松管理PHP包 autoload
- 各种编译环境中如何为C++添加命令行参数(Command-line parameter)
- wordpress插件列表
- php zmq demo1
- php 标点符号,php怎么去除标点符号
- SQL Sever 创建视图
- 运行spark及hadoop版本不一致解决方法
- “法外狂徒”张三经典语录
- 【App下载安装量】多渠道统计
- APPH系列相位噪声分析仪和VCO测试仪—输入高达40GHz
- Mysql中数据类型括号中的数字代表的含义