首页 > 人工智能(Artificial Intelligence) > 卷积神经网络

卷积神经网络(CNN)基本结构

卷积神经网络中有四个主要操作:

  • 卷积
  • 非线性变换(ReLU)
  • 池化或子采样
  • 分类(完全连接层)

输入层

卷积神经网络的输入层可以处理多维数据,常见地,一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组;三维卷积神经网络的输入层接收四维数组。由于卷积神经网络在计算机视觉领域有广泛应用,因此许多研究在介绍其结构时预先假设了三维输入数据,即平面上的二维像素点和RGB通道。

与其它神经网络算法类似,由于使用梯度下降进行学习,卷积神经网络的输入特征需要进行标准化处理。具体地,在将学习数据输入卷积神经网络前,需在通道或时间/频率维对输入数据进行归一化,若输入数据为像素,也可将分布于 [0,255]  的原始像素值归一化至 [0,1] 区间 。输入特征的标准化有利于提升算法的运行效率和学习表现 。

该层要做的处理主要是对原始图像数据进行预处理,其中包括:

  • 去均值:把输入数据各个维度都中心化为0,如下图所示,其目的就是把样本的中心拉回到坐标系原点上。

  • 归一化:幅度归一化到同样的范围,即减少各维度数据取值范围的差异而带来的干扰,比如,我们有两个维度的特征A和B,A范围是0到10,而B范围是0到10000,如果直接使用这两个特征是有问题的,好的做法就是归一化,即A和B的数据都变为0到1的范围。

  • PCA/白化:用PCA降维;白化是对数据各个特征轴上的幅度归一化

隐含层

卷积神经网络的隐含层包含卷积层、池化层和全连接层3类常见构筑,在一些更为现代的算法中可能有Inception模块、残差块(residual block)等复杂构筑。在常见构筑中,卷积层和池化层为卷积神经网络特有。卷积层中的卷积核包含权重系数,而池化层不包含权重系数,因此在文献中,池化层可能不被认为是独立的层。以LeNet-5为例,3类常见构筑在隐含层中的顺序通常为:输入-卷积层-池化层-卷积层-池化层-全连接层-输出。

卷积层(Convolution Layer),这个是CNN特有的,卷积层的激活函数使用的是ReLU。我们在DNN中介绍过ReLU的激活函数,它其实很简单,就是 $ReLU(x)=max(0,x)ReLU(x)=max(0,x)$ 。在卷积层后面是池化层(Pooling layer),这个也是CNN特有的,池化层没有激活函数。

卷积层+池化层的组合可以在隐藏层出现很多次,实际上这个次数是根据模型的需要而来的。当然我们也可以灵活使用使用卷积层+卷积层,或者卷积层+卷积层+池化层的组合,这些在构建模型的时候没有限制。但是最常见的CNN都是若干卷积层+池化层的组合。

输出层

卷积神经网络中输出层的上游通常是全连接层,因此其结构和工作原理与传统前馈神经网络中的输出层相同。对于图像分类问题,输出层使用逻辑函数或归一化指数函数(softmax function)输出分类标签  。在物体识别(object detection)问题中,输出层可设计为输出物体的中心坐标、大小和分类 。在图像语义分割中,输出层直接输出每个像素的分类结果。

1042406-20170301104438813-230726230.png

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。