首页 > 解决方案 > 用于神经网络的激活函数

问题描述

如果这个问题不是传统方法,其中涉及代码片段或有关代码的问题,请提前道歉。我只是想了解有关神经网络主题的某些特定点。我正在观看有关为神经网络选择最佳激活函数的 YouTube 视频(Siraj Raval - School of AI): https: //www.youtube.com/watch?v=-7scQpJT7uo

1-我试图理解他对为什么 Sigmoid 不再是神经网络使用的理想激活函数的解释,原因如下:

首先,我猜的第一个和第二个原因是相似的,或者说第一个原因导致了第二个原因。那是对的吗?

2- 第三个我不明白的原因(不是以零为中心的)。在视频中的 5:52,Siraj 解释了“......输出从 0 开始到 1 结束,这意味着函数之后的值将是正的,这使得权重的梯度要么全部为正,要么全部为负。这使得梯度更新在不同方向上走得太远......”。这一点我没看懂。至少在理想情况下,从数学上了解这是如何解释的会很有帮助。

3- 他接着说 Tanh 函数解决了这个问题。我再次不明白为什么(数学上)。

4- a) 然后在 7:20,他提到 ReLU 最适合用于隐藏层,而 SoftMax 函数用于输出层。但没有具体引用哪个功能。那么 Sigmoid 函数在这里是一个很好的假设吗?b)他还补充说,线性函数应该用于回归“......因为信号通过不变......”。他这句话是什么意思?

5- 最后,他提到了 ReLU 的问题,其中“......某些单元在训练期间可能很脆弱并死亡,这意味着流经神经元的大梯度可能会导致权重更新,使其永远不会在任何数据点上再次激活。那么从那时起,流经它的梯度将始终为零……”。再一次,我不明白那个解释,尤其是没有看到它的数学方面,所以这个解释是有道理的。

我对神经网络和 Sigmoid 函数有相当基本的直觉,但为了深入解释,比如这个关于不同激活函数的视频,我觉得某些解释只是随便提到的,也没有用一些数学来解释推理。

任何帮助将非常感激。非常感谢。

标签: machine-learningneural-networkactivation-function

解决方案


乙状结肠。使用神经网络时,您需要此功能,因为它保持非线性,当然,这在输出层中。

reLU,训练的时候,在隐藏层用这个,需要x>0的值,所以reLU取这个值。我建议看一下 reLU,softmax 也很好用,但是在实践中使用 reLU 会得到更好的结果。


推荐阅读