神经网络中的激活函数介绍

栏目: 编程工具 · 发布时间: 6年前

内容简介:在这浮躁的社会沉静,用心记录,用心学习!

神经网络中的激活函数介绍

神经网络中的激活函数介绍

激活函数(Activation Function)是神经元中非常重要的一部分,为了增强网络的表示能力和学习能力,通常具备了多种特性,本篇文章会介绍几种常用的激活函数。

转载请注明出处:http://blog.csdn.net/gamer_gyt

博主微博:http://weibo.com/234654758

Github:https://github.com/thinkgamer

公众号:数据与算法联盟

人工神经元(Artifical Neuron)简称神经元(Neuron),是构成神经网络的基本单元,其主要是模拟生物神经元的结构和特性,接受一组输入信息并产出输出。

激活函数(Activation Function)

是神经元中非常重要的一部分,为了增强网络的表示能力和学习能力,激活函数需要具备以下几点性质:

  • 连续并可导的非线性函数,可导的激活函数可以直接利用数值优化的方法来学习网络参数。

  • 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率。

  • 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和温度性。

Sigmoid函数

S型曲线函数,常见的Sigmoid函数有Logistic函数和tanh函数。

知识点:对于函数f(x),若x趋向于负无穷大,其导数f'(x)趋向于0,则称其为左饱和。若x趋向于正无穷大,其导数f'(x)趋向于0,则称其为右饱和。同时满足左右饱和时,称为两端饱和。

  • Logistic 函数

    神经网络中的激活函数介绍

  • tanh函数

神经网络中的激活函数介绍

tanh函数可以看作是放大并平移的Logistic函数,其值域是(-1,1)。

神经网络中的激活函数介绍

tanh函数的输出是零中心化的(Zero-Centered),而Logistic函数的输出值恒大于0。非零中心化的输出会使得最后一层的神经元的输入发生位置偏移(Bias Shift),并进一步使得梯度下降的收敛速度变慢。

神经网络中的激活函数介绍
image

修正线性单元数

Rectified Linear Unit(ReLU)也叫rectifier函数,是目前深层神经网络中经常使用的激活函数。ReLU实际上是一个斜坡函数,定义为:

神经网络中的激活函数介绍

ReLU的优缺点:

  • 优点

采用ReLU的神经元只需要进行加,乘,和,比较的操作,计算上更加高效。Sigmoid型激活函数会导致一个非稀疏的神经网络,而ReLU却具有很好的稀疏性,大约50%的神经元会处于激活状态。

在优化方面,由于Sigmoid型函数的两端饱和,ReLU函数为左饱和函数,且在x>0时导数为1,在一定程度上缓解了神经网络的梯度消失问题,加速梯度下降的收敛速度。

  • 缺点

ReLU的输出是非零中心化的,给后一层的神经网络引入偏置偏移,会影响梯度下降的效率。此外ReLU神经元在训练时比较容易死亡。在训练时,如果参数在一次不恰当的更新后,第一个隐藏层中的某个ReLU神经元在所有的训练数据上都不能被激活,那么这个神经元自身参数的梯度永远都会是0,在以后的训练过程中永远不能被激活。这种现象称为死亡ReLU问题(Dying ReLU Problem),并且也有kennel会发生在其他隐藏层。

在实际使用中,为了避免上述情况,有集中ReLU的变种也会被广泛使用。

带泄漏的ReLU

带泄漏的ReLU在输入x<0时,保持一个很小的梯度 lambda。这样当神经元非激活时也能又一个非零的梯度可以更新参数,避免永远不能被激活。带泄漏的ReLU的定义如下:

神经网络中的激活函数介绍

其中 gamma是一个很小的常数,比如0.01。当gamma < 1时,带泄漏的ReLU也可以写为:

神经网络中的激活函数介绍

相当于是一个比较简单的maxout单元。

带参数的ReLU

带参数的ReLU引入一个可学习的参数,不同神经元可以有不同的参数,对于第i个神经元,其PReLU的定义为:

神经网络中的激活函数介绍

其中γi为x≤0时函数的斜率。因此,PReLU是非饱和函数。如果γi =0,那 么 PReLU 就退化为 ReLU。如果 γi 为一个很小的常数,则 PReLU 可以看作带 泄露的 ReLU。PReLU 可以允许不同神经元具有不同的参数,也可以一组神经 元共享一个参数。

ELU

指数线性单元(Exponential Linear Unit)是一个近似的零中心化的非线性函数,其定义为:

神经网络中的激活函数介绍

其中 γ ≥ 0是一个超参数,决定x ≤ 0时的饱和曲线,并调整输出均值在0附

近。

Softplus函数

Softplus函数可以看作是rectifier函数的平滑版本,其定义为:

神经网络中的激活函数介绍

Softplus函数及其导数刚好是Logistic函数。Softplus函数虽然也具有单侧抑制,宽兴奋边界的特征,却没有稀疏激活性。

下图为几种激活函数的示例:

神经网络中的激活函数介绍
激活函数对比

Swish函数

Swish函数是一种自门控(self-Gated)激活函数,其定义为:

神经网络中的激活函数介绍

其中 sigma(.)为logistic函数,beta为可学习的参数或一个固定超参数。sigma(.) 属于 (0,1)可以看做是一种软性的门控机构。当sigma(beta x)接近于1时,门处于“开”状态,激活函数的输出近似于x本身;当sigma(beta x)接近于0时,门的状态为“关”,激活函数的输出近似于0。

下图为Swish函数的示例:

神经网络中的激活函数介绍
image

当 beta=0时,Swish函数变成线性函数 x/2。当 beta=1时,Swish 函数在 x>0时近似线性,在x < 0时近似饱和,同时具有一定的非单调性。当beta趋向于正无穷大时, sigma(beta x)趋向于离散的0-1函数,Switch函数近似为ReLU函数。

因此Swish函数可以看作时线性函数和ReLU函数之间的非线性插值函数,其程度由参数beta控制。

Maxout单元

Maxout单元也是一种分段线性函数。Sigmoid型函数, ReLU等激活函数的输入是神经元的净输入z,是一个标量。而maxout单元的输入是上一层神经元的全部原始输入,是一个向量x=[x1;x2;…;x_d]。

每个maxout单元有K个权重向量w_k 属于 R^d 和偏置 b_k(1 <= k <= K)。对于输入x,可以得到K个净输入z_k,1 <= k <=K。 神经网络中的激活函数介绍

其中

神经网络中的激活函数介绍

为第k个权重向量。

Maxout单元的非线性函数定义为:

神经网络中的激活函数介绍

Maxout单元不单是净输入到输出之间的非线性映射,而是整体学习输入到输出之间的非线性映射关系。Maxout激活函数可以看作任意凸函数的分段线性近似,并且在有限的点上是不可微的。

在这浮躁的社会沉静,用心记录,用心学习!

神经网络中的激活函数介绍

神经网络中的激活函数介绍

关于【数据与算法联盟】

专注于推荐系统,深度学习,机器学习,数据挖掘,云计算,人工智能,架构和编程等技术干货的分享和探讨,偶尔会推送一些福利,文字,摄影和游记,扫码关注,不再孤单。

神经网络中的激活函数介绍

更多干货,扫码关注

相关文章

基于神经网络实现Mnist数据集的多分类

TensorFlow实现Mnist数据集的多分类逻辑回归模型

深度学习中的epochs、batch_size、iterations详解

转载 | 十图详解tensorflow数据读取机制(附代码)

TensorFlow的逻辑回归实现

TensorFlow实现线性回归

TensorFlow的MNIST学习

TensorFlow安装、变量学习和常用操作

欢迎投稿,凡是投稿一经录用者,赠送技术图书和相关学习资料

国内各大互联网公司,可内推

关注公众号,加小编微信,拉你进

数据与算法交流群

你点的每个 “在 看” ,我都认真当成了喜欢


以上所述就是小编给大家介绍的《神经网络中的激活函数介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beautiful Code

Beautiful Code

Greg Wilson、Andy Oram / O'Reilly Media / 2007-7-6 / GBP 35.99

In this unique work, leading computer scientists discuss how they found unusual, carefully designed solutions to difficult problems. This book lets the reader look over the shoulder of major coding an......一起来看看 《Beautiful Code》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试