深度学习必备小知识之激活函数的区别

自从1943年,人工神经元的提出,就已经对激活函数有了概念。

而随着1957年,在单层感知机的提出中,激活函数还是简单的线性函数,较为单一,且只能解决简单的线性问题,不能分类中的异或问题,由此可见,线性函数存在很大的局限性。

而目前常用的激活函数都有以下基本性质

非线性:能解决了线性函数的局限性,能更好的逼近实际的真值,获取更好的模型。

可微性:目前在训练网络模型中,基于梯度的模型最优化方法都要求激活函数是可导的。

单调性:单调函数能够保证模型的简单,且能在一定程度上,更快速地使模型收敛。

1、阶跃函数(step):

阶跃函数是较为理想的激活函数,将输入数据映射为0或1,当输出为1表示当前神经元处于激活状态,相反当值为0,表示当前神经元处于抑制状态;

但是,阶跃函数不具备连续、光滑、可导的特点,因此在实际使用中通常不用阶跃函数作为激活函数

深度学习必备小知识之激活函数的区别_第1张图片

2.sigmoid函数和tanh函数:

sigmoid函数和tanh函数曾是最常用的激活函数,函数表示及图像如下:

深度学习必备小知识之激活函数的区别_第2张图片深度学习必备小知识之激活函数的区别_第3张图片

 近年来,sigmoid函数已经很少被采用了,主要由于两个缺点:

1、利用反向传播来训练神经网络时,sigmoid函数会产生梯度消失的问题,从而导致模型最终无法继续训练到模型收敛,最后会使模型的效果不理想。

2、经过sigmoid函数处理后的函数是个非负值,在反向传播的过程中,会出现不平衡性(因为最后的反向传播中,所传回的误差值符号的单一性,不利于模型的再次迭代),最终增加了梯度的不稳定性。

与sigmoid函数相比,tanh函数相当于对输入数据做了归一化处理,且符合正态分布标准,但仍然具有两头可能出现梯度消失(梯度饱和)的问题。

3、ReLU函数:

ReLU属于近似生物神经元的激活函数的其中一种,近年来发现要比传统的sigmoid函数效果要好,与之类似还有softplus函数。

ReLU具备的优点:

1、单侧抑制,可以明显看到,当输入小于0时,神经元处于抑制状态,而当输入大于0时,神经元处于激活态。

2、相对宽阔的兴奋边界,通过比较sigmoid和tanh函数发现,它们的激活态基本集中在较为狭小的范围内,而ReLU则宽阔很多。

3、稀疏激活性,当处于激活态时,ReLU函数所能达到的收敛速度远快于其他的激活函数,要么进入抑制态,但不会出现梯度饱和的情况。

深度学习必备小知识之激活函数的区别_第4张图片深度学习必备小知识之激活函数的区别_第5张图片

 4、ELU函数和SELU函数

深度学习必备小知识之激活函数的区别_第6张图片 ELU

深度学习必备小知识之激活函数的区别_第7张图片

 

5、Leaky-ReLU函数:

在讨论ReLU中的稀疏激活性时,由于ReLU对抑制态的处理方式过于极端,从而导致抑制态后期也无法再进行运算,导致了后期的训练会变得脆弱。所以就将原来置0的方式稍作修改,改成乘以一个较小的负实数a,这样就有效地缓解了稀疏性导致的训练脆弱性问题。

后期通过改变负实数a值的方式,还衍生了多种改进版本,包括Parametric-ReLU和Randomize-Leaky。

Parametric-ReLU(P-ReLU)将a的值作为参数,与神经网络权重参数一起由反向传播算法求得。

Randomize-ReLU(R-ReLU)就是在一个高斯分布中随机取值,然后再测试过程中进行修正。

深度学习必备小知识之激活函数的区别_第8张图片
 

 6、Softmax函数

Softmax函数一般用于多类分类问题,Softmax函数与正常的max函数不同:max函数仅输出最大值,但Softmax函数确保较小的值具有较小的概率,并且不会直接丢弃。Softmax函数的分母结合了原始输出值的所有因子,这意味着Softmax函数获得的各种概率是具有相关性的。

Softmax激活函数的特点:

    1、在零点不可微。
    2、负输入的梯度为零,这意味着对于该区域的激活,权重不会在反向传播期间更新,因此会产生永不激活的死亡神经元

 

 

你可能感兴趣的:(机器学习,pytorch学习笔记,深度学习,机器学习,人工智能,神经网络,卷积神经网络)