神经网络中的**函数是干是什么用的?

我是小玉,一个平平无奇的数据小天才!

最近在回顾神经网络这里知识,发现自己还是有很多知识点掌握不够清楚明了,既然开始搞就要搞得明明白白,会了神经网络等于掌握了大半个机器学习。

跟大家分享一下我在看这里时候遇到的一些常见问题,神经网络不同于传统的机器学习方法,它由于更多的性质在机器学习领域得到了大量应用。但是想要真的弄清楚神经网络还需要下下功夫。

**函数:

我们在学习神经网络的时候必不可免的会听到一个词叫做**函数,这个东西就是对于神经网络来说,起了很大的作用,为神经网络添加了更多的非线性因素,举个例子:

神经网络中的**函数是干是什么用的?

上图是这是一个简单的线性分类问题,正常情况下我们只需要一条直线就可以很好地分类。

但是当我们碰到下图问题时,无法通过一条直线将样本分类出来,需要我们加入非线性因素才可以将样本分类好,而我们的**函数就是我们要加入的非线性因素:

神经网络中的**函数是干是什么用的?

我们在深入理解**函数的时候需要先知道什么是硬饱和什么是软饱和!

假设h(x)是一个**函数。

1.当我们的n趋近于正无穷,**函数的导数趋近于0,那么我们称之为右饱和。

神经网络中的**函数是干是什么用的?

2.当我们的n趋近于负无穷,**函数的导数趋近于0,那么我们称之为左饱和。

神经网络中的**函数是干是什么用的?

3.当一个函数既满足左饱和又满足右饱和的时候我们就称之为饱和,典型的函数有Sigmoid,Tanh函数。

神经网络中的**函数是干是什么用的?,则称其为右硬饱和。如果对于任意的x,如果存在常数c,当x<c时,恒有神经网络中的**函数是干是什么用的?,则称其为左硬饱和。既满足左硬饱和又满足右硬饱和的我们称这种函数为硬饱和。

4.对于任意的x,如果存在常数c,当x>c时,恒有神经网络中的**函数是干是什么用的?趋近于0,则称其为右软饱和。如果对于任意的x,如果存在常数c,当x<c时,恒有神经网络中的**函数是干是什么用的?趋近于0,则称其为左软饱和。既满足左软饱和又满足右软饱和的我们称这种函数为软饱和。

常用的**函数:

1、Sigmoid函数:

神经网络中的**函数是干是什么用的?

Sigmoid函数的优点:1.求导容易。 2.Sigmoid函数的输出映射在(0,1)之间,单调连续输出范围有限,优化稳定可以用作输出层。

缺点:1.由于其软饱和性,容易造成梯度消失问题。2.其输出没有以0为中心。

2、Tanh函数:

神经网络中的**函数是干是什么用的?

Tanh函数的优点:1.收敛速度比Sigmoid函数快。 2. 其输出以0为中心。

缺点:还是出现软饱和现象,梯度消失问题并没有解决。

3、Relu函数:

神经网络中的**函数是干是什么用的?

Relu函数的优点:1.在SGD(随机梯度下降算法)中收敛速度够快。2.不会出现像Sigmoid那样梯度消失问题。3.提供了网络稀疏表达能力。4.在 无监督训练中也有良好的表现。

缺点:1.不以0为中心。

2.前向传导(forward pass)过程中,如果 x < 0,则神经元保持非**状态,且在后向传导(backward pass)中「杀死」梯度。这样权重无法得到更新,网络无法学习。神经元死亡是不可逆的。

4、LReLU、PReLU与RReLU函数:

神经网络中的**函数是干是什么用的?

LRelu函数:

公式:

神经网络中的**函数是干是什么用的?

LRelu的优点:缓解了Relu神经元死亡的问题。

PRelu函数:

公式:

神经网络中的**函数是干是什么用的?

其中神经网络中的**函数是干是什么用的?是超参数。这里引入了一个随机的超参数神经网络中的**函数是干是什么用的?,它可以被学习,因为你可以对它进行反向传播。这使神经元能够选择负区域最好的梯度,有了这种能力,它们可以变成 ReLU 或 Leaky ReLU。负值部分的斜率是根据数据来定的,而非预先定义的。

RRelu函数:

RReLU也是Leaky ReLU的一个变体。在RReLU中,负值的斜率在训练中是随机的,在之后的测试中就变成了固定的了。RReLU的亮点在于,在训练环节中,aji是从一个均匀的分布U(I,u)中随机抽取的数值。

RReLU中的aji是一个在一个给定的范围内随机抽取的值,这个值在测试环节就会固定下来。

5、ELU函数:

神经网络中的**函数是干是什么用的?

优点:右侧的线性部分能够缓解梯度消失,左侧的软饱和能够对于输入变化鲁棒,而且收敛速度更快。

关于神经网络的**函数,汇总有26 种,但是常用的也就这几种,大家掌握好这几种**函数也就可以将神经网络进行灵活应用啦!

有帮助就点个赞呗!