Convolutional Neural network
引入
CNN常常被用在影像处理上
为什么呢?
因为如果输入图片后,紧跟全连接层,那么参数过多。一开始要做一些“简化”,这就是CNN的引出。
CNN V.S. DNN
在下图中:
1.第一个layer的neuron,它就是最简单的classifier,它做的事情就是detect有没有绿色出现、有没有黄色出现、有没有斜的条纹出现等等
2.那第二个layer,它做的事情是detect更复杂的东西,根据第一个layer的output,它如果看到直线横线,就是窗框的一部分;如果看到棕色的直条纹就是木纹;看到斜条纹加灰色的,这个有可能是很多东西,比如说,轮胎的一部分等等
3.再根据第二个hidden layer的output,第三个hidden layer会做更复杂的事情,比如它可以知道说,当某一个neuron看到蜂巢,它就会被activate;当某一个neuron看到车子,它就会被activate;当某一个neuron看到人的上半身,它就会被activate等等
问题是:当我们直接用一般的fully connected的feedforward network来做图像处理的时候,往往会需要太多的参数
所以:CNN做的事情其实是,来简化这个neural network的架构,我们根据自己的知识和对图像处理的理解,一开始就把某些实际上用不到的参数给过滤掉
Why can we discard some parameters
reason1:Some patterns are much smaller than the whole image
reason2:The same patterns appear in different regions.
reason3:Subsampling the pixels will not change the object
The whole CNN structure
Convolution
Property1:只用看部分图案
Property2:可以出现在任何位置
Feature Map
对于彩色图片:
Convolution V.s. Fully connected
filter可以理解是特殊的“neuron”
CNN的本质,就是减少参数的过程
Max Pooling
作用是去subsampling
Flatten
其他内容参考:链接: lhttps://blog.csdn.net/weixin_44406200/article/details/104392592?spm=1001.2014.3001.5501.