深度学习---之pooling层的作用与缺陷
来源:互联网 发布:管家婆进销存软件 价格 编辑:程序博客网 时间:2024/06/07 00:33
转载+原创
作者:谢志宁
链接:https://www.zhihu.com/question/36686900/answer/130890492
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://www.zhihu.com/question/36686900/answer/130890492
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
之前看懂过pooling层的作用,两个月没看也没用,又忘记了,这回记录下来
这里举一个直观的例子(数字识别),假设有一个16x16的图片,里面有个数字1,我们需要识别出来,这个数字1可能写的偏左一点(图1),这个数字1可能偏右一点(图2),图1到图2相当于向右平移了一个单位,但是图1和图2经过max pooling之后它们都变成了相同的8x8特征矩阵,主要的特征我们捕获到了,同时又将问题的规模从16x16降到了8x8,而且具有平移不变性的特点。图中的a(或b)表示,在原始图片中的这些a(或b)位置,最终都会映射到相同的位置。
个人觉得主要是两个作用:
1. invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)
2. 保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力
这里举一个直观的例子(数字识别),假设有一个16x16的图片,里面有个数字1,我们需要识别出来,这个数字1可能写的偏左一点(图1),这个数字1可能偏右一点(图2),图1到图2相当于向右平移了一个单位,但是图1和图2经过max pooling之后它们都变成了相同的8x8特征矩阵,主要的特征我们捕获到了,同时又将问题的规模从16x16降到了8x8,而且具有平移不变性的特点。图中的a(或b)表示,在原始图片中的这些a(或b)位置,最终都会映射到相同的位置。
(2) rotation invariance:
下图表示汉字“一”的识别,第一张相对于x轴有倾斜角,第二张是平行于x轴,两张图片相当于做了旋转,经过多次max pooling后具有相同的特征
下图表示汉字“一”的识别,第一张相对于x轴有倾斜角,第二张是平行于x轴,两张图片相当于做了旋转,经过多次max pooling后具有相同的特征
(3) scale invariance:
下图表示数字“0”的识别,第一张的“0”比较大,第二张的“0”进行了较小,相当于作了缩放,同样地,经过多次max pooling后具有相同的特征
下图表示数字“0”的识别,第一张的“0”比较大,第二张的“0”进行了较小,相当于作了缩放,同样地,经过多次max pooling后具有相同的特征
以下补充纯属原创,如果转载请注明出处:
补充:
第三个尺度不变性,也就是增大了感受野,即这个0原来被16X16的表示,经过pooling后,可以用4X4的图表示了,假如一个2X2的卷积核就能够多框进去一些信息,提取的特征也越准确,你想象一下,卷积核能够看到更多的信息,是不是提取特征越准确啊。
那我为了增大感受野,我一开始就用跟图像一样大的卷积核,那不就感受野更大了?答:不行,因为卷积层越深模型的表征能力越强,即卷积次数越多越好,你用跟图像一样大的,得到了1X1的feature map,但是一下降维这么多,会导致很多重要信息丢失,你再进行卷积的时候效果就每那么好了。
你说降维导致信息丢失,那即使第一次不降维到1X1到最后面也会降维到1X1或者很低的维度信息不一样丢失了吗?
第一次降维丢到1X1会导致一次性失信息太多了,之后的卷积的表征能力就没那么强了,而逐渐降维一次性丢失的信息没有那么多,所以以后每一次卷积表征能力相对一次性降维更强
pooling的缺点:
pooling能够增大感受野,让卷积看到更多的信息,但是它在降维的过程中丢失了一些信息(因为毕竟它变小了嘛,只留下了它认为重要的信息),所以pooling增大感受野的前提是丢失了一些信息(即降低了分辨率),这对segmentation要求的精确度location有一定的影响。
所以pooling层跟segmentation有一定的冲突,但是你不用又不行,感受野可以帮你提高准确率,而且还可以降计算量,增强模型泛化能力,所以感受野,分辨率,参数三者很难共存,现在有很多方法可以改进这个,我还没看,等后面慢慢去看!!~~
纯属个人思考,欢迎指正交流
阅读全文
0 0
- 深度学习---之pooling层的作用与缺陷
- 【深度学习】caffe之pooling层
- CNN中pooling层的作用
- CNN—pooling层的作用
- 深度学习之caffe Layers-Pooling池化层
- caffe之pooling层
- 深度学习---之卷积层与全连接层的区别
- 深度学习之caffe的BN层
- pooling 与 unpooling 深度解析
- caffe之(二)pooling层
- 深度学习之----Dropout浅层理解与实现
- caffe学习笔记24-Pooling层学习
- caffe用python设置网络的Convolution层Pooling层和LRN--caffe学习(4))
- 深度学习介绍(五)pooling
- 深度学习: pooling (池化 / 降采样)
- 深度卷积网络中的Global average Pooling 层
- 区分深度学习与浅层学习
- 神经网络与深度学习笔记(五)validation_data 的作用
- 循环神经网络RNN:时间序列数据的首选神经网络
- 希尔排序
- RunLoop已入门?赶紧来应用一下
- android 多线程断点续传下载
- 购物车二级列表
- 深度学习---之pooling层的作用与缺陷
- Linux命令
- robotframework自动化系列:删除操作流程以及总结
- ART异常处理机制(2)
- hibernate框架的查询优化(二十三)
- Centos6.8 安装MySQL5.7
- strings.xml里字符串拼接、占位符和常用替换符号
- log4j
- ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法