• 论文笔记 Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification


    最近在调网络结构的参数,其实就是漫无目的的乱改。但是运气不佳,没有得到自己想要的准确率。于是,硬着头皮,去了解一下别人选择参数的一些依据。正如这篇论文的标题: Delving Deep into Rectifiers,或许只有这样才能对选择参数的原则有一个基本认识吧!

    Background

      给定一个很深的网络结构,我们有以下三个个问题需要解决:网络能训练、网络性能好、网络训练速度较快。

    Main Points

       网络结构越深(性能应该越好),越难训练。本文从non-linear unit(Relu,提出了增强版PRelu)、卷积核参数初始化着手解决上述问题。

    1) PRelu

      如上图所示,作者将原始的Relu进行了简单扩展便得到了PRelu,其中的参数a是可以学习的(初始化时a=0.25)。前向传播、后向传播都很简单,这一改变引入的计算量也基本可以忽略。也许我们会不服气,不就是简单修改了一下Relu吗?我也可以对这个函数修改一通,然后发篇质量很高的paper的。说实话,我们是可以乱修改一通的,但是我们必须得给出理论分析(如果我们对问题没有一个深刻的认识,这一点是很难做到的哦!哈哈)。这篇paper的理论分析思路很值得我们借鉴“从简单例子出发,通过近似、假设得出结论”,然后用所得结论指导我们的实验。

      在论文中,作者指出“We investigate how PReLU may affect training via computing the Fisher Information Matrix (FIM). If the off-diagonal blocks of FIM are closer to zero, SGD which is a first-order solver becomes closer to natural gradient descent which is second-order and converges faster”,下面作者通过一个两层的MLP证明了PRelu能够使得对角线外的FIM元素更接近于0,从而比Relu收敛的速度更快。实验也证实了这一点。此外,这一改变又提升了一点网络的性能。

    2)Initialization of Filter Weights for Rectifiers

      在论文中作者提到,“Rectifier networks are easier to train compared with traditional sigmoid-like activation networks. But a bad initialization can still hamper the learning of a highly non-linear system”。那么我们能不能提供一个初始化参数的原则,从而避免bad initialization呢?能,论文中给出了答案。

      作者遵循的原则很简单“A proper initialization method should avoid reducing or magnifying the magnitudes of input signals exponentially”,在实际操作的时候就是使得每一层的输出具有一致的方差,并据此得出了两个选择初始化参数的约束条件。其本质就是确定一个合适的权值初始化方差(均值为0,bias为0是假设,在应用时我们应该保证假设条件的成立!)

      有了一个较好的权值初始化策略之后,我们就可以端到端的形式训练很深的网络了。可惜的是,更深的网络并没有带来更好的性能,这是后话了!

    3)网络结构及其初始化

      这篇论文对于网络结构及其初始化方式写的还是很清楚的,如学习率是“stepwise”的(初始为0.01,然后分别为0.001、0.0001)、weight decay、dropout ration、momentum、全连接层初始化方式等。数据增强方式、测试方式都很清楚。强烈建议大家读一读这篇paper。

    Summary

    1)两个很简单的改进在Imagenet上取得那么好的效果,的确有点令我吃惊。

    2)作者的两个改进都有理论分析、实验验证,分析的过程清晰易懂,得出的结论具有很强的指导意义。这或许就是科研的魅力吧!

    3)潜下心来,好好琢磨琢磨!哈哈

    4)如果我们可以对权值进行这样的约束,那么我们是不是可以对数据也进行同样的约束呢?(Batch Normalization是不是完成这样的功能的呢?)

  • 相关阅读:
    Photoshop做32位带Alpha通道的bmp图片
    PNG怎么转换成32位的BMP保持透明
    解决WIN32窗口不响应WM_LBUTTONDBLCLK消息
    Windows键盘消息处理
    对象与控件如何建立关联
    DrawItem
    在C语言中除法运算为什么没有小数部分?
    使用GDI+进行图片处理时要注意的问题
    MFC中无标题栏窗口的移动
    MFC带标题栏的窗口和不带标题栏的窗口最大化
  • 原文地址:https://www.cnblogs.com/everyday-haoguo/p/Note-PRelu.html
Copyright © 2020-2023  润新知