为什么像sin(x)、cos(x)这样的周期性函数不被用作神经网络的激活函数?
relu = max(0, f(x)) is used
但是
f(x) = sin(x) is not used
回答:
在我看来,问题在于这些函数对许多输入提供了相同的输出,如果神经元接收到0.1的输入,输出将与
0.1 + 2kπ
相同,因此你的神经元会对广泛的输入值做出完全相同的反应。普通的ReLU会截断负值,仅此而已。Sigmoid或双曲正切函数会截断大值和小值,但正弦或余弦函数会在0.1、0.1 + 2π、0.1 + 4π时给你相同的结果,而在0.5、0.5 + 2π、0.5 + 4π时给你完全不同的结果…
如果神经元饱和,并且对大值或小值以某个常数响应,这是有道理的,但神经元对π/2和999 + π/2做出相同的响应似乎不好,因为下一层的神经元也会将这些结果视为相同,但来源却完全不同(π/2与999 + π/2)。