自归一化网络

介绍

FNNs:标准前馈网络

在kaggle上效果好的几种方法中基本上都是浅层的FNNs,基本上只有4个隐藏层,隐藏层多了的效果反而不好,尽管不同的层可以表示输入的不同的抽象表示。

为了训练很深的CNN时,BN已经成为一个标准去归一化激励值到0均值单位方差,还有LN,WN。但是归一化很容易被用SGD、dropout、归一化参数的估计干扰,RNN和CNN之所以能够稳定的学习是因为权值共享,这样不易于受到干扰。相反,FNNs在用归一化技术训练时很容易受到干扰,并且在训练误差上方差很大,这样的大方差阻碍了学习。使用dropout更不可能很好的训练,因为它会进一步增大方差最后导致发散。作者认为正是由于FNNs对干扰敏感,所以它没有RNN和CNN成功。

SNNs:self-normalizing neural network自归一化网络

SNNs可以对那些干扰很鲁棒,SNNs将神经激活值归一化到零均值和单位方差中,因此与BN有同样的效果。因为SNNs使用了一个叫做SELUs的激活函数,它不仅可以使方差稳定,还可以避免梯度消失、梯度爆炸。

自归一化神经网络

表示前一层的激活值的均值方差,表示这一层的激活值的均值方差,作者认为这两者之间有一个映射g(),归一化技术如BN,LN,WN就是确定一个映射g能保持前后两者的值接近预先设定的值,比如(0,1)

定义1

因此,根据定义1,我们认为只要神经网络的激活值的均值和方差在一个预先定义好的间隔内,那么神经网络的所有激活值就都可以被归一化。如果x的均值和方差已经在一个间隔内,然后y的均值和方差也就仍然保持在这些间隔内,也就是说归一化是可以通过层之间进行传播的,如果不断地传播,在这些间隔内,均值和方差都会收敛到一个不动点。

因此,Snns通过层与层之间的传播保持网络的归一化。

Constructing Self-Normalizing Neural Networks.我们的目的是通过判断函数g的属性构建自归一化神经网络。g可以有两种选择(1)激活函数(2)权重的初始化

对于激活函数来说,我们提出scaled exponential linear units(SELUs)使FNN自归一化。SELU激活函数如下:

SELU允许构建一个映射g,作者将这样的网络叫做SNNs。SNN不能由ReLu,sigmoid unit、tanh unit、leaky ReLu得到。激活函数被要求有(1)正负值去控制均值(2)饱和区去抑制方差,如果它(方差)在低层太大的话(3)大于1的斜率去增加方差,如果它(方差)在低层太小的话(4)一个连续的曲线。最后一点是确保有一个不动点,能保证方差衰减和方差增加保持平衡。因此作者寻找到具有以上特性的激活函数selu。上式中,因为要求(3).

为了权重初始化,作者建议将隐层的权重按初始化。下一段会展示这样初始化的好处。当然,在训练期间,这样的假设将会被违背。但是作者能够证明在训练期间权重也具有归一化的性质,因此自归一化性质可以在学习和权重变化的过程中被保持。

Deriving the Mean and Variance Mapping Function g


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值