摘要: 激活函数就是神经网络输出端的一个节点,来链接两个神经网络。激活函数都有哪些类型?让咱们继续阅读。
激活函数就是神经网络输出端的一个节点,来链接两个神经网络。网络
激活函数用来肯定神经网络的输入,好比“是”或“否”,将结果映射为[0,1]或[-1,1]之间,根据函数的曲线,可分为两种类型:线性激活函数、非线性激活函数。dom
1.线性激活函数(恒等激活函数)机器学习
以下图所示,函数是线性的,函数的输出范围为(-∞,+∞)。函数
线性激活函数学习
方程式:f(x) = xspa
取值范围:(-∞,+∞)3d
2.非线性激活函数blog
非线性激活函数是最经常使用的激活函数,其曲线以下图所示:ip
非线性激活函数get
使用非线性激活函数,模型能够更容易进行自我调整,并区分不一样的输出。非线性激活函数中的主要术语有:
1.导数或微分:y轴随x轴的变化,称为斜率。
2.单调函数:彻底递增或彻底递减的函数。
根据取值范围,非线性激活函数可分为如下几种:Sigmoid激活函数、Tanh激活函数、ReLU激活函数、
1.Sigmoid激活函数(Logistic激活函数)
Sigmoid激活函数的曲线呈“S”形。
Sigmoid激活函数
sigmoid函数很受大众的欢迎,其主要缘由是:它的输出处于[0,1]范围内,特别适用于输出几率的模型。因为任何几率的取值在0和1范围之间,所以,sigmoid激活函数是最好的选择。
该函数是可微的,也就是说,咱们能够获得“S”曲线上任意两点之间的斜率。这个函数是单调的,可是其导数不是,sigmoid 激活函数可能会致使神经网络在训练的时候卡住。
softmax函数是一种更通用的逻辑激活函数,用于多类分类。
2.Tanh激活函数
tanh激活函数和sigmoid激活函数相似,可是要比sigmoid激活函数好。tanh激活函数的取值范围是(-1,1),曲线也呈“S”形。
sigmoid激活函数和tanh激活函数
tanh激活函数的优势在于,若是输入为负数,则输出也为负数,输入为0,则输出也近似为0。
该函数是可微分、单调的,但其导数不单调。tanh激活函数主要用于分类。
tanh和sigmoid激活函数均可用于前馈网络。
3.ReLU激活函数(Rectified Linear Unit)
在神经网络中,使用最多的激活函数是ReLU激活函数,它几乎可用于全部卷积神经网络或深度学习中。
ReLU激活函数和Sigmoid激活函数
如上图所示,在ReLU激活函数中,当z<0时,f(z)=0;当z>0时,f(z)=z。取值范围为[0,+∞]
ReLU激活函数及其导数都是单调的。
但这存在一个问题:当输入为负值时,输出马上变为0,这就下降了模型拟合或训练数据的能力。反过来讲,为了避免影响结果,就不能映射负值输入。
4. Leaky ReLU激活函数
Leaky ReLU激活函数的出现,试图解决ReLU激活函数中出现的死亡问题。
ReLU激活函数和Leaky ReLU激活函数
Leaky ReLU激活函数扩大了ReLU激活函数的取值范围,如上图所示,一般,a的值为0.01左右。取值范围:(-∞,+∞)。
当a不是0.01时,该函数称为Randomized ReLU。
本质上来讲,Leaky ReLU函数和Randomized ReLU函数都是单调的。 并且,它们的导数也单调。
在更新曲线时,咱们要知道哪一个方向上会发生变化,或者是根据斜率来更新曲线。这就是咱们要在机器学习和深度学习的每一个部分都使用微分的缘由。
激活函数汇总
激活函数的导数曲线图汇总
本文做者:【方向】
本文为云栖社区原创内容,未经容许不得转载。