周期性激活函数
Periodic activation functions
为什么像 sin(x), cos(x) 这样的周期函数不被用作神经网络中的激活函数?
relu = max(0, f(x)) is used
但是
f(x) = sin(x) is not used
从我的角度来看,问题是这些函数为许多输入提供相同的输出,如果神经元获得输入 0,1 输出将与
相同
0,1 + 2kpi
所以你的神经元将对广泛的输入值做出完全相同的反应。 Plain relu 裁剪负值,仅此而已。 Sigmoid 或双曲正切截断了大值和小值,但是 sin 或 cosine 给了你 0,1 的东西; 0,1 + 2pi; 0,1 + 4pi 和 0,5 完全不同的东西; 0,5 + 2pi; 0,5 + 4pi...
如果神经元饱和并且对于大值或低值以某个常数响应是有道理的,但是认为神经元对 pi/2 和 999 + pi/2 响应相同的想法对我来说似乎很糟糕,因为神经元在下一层也会将这些结果视为相同,但来源完全不同(pi/2 vs 999 + pi/2)。
为什么像 sin(x), cos(x) 这样的周期函数不被用作神经网络中的激活函数?
relu = max(0, f(x)) is used
但是
f(x) = sin(x) is not used
从我的角度来看,问题是这些函数为许多输入提供相同的输出,如果神经元获得输入 0,1 输出将与
相同0,1 + 2kpi
所以你的神经元将对广泛的输入值做出完全相同的反应。 Plain relu 裁剪负值,仅此而已。 Sigmoid 或双曲正切截断了大值和小值,但是 sin 或 cosine 给了你 0,1 的东西; 0,1 + 2pi; 0,1 + 4pi 和 0,5 完全不同的东西; 0,5 + 2pi; 0,5 + 4pi...
如果神经元饱和并且对于大值或低值以某个常数响应是有道理的,但是认为神经元对 pi/2 和 999 + pi/2 响应相同的想法对我来说似乎很糟糕,因为神经元在下一层也会将这些结果视为相同,但来源完全不同(pi/2 vs 999 + pi/2)。