当前位置 博文首页 > whiteinblue的专栏:深度学习论文理解1:what is the best multi

    whiteinblue的专栏:深度学习论文理解1:what is the best multi

    作者:[db:作者] 时间:2021-06-04 11:26

    本文是09年,Yann LeCun团队的一篇论文,论文主要讨论了卷积结构网络中各个layer的作用,进而探讨一个好的深度结构分类网络应该是什么样子的。

    摘要:在很多目标识别系统的特征提取阶段主要分为三部分:卷积,非线性变换和pooling

    本文提出三个问题:

    1.卷积层后的非线性变换如何应用分类准确率

    2.采用无监督学习的filter,或者监督学的filter比随机权值的filter分类效果更好?

    3.多阶段的特征提取好么?

    本文最后得出结论:

    1,非线性变换和局部对比归一化是非常重要的部分,对于一个好的分类系统。

    2,两阶段的网络分类结果比一阶段的好;更让我们惊讶的是,在使用非线性变换和pooling情况下,一个二阶段的随机filter网络也能够产生好的分类结果。

    3,unsupervised pretraining +finetuning产生了最好的分类结果。

    一.介绍

    对于目标识别问题,一般的做法是,先对图像进行特征提取,然后连接分类器进行分类识别。每一次特征提取都作为一个阶段,每次特征提取一般包含如下过程,卷积,非线性变换,归一化和pooling等几个部分。

    OR系统有很多模型,单阶段+分类器模型;例如sift,hog等,多阶段+分类器模型;各种模型的主要区别在于:1阶段数(特征提取次数),非线性变换类型;filter来源(随机,监督,无监督,人工选择),顶层分类器。直觉上,认为一个纯粹的参数较多的监督学习系统可能会由于标签数据量较小而导致不好的结果;特征提取中的filter需要仔细的挑选(或者训练)才能产生好的分类结果,然而这些直觉是错误了。

    二目标识别系统模型

    特征提取阶段

    1,卷基层(Convolution)

    卷基层详细的介绍参见前面博客

    Filter来源:1,人工选取,sift,hog等 2,利用数据的特征来学习filter,第二种方法的优点是可以递进地学习特征;

    学习filter的方法,通过梯度下降等监督方法学习,此方法学习的参数太多,需要很多标签数据。由于无监督学习filter的方式,不需要标签数据;最后通过无监督的方法来获得数据获得形式,例如DBN,Autoencoder等;这种无监督学习的问题是,filter的学习和分类识别是两个不同的任务。

    2,非线性变换(non-linearity)

    卷积后要进行非线性变换,非线性变换函数有:sigmoid函数,tanh函数,rectifying 非线性(正值部分,绝对值absolutevalue(Rabs本文标识符),平方);,

    3,局部归一化(local contrast normalization )

    非线性变换后常常跟随局部归一化,归一化造作和我们“类似”我们把原始数据归一化变换到[-1 1]区间,通过差性削减(均值削减)和除性削减(除以均值,或者局部最大值),已达到削弱较大的数值,缩小数据范围的目的;本文的作用是引起统一特征图中的邻域像素竞争(通过W卷积的方式)和不同特征图间同一空间位置的竞争(通过n个特征图求和的方式)。

    减法计算过程:初始化服从正态分布的矩阵W,为保证,w=w./(n*sum(W));其中n为特征图的个数。即i=1……n;通过使用w去卷积计算所有的特征图,得到n个卷积后的特征图(由于使用的是same方式的卷积,而不是valid方式卷积,所以卷积后特征图和原特征图大小一样。)原始特征图减去卷积后特征图就完成了“均值削减”

    除法计算:首先计算标准差,对原始特征图进行均值削减后得到n个新的特征图V;对V的每个特征图的像素进行平方计算,然后再次利用归一化后的W进行卷积(same方式进行卷积),然后把卷积的结果求和,得到一张标准差图,每个位置为每个像素的标准差;求平均后,取均值以上的部分后,得到新的标准差图sigma; 再用v除以标准差图,得到归一化后的n个特征图y


    4,Pooling:

    一般有average pooling(Pa),max pooling(Pm)等池化方式,池化窗口本文选择无重叠区域。作用是为了提高鲁棒性,

    5,分类器:

    线性分类器,svm,softmax,bp网等

    三:训练框架

    R和RR:随机filter,监督训练分类器:训练过程中,随机filter并且保持不变

    U和UU:无监督特征学习,监督训练分类器,使用PSD无监督训练算法训练filter

    R+和R+R+:随机初始filter,整个系统通过类似bp网的方式来监督学习,学习中调整filter权值

    U+和U+U+:无监督学习filter,然后通过bp网的方式来监督学习,调整filter值

    ?

    本文的无监督学习算法使用PSD(Predictive Sparse Decomposition)算法,此算法有以下特点:1,前馈式,高效地产生filters,而且其中还包含一个非线性变换;2,训练过程是判决式的,不需要额外采样;3,产生高维的稀疏特征,特别适合后续的pooling操作。

    四,实验

    图像预处理:

    1,彩色图片灰度化,变形到151*151;2,均值削减,然后除以方差;3,应用相减或相除的规则化(这个不太明白,N层c=1);4,0填充短的一边为143像素(这个不明白,估计是由于caltech101的边界大约为300*200,当把长边缩放到151时,短边需要0来填充)。每个类别选取30个样本进行训练,每类5个样本作为验证集,来选择最优的参数,测试结果是平均每类结果的分类准确率作为最终的测试分类准确率。单阶段特征提取和两阶段特征提取(见分类结果图)

    实验结果分析:?

    1,只要网络包含abs和对比归一化,即使是随机的filter也能够取得很好的结果。

    2,监督微调持续的提升分类结果

    3,两阶段段网络明显优于单阶段网络,说明网络深度很重要

    4,在使用abs和对比归一化的情况下,无监督UU框架分类结果并没有监督RR框架好多少,说明在使用无监督框架时,要向取得好结果框架结构最重要。

    5,在使用均值pooling时,不采用abs结果会不好,是因为没有abs的情况下,正负值会抵消;使用maxPooling是对于abs的要求不高;

    6,单阶段+PMK-SVM结构的分类结果和双阶段+softmax的分类结果相似,说明PMK起到了和二阶段特征提取有相似的作用。

    7,利用传统的Gabor滤波器初始化单阶段特征提取网络G和两阶段网络GT(第一阶段使用Gabor滤波器,第二阶段用一阶段输出中提取filter,不明白为什么要这样),的结果都很不好,说明通过学习得到的filter比传统的filter有更好的特征提取能力。

    4.1NORB数据集

    Norb数据集有5种样本(人,飞机,汽车,卡车,动物),每一个类别有972个样本(18个方位角,9种高度,6种光照),总共24300个训练样本,和24300个测试样本,每类4860个样本。每张图片是96*96的灰度图片,

    网络框架

    8F(5*5)的filter + mean-p(4*4) →24F(4*4)+mean-P(3*3) →softmax

    第二层的从第一层的8个输出特征中随机选取4个作为下一层的输入;即,第二层的24个特征和上一层的4个随机选定的特征相连。

    实验在不同训练样本总数条件下训练;每类训练样本数分别为:20,50,100,200,500,1000,2000,4860个,实验结果见下图:

    实验结果:绿线,使用abs和归一化;蓝线,abs和归一化都没有使用;黑色虚线,使用abs和归一化的随机网络。

    1,当训练样本比较少的时候,使用abs和归一化很重要;但是随着训练样本数的增加用和不用的差距逐渐减少(蓝线和绿线)

    这说明数据量可以弥补结构的不足,或者复杂的结构可以弥补数据量的缺失

    2,还有一个意思的结果结束,随机的filter,当数据量比较少的时候RR和R+R+两种网络结果相似,说明随机网络本身具有一定的特征提取能力,也说明,当数据量很少的时候,R+R+网络训练很不充分,所以两个网络的结果很相似。随着训练样本的增加,随机网络的结果有提升,但是提升效果不多;和监督学习网络的差距逐渐增大。这也说明了数据量,对于学习网络的重要性。

    4.2随机filter的表现

    最令人惊讶的是在训练样本比较少的时候,随机filter的表现;为了探究原因,在F+abs+归一化+m-pooling框架下,利用SGD去寻找对应神经元的理想输入(使其激活值最大的图案),如图所示,随机filter(abs+归一化)具有自发的方向选择性。

    4.3MNIST实验

    MNIST数据集,训练集,6万张28*28的灰色手写字体图片数据集;测试集,1万张。

    网络结构:

    32F(5,5)+m-P(2*2)+64F(5,5)+mP(2,2)+fc(200)+softmax

    每个第二层的特征和上一层32个特征中的16个特征相连接。

    使用U+U+(PSD进行无监督学习)和R+R+两个框架来比较验证;从训练集中分出1万个数据作为验证集来选择稀疏性参数lamda。最后在无数据增益的情况下,获得了0.53%的结果。

    五,结果

    1,使用abs非线性明显地提高了分类准确性,这可能是由于;a,特征的极性(正负)和识别物体步不太相关;b,abs消除了均值pooling中正负相互抵消的问题;此外,本文还引入了局部归一化方法,来提升分类结果,还使得网络训练速度加快(其作用类似于白化使得变量具有相同的方差)

    2,对比随机filter和人工filter VS 无监督学习filter和监督学习filter。

    在数据集比较少的时候随机filter结果很好,由于在使用abs和归一化情况下,随机filter的理想输入和学习到的filter的理想输入很相似;在好的结构下(使用abs和归一化)监督学习网络产生了很好的识别准确率;最后无监督学习+监督微调产生了最好的分类识别率。

    3,两阶段网络比一阶段网络好,这种分级式的结果可以使我们学习到分级特征,从而有利于分类。

    我的一些疑惑和理解:

    1,关于abs,本文在filter学习阶段使用的是双曲tanh函数,其输出是[-a,a]之间的数值,此时若不加abs,使用均值pooling时,很容易造成正负激活值的抵消,容易产生噪声;若使用simoid函数,其输出是[0,a],不会产生负的激活值,所以在使用sigmoid情况下可以不使用abs非线性变换,在使用均值pooling时不会有抵消现象;这里作者并没有提及为什么使用tanh而不是用sigmoid(可能是实验结果不好的原因,或者是在tanh和abs在非线性表达能力上的问题)。

    2,关于mean-P和max-P

    在Caltech数据集上,我们发现,其实在不使用abs情况下max-p的结果比mean-p结果要好,一方面说明abs对于mean-p很重要,同时也说明max-p在计算不复杂的情况下,比mean-p结果要好;此外其次mwan-pooling在反向传递误差时,会把误差平均分配给pooling块的所有单元,这就成激活值大的单元和激活值小的单元学习得到了同等学习的机会;而max-p则只把误差传递给相应的结果只最大的单元,这个比较符合我们预期,只让那些激活值大(能够有效地提取特征)的filer得到学习,这样可以减少计算量。

    3,关于无监督学习算法PSD,对于PSD算法自己并不是特别的了解,只知道是一种稀疏分解算法,这种稀疏分解结构和我们试验中识别网络,只有filter阶段相似,而没有考虑pooling结构以及abs;通过这种稀疏分解算法无监督学习的到的特征和监督学习网络,感觉有些不匹配,虽然对于结果有提升,但是基于self_taught learning和transferlearning的观点来说,最好是使用相同的框架来进行无监督和监督学习,例如作者后来提出的“Unsupervisedlearning of invariant feature hierarchies with applications to objectrecognition”和Andrew Ng提出的CDBN,框架综合考虑了卷积和pooling结构分层式无监督学习算法。

    4,再有一个不理解的地方就是连接方式上面,例如caltech数据集上是随机16连接,NORB数据集上是随机4连接,MNIST上是随机16连接,这个链接方式上面有很大的困惑,首先为什么是通过随机来选定初始的对应关系,其实是连接个数上面是如何选定的,这里作者也没有给出(估计是通过实验交叉验证得来的。)