1、意义

        没有激活函数(非线性函数),输出都是输入的线性组合,网络逼近能力有限。数据的分布绝大多数是非线性的,而一般神经网络的计算是线性的,引入激活函数,是在神经网络中引入非线性,强化网络的学习能力。所以激活函数的最大特点就是非线性。

2、常见激活函数

(1)sigmoid函数

nlp 激活函数及其优缺点 常用激活函数优缺点_nlp 激活函数及其优缺点

 应用:逻辑回归;二分类任务的输出层(概率预测);隐藏层

缺点:容易产生梯度消失;输出不是0均值,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入,随着网络的加深,会改变数据的原始分布;收敛较慢(可以用batch缓解);含幂运算,耗时。

(2)tanh函数

nlp 激活函数及其优缺点 常用激活函数优缺点_算法_02

应用:LSTM;二分类任务的输出层;隐藏层

优点:输出是0均值

缺点:梯度消失的问题仍存在,有幂运算

 (3)Relu函数

nlp 激活函数及其优缺点 常用激活函数优缺点_算法_03

 应用:目前卷积网络常用;回归任务

优点:收敛速度快;计算快;解决梯度消失(在正区间)

缺点:输出不是0均值;某些神经元可能永不激活(可以Xavier初始化,lr不要设的太大)

 (4)Leaky Relu函数

nlp 激活函数及其优缺点 常用激活函数优缺点_激活函数_04

 优点:解决某些神经元无法激活的问题

(5)softmax

   是为了解决sigmoid无法进行多分类而提出的

nlp 激活函数及其优缺点 常用激活函数优缺点_深度学习_05

 2、Relu在零点可导吗,如何进行反向传播

不可导,间断点的求导按左导数计算,默认为0

3、softmax溢出怎么处理

上溢出:zi极大,导致分子计算时上溢出

下溢出:zj为负数,且zj的绝对值很大,分母极小,就会下溢出

解决:令M=max(zj),只需要把原来计算f(zj)的值改为计算f(zj-M)的值,就能解决。如此,分子最大值为0,不会发生上溢出,分母至少包含一个值为1的项,不会下溢出

nlp 激活函数及其优缺点 常用激活函数优缺点_算法_06

 4、sigmoid和Relu的优缺点

Relu优点:在大于0的部分梯度为常数,所以不会产生梯度弥散,而对于sigmoid,在负饱和区间的梯度都接近于0,可能导致梯度消失现象。Relu函数的导数计算更快,所以使用梯度下降时比sigmoid收敛要快。

Relu缺点:死亡问题,当x小于0的时候,从此流过的神经元的梯度都变为0,在训练中参数无法更新,导致了数据多样化的缺失(因为数据不起作用)

sigmoid优点:具有很好的可解释性,将线性函数的组合输出为0,1之间的概率

sigmoid缺点:激活函数计算量大,反向传播求梯度时,求导涉及除法,反向传播时,在饱和区两边容易导致导数为0,即梯度消失。

5、softmax和sigmoid在多分类的选择

若多个类别之间时互斥的,就应该使用softmax,若不是就要使用sigmoid