CNN的一点理解----filters

filters

1、提到CNN,大家应该都见过这张图:

CNN的一点理解----filters

(一开始的时候我对这张图其实是不理解的,不知道是什么意思)

今天有一点新的理解,决定写下来,以备后续查看。

2、首先我们来看feature map的含义:

大家可以理解成,一个feature map就代表一个二维矩阵(图片尺寸大小);对于一张图片来说,灰度图就只有1个feature map;对于一张彩色图片是有3个feature map的(红绿蓝)。

3、卷积convolution

卷积大家都知道,基本可以这么理解:一个卷积核在图片上进行移动,计算乘积求和,从而得到卷积过后的图片(矩阵)。这样我们可以得出结论,卷积其实可以对feature map可以不做改变(也可以改变),只是对图片的尺寸大小有改变(如果不做填充的话(tf.pad))。

4、filters

filters的含义其实和feature map的意思类似,我们指定了多少的filters那么就是把一张图片变成了多少个通道的图。

5、回到我们上面1中提到的那张图来说:

一个convolutions将一张图(灰度图)变成了6个feature map的图片。这里其实大家可以理解成很多含义:1、将图片的颜色进行扩展成了6个颜色;2、将图片的内容中的边角等的几何图形分别抽取到了6个方向;3、将图片的光学波长或相位等信息进行投影操作;4、……;

6、总结:

我想这就是为什么CNN有很大的成功的秘诀,你用不同的卷积核,得到的不同的图像矩阵,这些矩阵其实类似的操作是将一个整体的波动,投影到不同的单一波动上了(和傅里叶变换有异曲同工之妙)。再有神经网络的一种选择拟合的方法(**函数),这样就使得在抽取单一波动之后,对其决定最后label的波动逐渐加强,并且舍弃了和label不相关的波动;所以在单一预测任务上实现了很大的成功,但是由于神经网络的**性和参数固化性,导致其不能很好的在多任务中起很大的作用,所以才有了后面的迁移学习,从这方面说神经网络的发展方向,应该在于快速学习推理的能力(类似人类的学习过程);人类学习是可以从记忆中快速学习,并总结出新的规律,但神经网络(CNN)目前还不具备这样的能力,只是从已有的数据和label中学习已有的东西。