文章目录
Why CNN for Image
当我们直接用一般的fully connected的feedforward network来做图像处理的时候,往往会需要太多的参数
所以,CNN做的事情其实是,来简化这个neural network的架构,根据自己的知识和对图像处理的理解,一开始就把某些实际上用不到的参数给过滤掉
虽然CNN看起来,它的运作比较复杂,但事实上,它的模型比DNN还要更简单,就是用(先验知识)prior knowledge,去把原来fully connected的layer里面的一些参数拿掉,就变成CNN
在影像处理里面,如果在network的第一层hidden layer里,那些neuron要做的事情是侦测有没有一种东西、一种pattern(图案样式)出现,那大部分的pattern其实是比整张image要小的,所以对一个neuron来说,想要侦测有没有某一个pattern出现,它其实并不需要看整张image,只需要看这张image的一小部分,就可以决定这件事情了
每一个neuron其实只要连接到一个小块的区域就好,它不需要连接到整张完整的图,因此也对应着更少的参数
同样的pattern,可能会出现在image的不同部分,但是它们有同样的形状、代表的是同样的含义,因此它们也可以用同样的neuron、同样的参数,被同一个detector检测出来
可以要求这些功能几乎一致的neuron共用一组参数,它们share同一组参数就可以帮助减少总参数的量,即参数共享
利用subsampling这个概念把image变小,从而减少需要用到的参数量
The whole CNN
卷积神经网络的总体架构
CNN – Convolution
它侦测的时候,并不会去看整张image,它只看一个3*3范围内的pixel,就可以判断某一个pattern有没有出现,这就考虑了property 1
同一个pattern出现在image左上角的位置和左下角的位置,并不需要用到不同的filter,我们用filter1就可以侦测出来,这就考虑了property 2
Feature Map(特征映射)
卷积和神经网络的联系