作者:SAGAR SHARMA编译人:荣淮扬
导读
激活函数是神经网络必不可少的一部分。本文向大家介绍了各种激活功能。让我们来看看。
什么是激活函数?
是神经网络输出后加的一个东西节点)。也就是说,传递函数也可以添加在两层神经网络之间。为什么要在神经网络中使用激活函数?
它用于确定神经网络的输出,就像是或否一样,并将结果映射到0和1之间或-1和1之间根据不同的函数)。基本上有两种激活功能:
线性激活函数,非线性激活函数参考:下面有一个查找表,线性或相同的激活函数。
你可以看到这个函数是一条直线,或者说是线性的。也就是说,函数的输出不限于任何范围。
线性激活函数
公式: fx)=x
范围:负无穷大到正无穷大)
对神经网络的复杂性和常用数据的各种参数帮助不大。
非线性激活函数
非线性激活函数是最常用的激活函数,非线性图如下所示:
非线性激活函数
它使模型更容易概括和适应不同的数据,区分不同的输出。
对于非线性函数,需要理解的主要术语有:
或导数:X轴的变化导致Y轴的变化,也称为斜率。单调函数:函数要么不断变大,要么不断变小。非线性激活函数的类型主要根据其范围或曲线类型来划分:
1.乙状结肠或逻辑激活函数
Sigmoid函数曲线就像一个S形。
Sigmoid函数
我们使用sigmoid函数主要是因为它的输出范围从0到1。所以经常用在需要预测概率的模型中,因为概率的范围是0到1,sigmoid正好适合。
这个函数是可微的,这意味着sigmoid曲线上的任意两点都可以找到斜率。
这个函数是单调的,但是函数的导数不是单调的。
Sigmoid函数可能会导致神经网络在训练中卡住。
softmax函数是一个更通用的逻辑激活函数,用于多类分类。
2.Tanh激活函数
Tanh类似于逻辑sigmoid,但更好。Tanh的函数范围从-1到1,tanh也是S型的。
tanh vs Logistic Sigmoid
tify”>优点是,负的输入会映射成负值,0输入会被映射成0附近的值。
这个函数可微的。
这个函数是单调的,不过函数的导数不是单调的。
tanh函数主要用在区分两个类别的时候。
tanh和logistic sigmoid激活函数都是用在前向网络中。
3. ReLU 激活函数
ReLU是目前世界上用的最多的激活函数,几乎所有的深度学习和卷积神经网络中都在使用它。
你可以看到,ReLU是半整流的,当z小于0时,fz)是0,当z大于等于0时,fz)等于z。
取值范围: [ 0,无穷)
这个函数和它的导数都是单调的。
但问题是,所有的负值都会变为零,这降低了模型拟合数据的能力。这意味着任何给ReLU激活函数的负值的输入都会在图中立即转换为零,这样没有合理的映射负值反过来又会影响结果图。
4. Leaky ReLU
它尝试解决ReLU的负值映射为0的问题。
你看到Leak了吗?
leak有助于增加ReLU函数的取值范围,a的值是0.01或者类似的比较小的值。
当a不是0.01时,叫做Randomized ReLU。
所以,Leaky ReLU的取值范围是(负无穷到正无穷)。
Leaky 和 Randomized ReLU函数及其导数都是单调的。
为什么需要用到导数/微分?
当对曲线进行更新时,需要知道更新的方向和大小,这个需要依赖斜率。这就是为什么在几乎所有的机器学习和深度学习中我们都需要使用微分。
原文链接:https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6
更多文章,请关注微信公众号:AI公园