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上做了实验

【文献阅读】Self-Normalizing Neural Networks的更多相关文章

  1. 论文阅读 Streaming Graph Neural Networks

    3 Streaming Graph Neural Networks link:https://dl.acm.org/doi/10.1145/3397271.3401092 Abstract 本文提出了 ...

  2. 【文献阅读】Augmenting Supervised Neural Networks with Unsupervised Objectives-ICML-2016

    一.Abstract 从近期对unsupervised learning 的研究得到启发,在large-scale setting 上,本文把unsupervised learning 与superv ...

  3. 《Graph Neural Networks: A Review of Methods and Applications》阅读笔记

    本文是对文献 <Graph Neural Networks: A Review of Methods and Applications> 的内容总结,详细内容请参照原文. 引言 大量的学习 ...

  4. 【论文阅读】Learning Dual Convolutional Neural Networks for Low-Level Vision

    论文阅读([CVPR2018]Jinshan Pan - Learning Dual Convolutional Neural Networks for Low-Level Vision) 本文针对低 ...

  5. 阅读笔记 The Impact of Imbalanced Training Data for Convolutional Neural Networks [DegreeProject2015] 数据分析型

    The Impact of Imbalanced Training Data for Convolutional Neural Networks Paulina Hensman and David M ...

  6. [论文阅读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (MobileNet)

    论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 本文提出的模型叫Mobi ...

  7. 【论文阅读】Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks

    Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks 参考 1. 人脸关键点: 2. ...

  8. 《The Unreasonable Effectiveness of Recurrent Neural Networks》阅读笔记

    李飞飞徒弟Karpathy的著名博文The Unreasonable Effectiveness of Recurrent Neural Networks阐述了RNN(LSTM)的各种magic之处, ...

  9. 【论文阅读】Clustering Convolutional Kernels to Compress Deep Neural Networks

    文章:Clustering Convolutional Kernels to Compress Deep Neural Networks 链接:http://openaccess.thecvf.com ...

随机推荐

  1. 四. Java继承和多态7. Java static关键字

    static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...

  2. [BZOJ1179][APIO2009][强连通分量Tarjan+spfa]ATM

    [BZOJ1179][APIO2009]ATM Input 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i ...

  3. 全面理解java自动装箱和拆箱(转)

    自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象.自动装箱与拆箱的机制可以让我们在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接. 如 ...

  4. 跟着Sedgewick学算法(week 1 UnionFind)

    发现笔记转过来,没有图的~~~~~~~~~~~悲剧,给出共享笔记链接 https://www.evernote.com/pub/yanbinliu/algorithm 很久之前就在coursera看到 ...

  5. autocomplete属性在谷歌浏览器不起作用

    大家都知道autocomplete属性是表单字段中的HTML5新属性,该属性有两种状态值,分别为"on" 和 "off",该属性可省略:省略属性值后默认值为&q ...

  6. CentOS 7.2通过yum安装zabbix

    环境说明 系统版本    CentOS 7.2 x86_64 软件版本    yum安装zabbix 3.0.18 首先准备一台纯净的CentOS 7.2系统 1.配置zabbix源 [root@za ...

  7. Python Requests post并将得到结果转换为json

    Python Requests post并将得到结果转换为json 学习了:https://blog.csdn.net/sinat_28680819/article/details/70940325  ...

  8. win10 如何配置 java jdk1.8环境变量(2017.8.17 )jdk1.8.0_144

    win10 如何配置 java jdk 环境变量 2017.8.17 本篇还适用于 windows server 2012. windows server 2014+ 一.安装 下载 jdk 64位 ...

  9. 5.全局异常捕捉【从零开始学Spring Boot】

    在一个项目中的异常我们我们都会统一进行处理的,那么如何进行统一进行处理呢? 新建一个类GlobalDefaultExceptionHandler, 在class注解上@ControllerAdvice ...

  10. hibernate学习系列-----(1)开发环境搭建

    其实一两个月前就在了解hibernate方面的知识了,但一直以来,都没有好好的总结,而且一直使用的是myeclipse,感觉有些傻瓜式的操作就可以搭建起hibernate的开发环境,但这样一点都不好, ...