常用几种激活函数的总结

目录

一、激活函数是什么

二、为什么要用到激活函数呢

三、常用的激活函数

sigmoid函数

Tanh函数

 ReLU函数


一、激活函数是什么

所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。

激活函数对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。引入激活函数是为了增加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。

二、为什么要用到激活函数呢

如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。

如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

三、常用的激活函数

  1. sigmoid函数

    也称为S型生长曲线

    sigmod函数的求导:

    在sigmod函数中我们可以看到,其输出是在(0,1)这个开区间内,而这(0,1)之间的数值,可以联想到概率。 sigmoid函数的缺陷:

    1) 当输入稍微远离了坐标原点,函数的梯度就变得很小了,几乎为零。在神经网络反向传播的过程中,我们都是通过微分的链式法则来计算各个权重w的微分的。当反向传播经过了sigmod函数,这个链条上的微分就很小很小了,况且还可能经过很多个sigmod函数,最后会导致权重w对损失函数几乎没影响,这样不利于权重的优化,这个问题叫做梯度饱和,也可以叫梯度弥散。

    2) 函数输出不是以0为中心的,这样会使权重更新效率降低。

    3) sigmod函数要进行指数运算,这个对于计算机来说是比较慢的。

  2. Tanh函数

    Tanh函数的导数:

tanh是双曲正切函数,tanh函数和sigmod函数的曲线是比较相近的。首先相同的是,这两个函数在输入很大或是很小的时候,输出都几乎平滑,梯度很小,也就是斜率很小,不利于权重更新;不同的是输出区间,tanh的输出区间是在(-1,1)之间,而且整个函数是以0为中心的,这个特点比sigmod的好。

一般二分类问题中,隐藏层用tanh函数,输出层用sigmod函数。不过这些也都不是一成不变的,具体使用什么激活函数,还是要根据具体的问题来具体分析,还是要靠调试的。

     ReLU函数

ReLU----Rectified Linear Unit(修正线性单元)

ReLU函数的导数:

优点:

1.在输入为正数的时候,就不会出现梯度饱和的情况 2.计算速度要快很多,ReLU只有线性关系,不管是前向传播还是反向传播,都要比sigmoid和tanh函数快很多,因为这两种是指数计算,速度肯定比计算线性要慢。

缺点: 1.当输入是负数的时候,ReLU是完全不被激活的,这就表明一旦输入到了负数,ReLU就会死掉。这样在前向传播过程中,还不算什么问题,有的区域是敏感的,有的是不敏感的。但是到了反向传播过程中,输入负数,梯度就会完全到0,这个和sigmod函数、tanh函数有一样的问题。 2.我们发现ReLU函数的输出要么是0,要么是正数,这也就是说,ReLU函数也不是以0为中心的函数。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值