卷积神经网络(Convolutional Neural Network)
1、什么是CNN
什么卷积、为什么用CNN
2、实现CNN的步骤
input——>convolution——>max pooling——>...——>flatten——>fully connected network——>output
3、如何用keras搭建一个CNN
4、CNN分析
1、什么是CNN
1)什么卷积
1、卷积本质上是“加权求和”,在信号处理中是时间上的“加权求和”,在图像处理中是空间上的“加权求和”
2、在信号处理中,系统的响应不仅与当前时刻系统的输入有关,也跟之前若干时刻的输入有关,比如在t3时刻的响应Y(3)=Y(0)+Y(1)+Y(2),但常常系统中不是这样的,因为0时刻的响应不太可能在1时刻仍旧未变化,那么怎么表述这种变化呢,就通过h(t)这个响应函数与x(0)相乘来表述,表述为x(m)×h(t-m),公式里的m指的 t 的变化量
参考:http://muchong.com/html/201001/1773707.html
2)为什么用CNN
- 机器识图的过程:机器识别图像并不是一下子将一个复杂的图片完整识别出来,而是将一个完整的图片分割成许多个小部分,把每个小部分里具有的特征提取出来(也就是识别每个小部分),再将这些小部分具有的特征汇总到一起,就可以完成机器识别图像的过程了。
CNN的参数比全连接神经网络少得多,为什么CNN只用较少的参数就可以用于处理图像呢?这是因为图像具有以下三点特征:
- 一些模式比整张图片小得多,例如“鸟喙”就比整张图片小得多;
- 同样的模式可能出现在图像的不同区域,例如“鸟喙”可能出现在图片的左上方也可能出现在图像的中间;
- 对图像的降采样不会改变图像中的物体。
CNN的卷积层的设计对应着前两点,池化层的设计对应着第三点。
2、实现CNN的步骤
input——>convolution——>max pooling——>...——>flatten——>fully connected network——>output
1、卷积层(CNN实际上是训练局部特征的)
- 对应Property1:每一个Filter(待训练的参数)代表一个局部特征,假设现在两个特征(Filter1和Filter2)
- 对应Property2:用Filter1就能探测出在不同位置的同一个flatten,而不需要用不同的Filter
如果图片是彩色的,也就是说它是三通道的