非线性激活函数介绍(需要看)

1. 几种非线性激励函数(Activation Function)

神经网络中,正向计算时,激励函数对输入数据进行调整,反向梯度损失。梯度消失需要很多方式去进行规避。

1.1 Sigmoid函数

表达式为: 

y(x)=sigmoid(x)=11+e−x,y(x)in(0,1)y(x)=sigmoid(x)=11+e−x,y(x)in(0,1)

y(x)′=y(x)(1−y(x)),y′in(−∞,14]y(x)′=y(x)(1−y(x)),y′in(−∞,14]


该函数将输入映射到(0,1)(能否取到0和1,取决于计算机的精度),由导数可看出, 最大值为0.25,也即在反向计算时,梯度损失非常明显,至少减少75%,

1.2 Tanh函数

表达式为: 

f(x)=tanh(x)=21+e−2x−1,f(x)in(−1,1)f′(x)=1−f(x)2,f′(x)in(0,1)f(x)=tanh⁡(x)=21+e−2x−1,f(x)in(−1,1)f′(x)=1−f(x)2,f′(x)in(0,1)


该函数将输入映射到(-1,1)(能否取到-1和1,取决于计算机的精度),由导数可看出,在反向计算时,梯度也会有所损失。倘若网络深度非常深,梯度消失(gradient vanishing)。 
这里写图片描述

1.3 ReLU ( Rectified Linear Unit)函数

表达式为: 

这里写图片描述


该函数将输入分两个段进行映射,当输入值小于0时,则将原值映射为0,若输入值大于0则按照原值传递,即,正向计算的时候,会损失特征大量,由导数可看出,在反向计算时,梯度没有损失。 

这里写图片描述

(1) ReLU的优缺点

  1. 1) 优点1:

Krizhevsky et al. 发现使用 ReLU 得到的SGD的收敛速度会比 sigmoid/tanh 快很多。有人说这是因为它是linear,而且梯度不会饱和

  • 2) 优点2:

相比于 sigmoid/tanh需要计算指数等,计算复杂度高,ReLU 只需要一个阈值就可以得到激活值。

  • 3) 缺点1:

    ReLU在训练的时候很”脆弱”,一不小心有可能导致神经元”坏死”。 
    举个例子:由于ReLU在x<0时梯度为0,这样就导致负的梯度在这个ReLU被置零,而且这个神经元有可能再也不会被任何数据激活。如果这个情况发生了,那么这个神经元之后的梯度就永远是0了,也就是ReLU神经元坏死了,不再对任何数据有所响应。实际操作中,如果你的learning rate 很大,那么很有可能你网络中的40%的神经元都坏死了。 当然,如果你设置了一个合适的较小的learning rate,这个问题发生的情况其实也不会太频繁。

(2) ReLU正向截断负值,损失大量特征,为什么依然用它?

答:特征足够多,反向梯度无损失!

1.4 Leaky ReLU(Leaky Rectified Linear Unit)

表达式如下: 

这里写图片描述


Leaky ReLU. Leaky ReLUs 就是用来解决ReLU坏死的问题的。和ReLU不同,当x<0时,它的值不再是0,而是一个较小斜率(如0.01等)的函数。也就是说f(x)=1(x<0)(ax)+1(x>=0)(x),其中a是一个很小的常数。这样,既修正了数据分布,又保留了一些负轴的值,使得负轴信息不会全部丢失。关于Leaky ReLU 的效果,众说纷纭,没有清晰的定论。有些人做了实验发现 Leaky ReLU 表现的很好;有些实验则证明并不是这样。 
-PReLU. 对于 Leaky ReLU 中的a,通常都是通过先验知识人工赋值的,比如说0.01

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
线性激活函数非线性激活函数是神经网络中常用的两种类型的激活函数。 线性激活函数是指输出与输入之间存在线性关系的激活函数。常见的线性激活函数有恒等函数(identity function),即f(x) = x。线性激活函数的特点是输出的范围与输入的范围相同,不具备非线性变换的能力。因此,线性激活函数在神经网络中的作用有限,主要用于回归任务或者作为输出层的激活函数非线性激活函数是指输出与输入之间不存在线性关系的激活函数。常见的非线性激活函数有Sigmoid函数、Tanh函数、ReLU函数、Leaky ReLU函数和Softmax函数等。这些非线性激活函数能够引入非线性变换,增加神经网络的表达能力,使其能够更好地适应复杂的数据模式和任务。 Sigmoid函数和Tanh函数是常用的非线性激活函数,它们在二分类任务的输出层和模型的隐藏层中使用。Sigmoid函数将输入映射到(0,1)区间内,Tanh函数将输入映射到(-1,1)区间内。它们的优点是输出范围有限,可以用作概率估计或者对称性的处理,但是由于梯度消失的问题,在某些情况下需要避免使用。 ReLU函数是一种常见的非线性激活函数,目前在神经网络中使用最广泛。它将负输入值映射为0,将正输入值保持不变。ReLU函数的优点是计算简单,能够有效地缓解梯度消失的问题。但是它也存在一个问题,即可能导致神经元的死亡,即负输入值对应的梯度为0,导致神经元无法更新。为了解决这个问题,可以使用Leaky ReLU函数,它在负区域具有小的正斜率,可以进行反向传播。 Softmax函数是一种用于多分类任务输出层的非线性激活函数。它将多个神经元的输出映射到(0,1)区间内,可以看作是当前输出属于各个分类的概率。Softmax函数的优点是除了用于二分类还可以用于多分类,增加了区分对比度,学习效率更高。但是它也存在一个缺点,即无法为正负输入值提供一致的关系预测。 综上所述,线性激活函数适用于回归任务或者作为输出层的激活函数非线性激活函数适用于隐藏层和多分类任务的输出层。具体选择哪种激活函数要根据具体的任务和数据特点来决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值