zoukankan      html  css  js  c++  java
  • tiled卷积神经网络(tiled CNN)

         这个结构是10年Quoc V.Le等人提出的,这里的tiled,按照 Lecun的解释是Locally-connect non shared.即是局部连接,而且不是共享的,这是针对于权重来说的。本文翻译如有错误,还望指正,谢谢!!这篇论文是10年的,相比较来说四年的东西,比较旧了,可是这个tcnn在ng的ufldl最后也有提及(只有目录部分,ng没写完),而且也算是个cnn的变化,不过看效果没有获得the state of art。因为在cifar-10数据集上当前的效果都达到了91%,而且NIN结构也很不错(还没看)。

      Tiled  convolutional neural networks

    摘要:卷积神经网络(cnn)已经成功的应用于许多的任务上,比如数字或者对象识别。使用卷积(tied)权重显然可以大幅度的减少所需要学习的参数的数量,并且可以使得在这个结构中能够硬编码(估计就是结构自身所特有的属性的意思吧)平移不变性。在本文中,我们考虑学习不变性的问题,而不是只依赖于硬编码。我们提出了tiled卷积神经网络,它通过使用一个tied权重的规则‘tiled’模式(个人理解就是在卷积上加个tiled规则),即不需要毗邻的隐藏单元共享同样的权重,而是隐藏单元之间距离k步远的单元有tied权重。通过在邻居单元上进行池化,这个结果能够去学习复杂的不变性(例如缩放和旋转不变性)而不只是平移不变性。更进一步,它有着大多数CNN的优势:有着相对小数量所需要学习的参数 例如 容易学习和更大的可扩展性。我们提出一个基于的高效的学习算法去训练TCNN,并显示学习到的复杂的不变性特征能让我们获得在数据集和CIFAR-10上高度竞争性的结果。

     1 引言

        卷积神经网络已经成功的应用到许多的识别任务上了。这些任务包括数字识别(MNIST ),对象识别(NORB)和自然语言处理。CNN有着同样基函数的平移不变,而且在他们上面进行池化去构建平移不变特性。通过在不同的图像的局部位置共享同样的基函数,CNN显然只需要学习更少的参数:这使得比那些在不同的部位(非卷积权重)学习整个不同的基函数的情况使用更少的样本。。更进一步,CNN天生的拥有平移不变性,因为这个网络结构的硬编码有着这样的特性。然而这个硬编码的一个缺点是这个池化结构只能抓取平移不变形;例如,这个网络不能在相互之间旋转的单元上进行池化或者抓取更复杂的不变性,例如平面外的旋转。

        是否有着比硬编码平移不变性更好的-这是先验知识的一个有用的形式-或是让这个网络先从无标签数据中自己学习它的不变性?本文中,显示后者是更好的选择,并介绍一个能够这样做的算法,优于卷积的方法。具体来说,我们提出了tiled卷积神经网络(TCNN),这通过使用一个新颖的权重绑定方案(‘tiling’),能够不但有着减少所需要学习参数的好处,还能弹性的去学习其他的不变性。我们的方法是基于相互之间距离为k步的权重/基函数是相等的(当k等于1的时候这就是普通的卷积网络)。

        为了从无标签数据中学习这些不变性,我们采用无监督预训练方法,这已经在【5 6 7】中被证实是很有帮助的方法,我们使用一个TICA的改进版本【8】,通过在相关特征组之间池化来形成一个拓扑映射。通过对局部特征组一起池化,它产生的表征对局部变换具有鲁棒性【9】。我们在本文中显示TICA如何通过使用局部正交来高效的去预训练TCNN。

        使用TICA预训练得到的TCNN的确能够学习不变性表征,池化的单元具有缩放和旋转的鲁棒性。我们发现这提升了分类的效果,确保TCNN能够与之前在数据集NORB和CIFAR-10上其他公布的算法具有竞争性。


    图1:左:有着局部感受野和卷积权重的卷积神经网络。右:部分非卷积感受野网络-tiled CNN。相同颜色的单元是属于相同的映射,有着同样填充纹理的单元是tied权重。(网络图表都是以1d形式说明的)

    2 tiled CNN

            CNN是基于两个关键的概念:局部感受野,权值绑定。使用局部感受野是是的每个单元都只能看到输入图像中很小的,局部区域。这比那些全感受野具有更高效的计算速率,并且允许CNN能够很好的应对图像的缩放。权值绑定可以强制每个第一层(simple)单元共享同样的权值(见图1左)。这减少了所需要学习的参数的数量,并且(在邻居单元上进行池化)使得能够将平移不变性硬编码到模型中。

        尽管权值绑定允许硬编码平移不变性,他同样使得池化单元不能获取更复杂的不变性,例如缩放和旋转不变性。这是因为第二层单元被限制只在同样的基上进行平移的池化。在本文中,不使用在网络中所有的权重进行绑定的方法,而是让毗邻的单元untied,让远离的单元tied。(这个想法来自于tica中,靠近的无关,远离的相关)。这使得第二层单元在有着不同基函数的simple单元上进行池化,因此学习到了更复杂的不变性。

        我们称这种局部权重非绑定为“tiling”。 TCNN是通过一个tile size k进行参数化:我们考虑相互远离k步的单元是tied的。通过改变k,我们获得了模型的图谱,这个模型能够学习复杂的不变性,并且有着很少的必须要学习的参数。在图谱的一端我们显示传统的CNN(k=1),在图谱的另一端,我们显示一个全untied simle 单元。

        接下来,我们允许我们的模型使用多“映射”,以便去学习高超完备基。一个映射是池化单元和在整个图像上收集的simple单元(图1 右)的集。当我们改变tiling的大小,我们会改变每个映射中权重绑定的程度;例如,如果k=1,每个映射的simple单元会有相同的权值。在我们的模型中,不同映射中的simple单元是不会tied的。不同映射中的单元学习不同的特征,我们的模型能够学习一个丰富和多样的特征集合。有着多映射的TCNN(i)拥有表现复杂不变性的好处,而且在(部分)untied 权重上池化(ii)这个模型也有着相对较少所需要学习的参数的特性。

        不幸的是,现今用来对CNN预训练的方法【11 12】都不适合在有着untied权重的结构上使用,例如,这个CDBN算法【11】没有权重绑定的限制。在接下来的章节中,我们讨论一个基于TICA的算法来对TCNN进行预训练。


           图2:左:TICA网络。右:TICA第一层过滤器(2d拓扑,W的25行)

    3 通过TICA进行无监督特征学习

         TICA是一个无监督学习算法,他能从无标签图像块中学习特征。一个TICA网络能够被描述称一个两层的网络(图2左,就是将TICA的过程写成神经网络的形式,ng的ufldl的后面有这样的思想),在第一层是平方,第二层是开平方。第一层中的权重W是学习得到的,第二层中的权重V是固定并且硬编码去表现第一层中神经元的邻居/拓扑结构。具体来说,第二层中每个单元是在小范围内毗陵第一层单元hi 上池化得到的。我们称hi和pi是simple 和池化单元。

       更具体的说,在给定输入模式下,第二层中的单元的激活值是。TICA通过在第二层上找到他的稀疏特征表征来学习参数W,通过解决:

     (公式1)

    这里输入模式是白化过的。这里,n是输入的大小,m是一层中隐藏单元的数量。V是一个固定矩阵(Vij=1或者0)去编码隐藏单元hi的2d拓扑。具体的说,位于一个2d网格上的hi单元,这个网格中每个pi与hi单元的连续3*3块连接的。这里的每个pi连着准确的一个hi的情形是相对应于标准的ICA。这里的正交限制WWT=I 提供了竞争力并确保学到的特征是多样的。

        TICA的一个重要的特性是甚至当在无标签数据上训练也能得到不变性,参考【8 9】。这归功于它的池化结构和学习算法:提出的池化单元对于他们的输入数据的局部变换具有鲁棒性;这个学习算法通过对稀疏性的优化来推动选择。这个鲁棒性和选择的相结合是特征不变性的核心,这对于识别任务【13】来说也是至关重要的。

        如果我们在TCNN中的simple和池化单元都分别选择平方和开方,我们能将TCNN视为一个TICA网络的特殊情况,这里的池化单元的拓扑指定为矩阵V。最重要的,TCNN包含局部感受野,这在加速TICA中也起到很重要的角色。我们在下面讨论这些。

    4 TICA中的局部感受野

        TCNN当学到的表征包含多个特征映射(图1 右)是在对象识别上会有更好的效果。这相对于去训练一个有着超完备(m>n,即学到的特征维度要多于样本的维度)表征的TICA。当学习超完备表征【14】,这个正交限制不能够精确的满足,(即不可能完全的正交),所以我们试图去满足一个近似的正交限制【15】。不幸的是,这些近似的正交限制都是计算复杂和有着超参数的,这需要大量的调整。在通过使用得分匹配【16】后,大部分的调整可以避免掉,但是计算甚至会变得更加复杂,同时正交会与有着拓扑稀疏编码一起被避免掉,这些模型同样代价巨大,因为他们需要进一步的工作,不论是在预测阶段的推论【9 14】还是在训练阶段学习一个解码器单元【17】。

        我们能够通过使用局部感受野来避免近似正交化,这是TCNN中内建的。通过这些,每个simple单元的权重矩阵都限制的去在一个小局部区域外都是0(即只有那个区域有值,区域外都是0看待)。这个局部受限自动的确保任何两个没有感受野重叠的simple单元的权重是正交的,不需要明显的正交限制。经验上来说,我们发现正交部分重叠感受野对于学习不同的、信息化特征是不必要的。

        然而,正交化对于那些各自映射中占用同样位置的去关联单元是需要的,因为他们是感受图片中相同的区域(即图1右中有着相同纹理的隐藏单元,他们感受着图片的相同的位置,但是却在不同的映射中,所以他们需要正交化)。幸运的是,这个局部正交的计算代价不大:例如,如果有 l 个映射,每个感受野都是被限制感受一个有着s个像素的输入块,我们只需要正交一个 l*s矩阵的行去确保在这些s像素上的 l 特征是正交的。具体的说,当l <=s,我们能要求这些 共享一个输入块的l 单元是正交的。使用这个方法,我们能学习一个通过大约s的因子去超完备一个网络(即学习l =s 映射),而不必只正交化l*s矩阵。这显然比标准的TICA有着更低的损失。对于 l 映射,我们的计算代价是 O(l *s^2*n),而标准的TICA是O(l^2*n^3)。

        通常来说,对于大小是n的输入来说我们有l * k * s个所需要学习的参数。我们设置k成他的最大值 n-s+1 (这里的k就是输入的n 减去一个局部感受野s 加上1,得到的就是一共可以有几个感受野k)给出准确的untied局部TICA模型,在前面部分介绍过。 (%这里的意思是不是tiled就是将之前一个卷积的权重相同换成隔几个相同,原来只有一个权重共享给所有人,现在不止一个而已%)

    5 用局部TICA来预训练TCNN


        我们的预训练算法,是在TICA目标函数(1)上使用梯度下降算法获得的,在算法1中显示。这最内部循环是一个简单的回朔线性搜索算法。在orthogonalize_local_RF(w^new),我们只正交有着完全重叠感受野的权重。在tie_weights,中,我们通过对每个tied权重集合进行平均化来得到权值绑定。

        这个算法是通过批量投影梯度下降训练的,通常几乎不需要最优化参数的调整。这是因为TICA的 较易于处理的目标函数允许我们很容易的监控收敛情况。相比较来说,其他的无监督特征学习算法例如RBM和AE需要更多的参数调整,特别是在最优化期间。

    6实验

    6.1加速

        我们首先将局部感受野建立在TCNN中,这使得我们能够以一种更高效的方法去让TICA学习超完备表征。

        图3显示在标准TICA上预训练TCNN的加速,通过使用近似不动点正交的方法【15】.这些实验都是在大小为32*32或者50*50的1w张图片上运行的,其中s=8;

        我们注意到是严重的权重是全untied的,即k=n-s+1.因此,这里观察到的加速不是来自于一个高效的卷积操作,但是完全是因为这个局部感受野。克服计算量这个问题的关键是允许TCNN成功的使用TICA去从无标签数据中学习特征。


    图3TCNN的加速与标准TICA的对比

    6.2 在NORB上的分类

        接下来,我们说明对TCNN进行TICA的预训练在对象识别上的效果。以NORB的normalized-uniform集开始,这里包含了来自5类的24300个训练样本和24300个测试样本。在我们的实验中,每个样本都是先预处理成32*32大小的图片。

        在我们的分类实验中,我们固定每个局部感受野的大小为8*8,设置V使得第二层中的池化单元pi 能够在第一层的simple单元的3*3块上进行池化,没有对边界进行特殊的处理。每个映射中的池化单元的数量等于simple单元的数量。我们使用重叠8*8的局部感受野来密集的对输入图像进行tile,这里每个步长为1(stride = 1)。这使我们在一个32*32的图像上的每个映射都得到25*25=625个simple单元和625个池化单元。

    结果显示在table 1中。

    6.2.1 无监督预训练

        我们受限特征完全来自于无监督数据的情况、具体来说,我们使用NORB训练几自身(剔除标签)作为无监督数据的来源,通过这个数据集来训练我们需要的TCNN的权重W。我们称这个初始化阶段叫无监督预训练阶段。

       

        在从无标签数据中学习特征表征之后,我们在有标签训练集上的TCNN网络的输出部分训练一个线性分类器(即在池化单元的激活值上训练)。在这个有i监督训练阶段,只有线性分类器的权重被训练,TCNN模型的其他权重是固定不变的。(相当于TCNN得到的池化特征 作为另一个分类器的输入)。

        我们训练一系列的模型去观察tile size k和映射数量 l 在这其中起的作用。这些模型的测试集的准确度结果在图4-左。使用一个从训练集中随机采样出的验证集,其中有2430个样本(占了总的样本的10%),我们选择一个有着48个映射的卷积模型,并在测试集上获得了94.5%的准确率,这说明只在无监督数据上学到的TCNN可以和NORB上许多的state of the art 算法有的一拼。

    6.2.2 W的有监督微调

       接下来,我们研究通过无监督预训练阶段得到的模型上的有监督微调的影响。有监督微调发生在无监督预训练之后,但是发生在分类器的有监督训练之前。

       使用softmax回归去计算这个梯度,我们将错误信号从输出端(应该是池化单元部分)到学到特征端(应该是simple部分)进行反向传播去更新W(就是BP算法),这里的W是TCNN模型中simple单元的权重。在微调过程中,权重W是没有正交化的调整的。

        在我们的模型上的有监督微调的结果显示在图4-右。和上面一样,我们使用训练数据的10%的验证集来作为模型的选择。有着更大数量映射会使得过拟合,因此在验证集上效果不好。在验证集上最好的调整结果是 l =16和k=2,这获得了一个96.1%的测试集准确度。这个基本上优于标准TICA,和到目前为止NORB上公布的最好的结果。


    图4:左:在不同的tile大小和map大小下NORB的测试集准确度,没有微调;右:NORB测试集准确度,有微调。

    6.2.3 限制训练数据

       








  • 相关阅读:
    关于Redis的介绍,使用以及集群
    关于RESTful详解
    关于Nginx——反向代理
    关于RabbitMQ
    关于Nginx——负载均衡
    关于Nginx——配置虚拟主机
    StringBuffer是字符串缓冲区
    数组的查找操作
    获取任意年的二月有多少天
    快速排序算法
  • 原文地址:https://www.cnblogs.com/shouhuxianjian/p/4529217.html
Copyright © 2011-2022 走看看