常见激活函数总结 | 深度学习笔记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 条评论
登录 后参与评论

相关文章

来自专栏决胜机器学习

卷积神经网络(二) ——LetNet-5、AlexNet、VGG-16、残差网络

卷积神经网络(二) ——LetNet-5、AlexNet、VGG-16、残差网络 (原创内容,转载请注明来源,谢谢) 一、概述 本文主要介绍几种卷积网络模型,学...

4835
来自专栏机器学习原理

机器学习(6)——决策树前言:

前言: 通过第前面的学习介绍了机器学习回归模型创建的流程,并且知道了机器学习要做的事情是找到目标函数,优化它,通过每次迭代都使目标函数值最小,最优解就是目标函数...

44710
来自专栏SIGAI学习与实践平台

理解神经网络的激活函数

激活函数在神经网络中具有重要的地位,对于常用的函数如sigmoid,tanh,ReLU,不少读者都已经非常熟悉。但是你是否曾想过这几个问题:

942
来自专栏mantou大数据

[机器学习Lesson 2]代价函数之线性回归算法

x(1) 指的是 第一个训练集里值为2104的输入值, 这个就是第一行里的x x(2) 等于1416。这是第二个x y(1) 等于460,这是第一个训练集样本的...

46710
来自专栏闪电gogogo的专栏

浅读K-means

百度百科释义为   K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法...

1956
来自专栏自学笔记

Some methods of deep learning and dimensionality reduction

上一篇主要是讲了全连接神经网络,这里主要讲的就是深度学习网络的一些设计以及一些权值的设置。神经网络可以根据模型的层数,模型的复杂度和神经元的多少大致可以分成两类...

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

前馈神经网络和BP算法简单教程

吴立德老师亲自讲解前馈神经网络和BP算法,让初学者对基础更加了解,对以后网络的改建和创新打下基础,值得好好学习!希望让很多关注的朋友学习更多的基础知识,打下牢固...

3396
来自专栏杨熹的专栏

权重初始化的几个方法

其中第一步 权重的初始化 对模型的训练速度和准确性起着重要的作用,所以需要正确地进行初始化。

1572
来自专栏null的专栏

UFLDL笔记——自我学习

注:最近打算将UFLDL教程重新看一遍,其实里面有很多关于神经网络以及深度学习的知识点很有用,但是只是学习深度学习的话有一些内容就有点多余,所以想整理一个笔记,...

3585
来自专栏机器学习与自然语言处理

深度学习在文本分类中的应用

近期阅读了一些深度学习在文本分类中的应用相关论文(论文笔记),同时也参加了CCF 大数据与计算智能大赛(BDCI)2017的一个文本分类问题的比赛:让AI当法...

5026

扫码关注云+社区