CNN全览
CNN主要包含卷积和池化两个操作
卷积层解决了两个问题:
- 有时,我们不用检测整个图片,只用检测图片的一部分
- 一样的部分可能出现在图像的不同部分。
池化层解决了一个问题:
- 图片清晰度不高依然可以辨识
所以,CNN并不能自动辨识不同尺度的相同图像,需要加一些额外手段。
CNN细节
1、卷积核是有z轴的,z轴大小对应了输入图像的channel,假设现在又一个m×n×n的图像,则一个卷积核的大小需要是m×k×k,运算后产生一个1×?×?的新map,假设有2个卷积核,则产生2×?×?的新map,即卷积核的数量决定了新生成的map的channel数。
2、convolution和fully connected的关系
卷积层,其实相当于全连接层拿掉了一些weight+weight参数共享,假设只有1个channel,卷积核的大小为k×k,有n个卷积核,则卷积层需要的参数个数为n×k×k
3、Flatten
一个卷积核输出一个feature,n个卷积核就输出n个feature(1×?×?的map),flatten做的事情就是把n个feature拉直。
4、反卷积
反卷积是卷积的反向操作,用于将图片还原到原来的尺寸,还原时的padding和步长有固定的计算步骤,暂时不展开详述。