如何选取激活函数

不是所有信息都是有用的,一些只是噪音。激活函数可以帮助神经网络做这种隔离。它激活有用的信息,并抑制无关的数据点。

激活函数有哪些:

1.Sigmoid函数


优点:非线性;输出范围有限,适合作为输出层。    缺点:在两边太平滑,学习率太低;值总是正的;输出不是以0为中心。

适用于:当我们尝试将值分类到特定的类时,使用Sigmoid函数非常理想。

2.tanh函数


解决了sigmoid的大多数缺点,仍然有两边学习率太低的缺点

3.ReLU函数


优点:不会同时激活所有的神经元,这意味着,在一段时间内,只有少量的神经元被激活,神经网络的这种稀疏性使其变得高效且易于计算。

缺点:x<0时,梯度是零。随着训练的进行,可能会出现神经元死亡,权重无法更新的情况。也就是说,ReLU神经元在训练中不可逆地死亡了。

4.Leaky ReLU函数


解决了RELU死神经元的问题

5.Softmax函数

优点:可以处理多分类问题。softmax函数最好在分类器的输出层使用。


更多激活函数,参见参考文献4......

如何选择正确的激活函数?

根据问题的性质,我们可以为神经网络更快更方便地收敛作出更好的选择。

用于分类器时,Sigmoid函数及其组合通常效果更好。

由于梯度消失问题,有时要避免使用sigmoid和tanh函数。

ReLU函数是一个通用的激活函数,目前在大多数情况下使用。

如果神经网络中出现死神经元,那么PReLU函数就是最好的选择。

请记住,ReLU函数只能在隐藏层中使用。

一点经验:你可以从ReLU函数开始,如果ReLU函数没有提供最优结果,再尝试其他激活函数。



参考文献:

1.baijiahao.baidu.com/s?id=1582399059360085084&wfr=spider&for=pc

2.https://blog.csdn.net/huangfei711/article/details/79613024

3.https://www.cnblogs.com/shixiangwan/p/7567017.html

猜你喜欢

转载自blog.csdn.net/kongxp_1/article/details/80726409