一、CNN的基本结构
首先我们来看CNN的解百纳结构,一个常见的图像识别CNN模型如下图:
从图中可以看出最左边的图像就是模型的输入层,在计算机中就是若干个矩阵,这点与DNN类似。
接着是卷积层(Convolution Layer),这个层是CNN特有的,卷积层的激活函数是ReLU,该函数其实很简单,公式为: R e L U ( x ) = m a x ( 0 , x ) ReLU(x) = max(0, x) ReLU(x)=max(0,x)。在卷积层后面是池化层(Pooling Layer),这也是CNN特有的网络结构,池化层是没有激活函数的。
卷积层+池化层的组合可以在隐藏层中出现多次,在上图的结构中出现了两次。实际上他们出现的次数可以根据模型的需要调整。当然我们也可以灵活搭配各种结构,如卷积层+卷积层、卷积层+卷积层+池化层,这些在构建模型时没有限制。但是最常见的CNN结构是若干卷积层+池化层的组合。
在若干卷积层+池化层后面是全连接层(Fully Connected Layer,简称FC),全连接层实际上就是DNN的结构,输出层采用的是Softmax层做图像的分类。
从CNN的结构可以看出,CNN相对于DNN,比较特殊的就是卷积层和池化层,只要把卷积层和池化层的原理搞清楚,那么搞清楚CNN就很容易了。