卷积特征 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×n
份,上图是分隔了4部分,每一部分去他的统计特征比如可以去平均值或者最大值。这样经过划分就可以得到比较少的特征值了。
池化还有个好处就是平移不变性:
https://www.quora.com/How-is-a-convolutional-neural-network-able-to-learn-invariant-features