常见激活函数总结 | 深度学习笔记2

01激活函数概览

基本上,入门深度学习的第一件事情就是了解”神经元”的构造,激活函数算是最基本的一个”部件”了吧.那激活函数到底有什么用呢?为什么需要激活函数?激活函数的定义是什么呢?

下面这篇论文提供了激活函数的定义以及常见的”饱和”的定义,以及对于激活函数的一些思考.大家可以参考一下.

Noisy Activation Functions (http://proceedings.mlr.press/v48/gulcehre16.pdf)

引用这篇论文的定义:激活函数就是映射

,且函数几乎处处可导.

那为什么需要激活函数呢?一般认为,激活函数的作用是给神经网络加入非线性的因素.激活函数一般都是非线性函数,要是没有了激活函数,那么神经网络难以对于生活中常见的非线性的数据建模.所以,神经网络中激活函数是不可缺少的.

02常见的激活函数

这里仅仅列出经常见到的,常用的激活函数,更多的新的激活函数类型可以跟踪最新的paper,

这里的激活函数的所有代码及绘图可在我的GitGub找到:

MachineLearningCode/NeuralNet/ActivationFunction/ (https://github.com/XierHacker/MachineLearningCode/tree/master/NeuralNet/ActivationFunction)

好了,开始正式总结了.

1.sigmoid

老朋友了,但是还是要介绍一下,sigmod算是”曾经”使用最广的激活函数了,简单,良好的非线性映射,但是也有致命的问题,就是梯度消失.所以现代的神经网络架构很少用他了.

2.tanh

3.ReLU

修正线性单元(Rectified linear unit)

也常常表示为

线性修正单元应当是现在用的最广的激活函数了,要是你不知道用什么激活函数,就用ReLU先试一下吧.

4.LReLU,PReLU,RReLU

这三个都是对于ReLU的改进,三个的函数的写法可以近似的认为是一样的.细节上有一些差别.

其中a可以看做是斜率,也就是说,这个激活函数多引进了一个参数.

对于LReLU来说,a是固定的,你可以通过各种验证方式选出一个合适的a值. PReLU是对于LReLU的改进,可以自适应的学习参数而不是固定的,原论文中建议初始化为0.25.

RReLU的a是一个给定范围内的随机变量,随机选择的,在一定程度上可以起到正则化的作用.

给出一张总结的图

5.ELU

Exponential Linear Units的缩写,函数形式为

其中a>0.

右侧的线性部分能够缓解梯度消失,左侧的软饱和能够对于输入变化鲁棒.而且收敛速度更快.

6.softplus

7.softsign

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-09-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏生信小驿站

无监督学习 聚类分析④

假如我们随机选取了100名男生和100名女生,两百个人混在一起,而目前只有每个人学生的身高数据,我们既不知道每个身高数据所对应的性别,也不知道男生和女生两个群体...

863
来自专栏机器之心

入门 | 一文概览深度学习中的激活函数

2778
来自专栏CSDN技术头条

使用scikit-learn解释随机森林算法

在以前的一篇博文里,我讨论过如何将随机森林算法转化为一个“白盒”,这样每次预测就能被分解为各项特征的贡献和,即 ? 我多次想找相关的代码。然而,绝大多数的随机森...

16910
来自专栏深度学习与计算机视觉

如何理解卷积神经网络中的权值共享

权值共享这个词最开始其实是由LeNet5模型提出来,在1998年,LeCun发布了LeNet网络架构,就是下面这个: ? 虽然现在大多数的说法是20...

2515
来自专栏大数据挖掘DT机器学习

你看到的最直白清晰的,神经网络中的反向传播法讲解

最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的...

2875
来自专栏计算机视觉战队

谷歌——DeepLab v1

临近中国的春节,Google 团队也不休假,趁着中国人每年一度大迁徙,他们在 arXiv 放出了 DeepLabv3+,在语义分割领域取得新的 state-of...

3075
来自专栏刘笑江的专栏

HTML

1193
来自专栏marsggbo

论文笔记系列-Efficient Neural Architecture Search via Parameter Sharing

本文提出超越神经架构搜索(NAS)的高效神经架构搜索(ENAS),这是一种经济的自动化模型设计方法,通过强制所有子模型共享权重从而提升了NAS的效率,克服了NA...

881
来自专栏机器之心

先读懂CapsNet架构然后用TensorFlow实现,这应该是最详细的教程了

3467
来自专栏机器之心

解读 | 谷歌像素递归超分辨率研究:怎么消灭低分辨率图像马赛克?

机器之心原创 作者:Angulia 参与:王灏、hustcxy、吴攀 最近,谷歌发布了一种把低分辨率图像复原为高分辨率图像的方法,参见机器之心文章《学界 | ...

3149

扫码关注云+社区