什么是CNN
Covolutional Neural Network,卷积神经网络
卷积是指将一些数线性加权,卷起来
一维卷积:
- 三个数a1、a2、a3
- 权值w1、w2、w3
- 卷起来,w1*a1+w2*a2+w3*a3
- 卷积窗口大小为3
二维卷积:
- 九个数a11、a12、a13、a21、a22、a23、a31、a32、a33
- 权值w11、w12、w13、w21、w22、w23、w31、w32、w33
- 卷起来,w11*a11+w12*a12+w13*a13+w21*a21+w22*a22+w23*a23+w31*a31+w32*a32+w33*a33
- 卷积窗口大小为3*3
所以,卷积的本质,是进行滑动的融合(一维沿着一个方向滑动,二维沿着两个方向滑动)
CNN的核心
- 局部连接:仅卷积的部分连接起来,而不像全连接层那样,下一层的每个神经元都和上一层的每个神经元相连
- 权值共享:每一个卷积层(filter)所用的权值是相同的
看懂以下的例子,你就懂CNN了:
卷积用以融合和抽象,子采样用以提取
CNN通用套路
- 原始数据:二维
- 卷积、子采样、卷积、子采样……
- 接上全连接层
- 接上分类层,输出
Keras中的实现
一维卷积:Convolution1D
二维卷积:Convolution2D
池化层:MaxPooling1D、MaxPooling2D、AveragePooling1D、AveragePooling2D