【文献阅读】Self-Normalizing Neural Networks

Self-Normalizing Neural Networks ,长达93页的附录足以成为吸睛的地方(给人感觉很厉害), 此paper提出了新的激活函数,称之为 SELUs ,其具有normalization的功能.

给人感觉只是在全连接层有效果,在CNN和RNN中貌似没有提及有效果

Abstract:

CNN在视觉的多个领域有很好的表现,然而 feed-forward neural networks(FNNs) (wiki上解释就是传统的前向传播网络)不能提取many levels of abstract representations(反正就是FNNs特征提取能力不够强),而作者提出的SNNs(self-normalizing neural networks)可以提取高级抽象特征,SNNs用了新的激活函数SELUs,这个激活函数就是 SNNs中S的含义,也就是 自归一化的性质。文章用了Banach fixed-point theorem 证明了如下结论:在SNNs里,即使存在noise和perturbations,经过多层的前向传播,activations 是可以接近于零均值,单位方差的。即使activations不是单位方差的, 作者也证明了是有方差上界和下界的,从而可以避免vanishing and exploding gradients。
作者在121个数据集上做了验证,用SNNs和FNNs作比较,SNNs全都比FNNs效果好。(其实就是说在对比全连接层时,用Selu激活函数会好,而在卷积层的表现如何呢? 作者并没有给出相应的实验和解释)

Introduction:

第一段讲的是deep learning中的RNN,CNN分别在 sequential tasks和vision 领域中表现很好,有多好呢,反正很好就对了,paper第一段就要写×××很厉害,很好.

第二段,画风突转, However,在非 sequential tasks和vision领域中,其他传统machin learning的方法可以获得最好的表现,少数情况下,FNNs即使是获得最好表现,其也是很浅层的,很难用深层的FNNs
(这一段成功的引出问题, 问题就是非 sequential tasks和vision领域下, FNNs的缺点,看来作者的SNNs就是要解决这个问题的,这个问题有个条件就是 非 sequential tasks和vision领域 下,针对FNNs 的缺点进行改善)

第三段,简介三个normalization.第一个 batch normalization,第二个Layer normalization,第三个 weight normalization.又来画风突转, However, 这三个normalization技术容易受到SGD,stochastic regularization(like dropout),and the estimation of the normalization parameters的影响.RNN和CNN可以通过weight sharing来克服这种影响(为什么?搞不懂啊),但是 FNN就不可以了,FNN容易受到这些normalization技术的影响,会导致high variance in the training error,这个 high variance呢,由会导致学习慢并且阻碍学习(不知道为什么,知道的同学希望在评论区讲一下吧 ). ## 标题 ##
作者再次抛出问题,说FNN这方面不行啊,意思是作者提出来的SNN要在这方面解决FNN不行的问题咯?

第四段:

说SNN相比于FNN是好的,很好的,非常好的
1. SNN robust to perturbations
2. do not have high variance in their training errors
3. SNN 可以使得neuron activations 有 零均值,单位方差.所以具有类似batch normalization的作用.
4. SNN中的Selu激活函数有着类似于 variance stabilization的性质,而 这个性质是可以避免 exploding and vanishing gradients的

Self-normalizing Neural Networks (SNNs):

Normalization and SNNs:

公式(1),及之前的内容都是讲一些定义,主要讲一个layer的 input的数据有一个mean和variance,通过这个layer之后会有新的mean和variance,那么这个mean和variance的变化(映射)就是用一个g()来表示,这个g()就是一个映射,表示input的(mean和variance) 到 output的(mean和variance) 的映射

接着definition1:
说了一个重要的性质,就是经过多次迭代,这个g()可以把 mean和varivance 给变到一个稳定点( stable fixed point),具体的g是这样的:
g(Ω) ⊆ Ω, where Ω = {(μ, ν) | μ ∈ [μmin, μmax ], ν ∈ [νmin , νmax ]}.
也就是说 mean和variance都有一个上界和下界的时候, 就可以通过反复迭代,到达一个 fixed point
因此,假如样本的mean和variance是在predefined intervals(我猜intervals就是上面这条公式的[μmin, μmax ], [νmin , νmax ] ,不知道正确不正确啊),那么 mean 和variance最终会收敛到一个fixed point.

Constructing SNN:

作者说通过调整g()的性能来构建一个SNN,看来这个g()在SNN中是非常重要的.
g()的设计仅有两种选择: (1) the activation function and (2) the initialization of the weights.
对于(1),作者提出 SELUs,也就是Selu激活函数.来看看函数形式把:

这里写图片描述

Deriving the Mean and Variance Mapping Function g:

考虑中心极限定理(大量相互独立的随机变量,其均值分布以正态分布为极限),可以得出g()映射之后的mean和variance
公式如下:

Stable and Attracting Fixed Point (0, 1) for Normalized Weights.
通过公式 4.5 以及假设fixed point 是(0,1), 可以求出参数 α01 ≈ 1.6733 and λ01 ≈ 1.0507

Stable and Attracting Fixed Points for Unnormalized Weights.

在学习过程当中,weight vector 不能保证一直是 normalized的,但是,只要 (ω, τ ) is close to (0, 1),
g() 还是可以到达一个接近(0,1 )的fixed point

Theorem 1.2.3 没有看了…就是讲证明

Initialization.
SNN的初始化采用如下初始化方法,从高斯分布中采样

New Dropout Technique

作者提出 “alpha dropout”, 根本原因是为了保证 dropout后的mena和varivance不会因dropout了一些神经元而改变

Applicability of the central limit theorem and independence assumption.

……

Experiments:

在121 UCI Machine Learning Repository datasets. 上进行实验,主要还是对比FNN嘛,在大于1000个data points的时候 SNN才会比其他机器学习算法有更好的表现.而小于1000个 data points时,random forests 和SVMs 要比SNN和其他的FNN要好.
作者还在Drug discovery,Astronomy上做了实验

posted @ 2017-08-11 15:40  TensorSense  阅读(546)  评论(0编辑  收藏  举报