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. 每天一个liunx命令3之awk实现文本文件的抓取

    =============================================================================grep -h -s -E 'HUAWEI_9 ...

  2. centos下配置ssh使用密钥

    查询了网上的一些教程,然后根据自己的实际操作,记录自己实际配置ssh密钥的过程: 首先在centos终端切换到要链接的用户,比如用户ssh 使用该用户生成密钥: ssh-keygen -t rsa 中 ...

  3. ubuntu 16.04 网络配置之虚拟网卡的配置

    关于图形界面的配置,我这里就不多介绍了,这个很简单.这里介绍的是如何通过修改配置文件来实现虚拟网卡. 首先介绍ubuntu(我这里使用的是ubuntu-16.04)下虚拟网卡的配置 1.先用ifcon ...

  4. Linux用户配置sudo权限(visudo)

    sudo的工作过程如下: 1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限 2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认 ...

  5. python 验证码识别之pytesser以及image学习记录

    一般的步骤就是上面这些,总的来说分为三部分,去除背景,分割字符,识别. 去除背景可以通过灰度化,二值化,去噪,倾斜度校正等(一般来说灰度化和二值化都是需要的,去噪和倾斜度看情况) 安装PIL工具,下载 ...

  6. OpenGL矩阵类(C++) 【转】

    http://www.cnblogs.com/hefee/p/3816727.html OpenGL矩阵类(C++) 概述 创建&初始化 存取器 矩阵运算 变换函数 实例:模型视图矩阵 实例: ...

  7. oc的插件

    umbra https://umbra3d.com/ 很不错

  8. XShell命令行使用

    1.建立连接: 2.查看总体目录: 3.查看对应服务目录: 4.删除对应jar包后,再查看目录下文件: 5.上传对应的jar文件: 6.重启服务 7.查看服务日志: 8.mv old-name new ...

  9. IDEA搭建maven项目

    新建 新建maven项目.create from archetype.选择maven-archetype-webapp Next.填写GroupId,ArtifactId和Version attnam ...

  10. Visual Studio 外请版本号管理插件 - AnkhSVN

    Visual Studio 外请版本号管理插件 - AnkhSVN 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致 ...