UFLDL 11 卷积与池化 convolution pooling
2016-05-11 20:29
295 查看
卷积特征 convolution
之前我们都是用很小的图片来做示范,比如8x8,但是很多图片是很大的,比如是100x100,假设我们需要在隐含层提取100个特征,那么一共需要的参数有100x100x100=10w个参数,参数太多显然是不合适的,至少计算速度就会被降低。于是乎,我们受到动物视觉中某些神经只受局部区域的刺激的启发,每次只将图像局部的一小块接入网络,计算我们需要的特征,训练特征(计算分类前的部分)。
提取特征的过程,举例说明如下:
如上图,假设原图像是5x5像素的,我们选取的块是3x3像素的,网络的隐藏层只有1个单元。这样每次选取3x3接入网络,会得到一个激活值,然后逐渐滑动窗口取convolved features,横向可以有5-3+1=3个,纵向也可以有3个,那么每张图可以得到9个卷积特征。
池化 pooling
按照上面的方法,如果我们图片是96x96的,选取的块是8x8,选取400个特征,那么我们一张图片就会得到892 * 400 = 3,168,400 个特征,然后可以用这300+w个特征来分类。说好的简化呢?!用这么多特征来分类隐隐的疼,所以我们有了以下面的处理方法:
如上图,可以将卷积输出的特征,分隔成不相重合的m×nm\times n份,上图是分隔了4部分,每一部分去他的统计特征比如可以去平均值或者最大值。这样经过划分就可以得到比较少的特征值了。
池化还有个好处就是平移不变性:
https://www.quora.com/How-is-a-convolutional-neural-network-able-to-learn-invariant-features
相关文章推荐
- NYOJ 832合并游戏(状态压缩dp)
- 图 邻接链表的拓扑排序
- asp.net AdRotator控件
- mount命令详解
- 模块hashlib
- ubuntu 安装 右键终端 eclpse 远程终端
- Mysql常用函数
- Android程序报错,不能再console捕捉并定位到错误行,怎么办?
- 在源码环境中编译Android studio项目时的mk脚本编写
- LeetCode:Missing Number
- POJ2975(Nim游戏)
- PHP的常量
- 4种方法让SpringMVC接收多个对象
- 两种方式实现checkBox readonly功能
- C++第5次实验-数组分离
- 生产环境参数实例及分析【生产环境实例增加中】
- CTRL+SHIFT
- [置顶] iOS面试题积累和总结
- marquee标签实现页面内容的滚动效果
- 微信的平台搭建java http://blog.csdn.net/gebitan505/article/details/44595265