CNN

卷积神经网络-进化史:从LeNet到AlexNet

本系列博客是对刘昕博士的《CNN的近期进展与实用技巧》的一个扩充性资料。

主要讨论CNN的发展,并且引用刘昕博士的思路,对CNN的发展作一个更加详细的介绍,将按下图的CNN发展史进行描述:

CNN_第1张图片

上图所示是刘昕博士总结的CNN结构演化的历史,起点是神经认知机模型,此时已经出现了卷积结构,经典的LeNet诞生于1998年。然而之后CNN的锋芒开始被SVM等手工设计的特征盖过。随着ReLU和dropout的提出,以及GPU和大数据带来的历史机遇,CNN在2012年迎来了历史突破--AlexNet.

CNN的演化路径可以总结为以下几个方向:(后面不说了,重复)

1) 从LeNet到AlexNet
2) 进化之路一:网络结构加深
3) 进化之路二:加强卷积功能
4) 进化之路三:从分类到检测
5) 进化之路四:新增功能模块

CNN

卷积神经网络是一个多层的神经网络,每层都是一个变换(映射),常用卷积convention变换和pooling池化变换,每种变换都是对输入数据的一种处理,是输入特征的另一种特征表达;每层由多个二维平面组成,每个平面为各层处理后的特征图(feature map)。

convolution和pooling的优势为使网络结构中所需学习到的参数个数变得更少,并且学习到的特征具有一些不变性,比如说平移,旋转不变性。以2维图像提取为例,学习的参数个数变少是因为不需要用整张图片的像素来输入到网络,而只需学习其中一部分patch。而不变的特性则是由于采用了mean-pooling或者max-pooling等方法。

以经典的LeNet5结构图为例:

CNN_第2张图片
CNN_第3张图片
CNN_第4张图片

注意:一个map只对应一个偏置(是一个数,不是矩阵),每个特征图并不一定是都与S2层的特征图相连接,有可能只与其中的某几个连接(即可能不是卷积意义上的全连接全连接的),这里就令对应的卷积核为零矩阵即可。

5)S4:pooling

全连接层:1、如果前面一层已经是一个全连接层了(这里的全连接指的是卷积核的大小等于前一层特征图的大小,mine:其实本来是前面所有特征图的所有像素点是输入,前面的卷积只是一种变形,卷积核小于前面输入特征图的大小,则相当于某个输出只是受前面patch即部分像素点的刺激,不属于全连接。现在大小等于前面特征图大小,则当相于输出又所有点刺激),现在就会已经是向量的输入形式,后面再接全连接层,则相当于:

否则跟前面一样,只是卷积核大小等于输入特征图大小:

CNN_第5张图片

Note that a fully-connected layer already includes the non-linearities while for a convolutional layer the non-linearities are separated in their own layer.

注意:一般卷积层(之后会获得特征图)与非线性变换层是分开的:卷积层——》非线性变换层——》pooling层

CNN_第6张图片
CNN_第7张图片

这边解释的也很好,只是有点单一

CNN_第8张图片
CNN_第9张图片
CNN_第10张图片
Fig. 3. Conventional CNN framework interspersed with convolutional layers and max-pooling layers. The fully connected layer followed to do classification.
CNN_第11张图片

mine:特征图指的是卷积之后的那个(不知道又是不是非线性之后的那个),卷积核可以看做是特征检测器

你可能感兴趣的:(CNN)