专栏首页人工智能LeadAI常见激活函数总结 | 深度学习笔记2

常见激活函数总结 | 深度学习笔记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),作者:谢小小XH

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 重磅! | 神经网络浅讲:从神经元到深度学习

    神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向–深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度...

    用户1332428
  • 线性回归回顾与logistic回归 | 机器学习笔记

    01 再看线性回归 之前我们选择线性回归的时候,只是认为那些数据看上去很符合线性的样子,选择最小平方损失函数的时候,也是直接提出来的,没有考虑过为什么会是这个样...

    用户1332428
  • 反向传播(backpropagation)算法 | 深度学习笔记

    接上一篇(多层感知机(MLP)与神经网络结构 | 深度学习笔记)的最后,我们要训练多层网络的时候,最后关键的部分就是求梯度啦。纯数学方法几乎是不可能的,那么反向...

    用户1332428
  • 激活函数还是有一点意思的!

    激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网...

    计算机视觉研究院
  • 【深度学习】神经网络为何非激活函数不可?

    激活函数是神经网络中一个至关重要的概念,决定了某个神经元是否被激活,判断该神经元获得的信息是否有用,并决定该保留还是该去掉此神经元。

    zenRRan
  • 神经网络为何非激活函数不可?

    激活函数是神经网络中一个至关重要的概念,决定了某个神经元是否被激活,判断该神经元获得的信息是否有用,并决定该保留还是该去掉此神经元。

    AI科技评论
  • 神经网络中的激活函数

    正如你所见,该函数是一条直线或称为线性的。因此,函数的输出不会被限制在任何范围之间。

    云水木石
  • 深度学习中的激活函数完全指南:在数据科学的诸多曲线上进行现代之旅

    原文:Towards Data Science deephub翻译组:zhangzc

    deephub
  • 吴恩达-神经网络和深度学习( 第三周 浅层神经网络:)

    双愚
  • [DeeplearningAI笔记]第一章3.2-3.11浅层神经网络与激活函数的原理

    有很官方的名字,称为恒等激活函数/线性激活函数.这样如果使用恒等激活函数,则会发现这是一种输入值的线性组合.在深度网络中,会发现,这不过是输入的简单的线性组合...

    DrawSky

扫码关注云+社区

领取腾讯云代金券