![](https://csdnimg.cn/release/download_crawler_static/89467664/bg1.jpg)
在前面我们讲述了 DNN 的模型与前向反向传播算法。而在 DNN 大类中,卷积神经网络(Convolutional
Neural Networks,以下简称 CNN)是最为成功的 DNN 特例之一。CNN 广泛的应用于图像识别,当然现
在也应用于 NLP 等其他领域,本文我们就对 CNN 的模型结构做一个总结。
在学习 CNN 前,推荐大家先学习 DNN 的知识。如果不熟悉 DNN 而去直接学习 CNN,难度会
比较的大。这是我写的 DNN 的教程:
深度神经网络(DNN)模型与前向传播算法
深度神经网络(DNN)反向传播算法(BP)
深度神经网络(DNN)损失函数和激活函数的选择
深度神经网络(DNN)的正则化
1. CNN 的基本结构
首先我们来看看 CNN 的基本结构。一个常见的 CNN 例子如下图:
图中是一个图形识别的 CNN 模型。可以看出最左边的船的图像就是我们的输入层,计算机理解
为输入若干个矩阵,这点和 DNN 基本相同。
接着是卷积层(Convolution Layer),这个是 CNN 特有的,我们后面专门来讲。卷积层的激活
函数使用的是 ReLU。我们在 DNN 中介绍过 ReLU 的激活函数,它其实很简单,就是
ReLU(x)=max(0,x)����(�)=���(0,�)。在卷积层后面是池化层(Pooling layer),这
个也是 CNN 特有的,我们后面也会专门来讲。需要注意的是,池化层没有激活函数。
卷积层+池化层的组合可以在隐藏层出现很多次,上图中出现两次。而实际上这个次数是根据模
型的需要而来的。当然我们也可以灵活使用使用卷积层+卷积层,或者卷积层+卷积层+池化层的组合,这
些在构建模型的时候没有限制。但是最常见的 CNN 都是若干卷积层+池化层的组合,如上图中的 CNN 结
构。
在若干卷积层+池化层后面是全连接层(Fully Connected Layer, 简称 FC),全连接层其实就
是我们前面讲的 DNN 结构,只是输出层使用了 Softmax 激活函数来做图像识别的分类,这点我们在 DNN
中也有讲述。
从上面 CNN 的模型描述可以看出,CNN 相对于 DNN,比较特殊的是卷积层和池化层,如果我
们熟悉 DNN,只要把卷积层和池化层的原理搞清楚了,那么搞清楚 CNN 就容易很多了。