[Paper Share - 1]Neural Architec

作者: 少侠阿朱 | 来源:发表于2017-11-26 22:55 被阅读203次

    导读
    ICLR2017,论文的主题是如何用一个RNN通过强化学习生成一个效果不错的CNN结构或者一个新的Recurrent Cell。文章的效果不算特别明显,但是思路可以借鉴。
    https://arxiv.org/abs/1611.01578

    1.总体思想

    图1

    如图一,左边递归网络(控制器)给出一个网络结构,该网络结构的概率为P。右侧,对这个网络结构进行训练,并在验证集上进行测试,得到精度为R。这时,将R反馈给左侧控制器,通过强化学习更新控制器的参数,使得控制器对R大的网络结构给出更大的概率。

    2.相关工作

    文中提到,当前有些方法也进行相应的研究,但是他们只能在固定长度的空间中搜索。而用贝叶斯的方法,可以搜索可变长度的空间,但是泛化能力和灵活性没有本文的好。

    3.方法

    3.1 控制器
    图2

    对于某一层,控制器可以预测该层的filter width,filter height,stride height,stride width,filter的个数,每一个预测都是通过softmax分类,并作为下一个预测的输入。实验中的停止条件是,层的个数超过了某个指定的数值。当然这个数值在训练的过程中也可以变化。

    3.2用增强学习进行训练

    优化的方向是,让我们的控制器得到最好的奖励。也就是说,控制器给出的网络结构越好,那么反馈的R越大,这相当于给的奖励越好。目标函数是


    目标函数

    但是这个目标函数的R是不可微的,需要使用policy gradient method取进行优化。他的近似解为:


    近似解
    为了减少方差,作者对上面的无偏估计做了写改变。
    改进的近似解

    这个解仍然是无偏估计。
    作者还介绍了多个GPU分布式训练的一些操作,此处省去,我们关注思想。

    3.3增加结构的灵活性

    上面提到的控制器的搜索空间其实不包括skip connections,或者类似于GoogleNet和ResNet的旁支。所以,作者增加了这些连接方式去扩大控制器的搜索空间。


    attention

    使用attention机制。等式表示第i层输入到j层的概率。
    改进后的控制器如下:


    改进后的控制器
    当然,有了skip connections之后会有写问题。比如,输入的大小不一,或者某些层根本没有输入或者输出。作者提出了他的处理方法:
    • 1.如果一个层没有输入,那么就把图片作为输入
    • 2.最后一层,把所有没有被链接的层的输出concat起来。然后输入分类器。
    • 3.如果两个concat的层的大小不一致,则小的补0.
      当然还可以加入其他更加高级的操作。
    3.4生成递归单元(recurrent cell)

    这一章中,作者对上面的控制器进行了修改,用来生成递归单元,其实就是RNN的单元。只不过,这个和经典的不太一样。经典的递归单元是:


    基础递归单元

    作者把递归单元看做成一棵树,xt和ht-1是输入,ht是输出。控制器需要预测树的每个节点用什么链接方式:addition, elementwise multiplication,etc或者激活函数:tanh, sigmoid, etc。下面是个例子。


    递归单元生成

    然后下面对应的是生成步骤,我直接贴图了。我们对照公式和上图看下,很清晰。


    步骤

    4.实验

    验证生成CNN数据集:CIFAR-10
    验证生成RNN的递归单元:Penn Treebank
    数据预处理:作者对图片做了白化,还有放大随机crop,还有翻转。
    搜索空间:对于CNN层:filter height [1,3,5,7], filter width [1,3,5,7] ,滤波器个数[24,36,48,64],步长方面作者进行了两组实验,固定为1,和可预测为[1,2,3]。
    训练过程:控制器是两层的LSTM,每层有35个隐藏单元。作者说,他们用了800个GPU,同时训练800个网络。(惊叹,google就是牛。)
    实验结果
    实验结果我就不在啰嗦了,有一点点提升吧。这个作者后来又出了一篇新文章,还没看,这边文章的结果已经没啥参考价值了。所以我说说一点有意思的地方:
    对于CNN的生成,论文附录贴了一个这样的图,下图中的网络在精度和深度之间达到不错的平衡。有意思的是,网络有不少滤波器是矩形的,而不是我们常用的正方形。而,更有意思的是,层越深,网络偏向于用更大的卷积核。

    生成的一个CNN
    还有生成的RNN递归单元:
    生成的RNN递归单元

    好了,今晚的Paper Reading就分享到这里。虽然你五分钟看完了,却花了我一个小时编写。有什么错误或者理解错的地方,一定要告诉我哇,,,反正我也不会改的。哈哈哈。。。下期,我将会继续分享,该作者的另外一篇关于用网络生成网络的论文 1707.07012-Learning Transferable Architectures for Scalable Image Recognition。敬请期待。Good Night。

    2017.11.26 在深圳

    转载注明下出处呗。http://www.jianshu.com/p/3192f157d067

    相关文章

      网友评论

      本文标题:[Paper Share - 1]Neural Architec

      本文链接:https://www.haomeiwen.com/subject/hvylbxtx.html