[转]请问人工神经网络中的activation function的作用具体是什么?为什么ReLu要好过于tanh和sigmoid function?

Posted er-guo-tou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转]请问人工神经网络中的activation function的作用具体是什么?为什么ReLu要好过于tanh和sigmoid function?相关的知识,希望对你有一定的参考价值。

请问人工神经网络中的activation function的作用具体是什么?为什么ReLu要好过于tanh和sigmoid function? - amaze2的回答 - 知乎 https://www.zhihu.com/question/29021768/answer/1321404391

 

激活函数的用处是实现人工神经网络的非线性化。最常用的激活函数包括Sigmoid、Tanh和ReLU,如下图:

技术图片

Sigmoid和Tanh激活函数的梯度取值范围分别是(0,1)和(-1,1)。当层数较多时,人工神经网络可能会遭遇梯度消失的问题。

ReLU激活函数的梯度要么是0,要么是1,能够很好地避免梯度消失和梯度爆炸的问题,因此在近年来得到了广泛的使用。

其实,激活函数不局限于上述3种。软阈值化也可以作为激活函数,其表达式如下:

技术图片
其中τ是阈值,是一个正数。从公式可以看出,软阈值化将[-τ,τ]区间内的特征置为0,将大于τ的特征减τ,将小于-τ的特征加τ。用图片来表示软阈值化,就如下图:
技术图片软阈值化的输出对输入的导数如下:

技术图片

可以看出,和ReLU激活函数一样,软阈值化的梯度要么为0,要么为1,也有利于梯度的反向传播。

当采用软阈值化作为激活函数时,一个很重要的问题是如何设置阈值τ。

残差收缩网络提供了一种思路,其原理图如下:

技术图片

可以看到,残差收缩网络采用了类似Squeeze-and-Excitation Networks的结构,来自动地设置阈值。

Minghang Zhao, Shisheng Zhong, Xuyun Fu, Baoping Tang, Michael Pecht,Deep residual shrinkage networks for fault diagnosis, IEEE Transactions on Industrial Informatics, 2020, 16(7): 4681-4690.

关于软阈值化的深入讨论见下面的链接:

残差收缩网络:从删除冗余特征时的灵活程度进行讨论

https://my.oschina.net/u/4505302/blog/3230965

以上是关于[转]请问人工神经网络中的activation function的作用具体是什么?为什么ReLu要好过于tanh和sigmoid function?的主要内容,如果未能解决你的问题,请参考以下文章

大白话5分钟带你走进人工智能-第35节神经网络之sklearn中的MLP实战

[转]BP人工神经网络的介绍与实现

请问C语言中的float变量值存入char数组,和从char数组中转成float的写法?

电子科技大学人工智能期末复习笔记:概率与贝叶斯网络

请问我应该怎样学习电脑

人工智能中神经网络最重要的运算--卷积的介绍