似乎以零为中心,这是激活函数的理想属性。甚至渐变也不会在任何时候消失。我不确定函数的振荡性质或其梯度是否会在反向传播期间引起任何问题。
可以用作深度学习中的激活吗?罪( × )sin(x)
这是一篇专门针对这个问题的论文:
Parascandolo 和 Virtanen (2016)。驯服波浪:正弦作为深度神经网络中的激活函数。
论文中的一些关键点:
正弦激活函数在很大程度上被忽略了,并且被认为难以训练。
他们回顾了过去使用正弦激活函数的工作。其中大部分是早期的工作(在现代“深度学习”热潮之前)。但是,最近有几篇论文。
正弦激活函数的周期性会导致局部最小值不佳的“涟漪”成本函数,这可能会使训练变得困难。
当数据由低频分量(许多现实世界的数据集所预期的)主导时,问题可能不会那么糟糕。在这种情况下学习更容易,但对网络参数的初始化方式很敏感。
他们表明,具有正弦激活函数的网络可以在几个真实世界的数据集上表现得相当好。但是,在训练之后,网络并没有真正使用激活函数的周期性。相反,它们只使用接近零的中心区域,其中正弦曲线几乎等同于更传统的激活函数。
他们在一项预计周期性结构会有所帮助的合成任务上训练循环网络。激活函数相比,的网络学习更快、更准确。但是,vanilla RNN 的差异比 LSTM 大。
这是另一篇相关论文:
Ramachandran, Zoph, Le (2017)。搜索激活函数。
他们对激活函数进行了大规模的自动搜索,以找到表现良好的新变体。他们发现的一些激活函数使用正弦分量(但它们不是纯正弦——它们也往往具有单调分量)。这篇论文没有过多地讨论这些变体,只是说它们是一个有趣的未来研究方向。
截至 2020 年 6 月,斯坦福大学的工作证明您的直觉是正确的,并且确实可以有效地用于各种任务:
它肯定“可以”使用。然而,它没有被使用1的事实表明它不是很实用。对于任何整数的梯度实际上在处为零。我认为使用激活的主要问题是它引入了无限多的对称性,这可能会使学习变得更加困难。
但是,正确的架构始终取决于您正在处理的特定问题和数据表示。我确信在某些情况下,将剪裁到网络中不仅有意义,而且还可以提高性能。
1即不常用。在某种程度上,我从未见过它被使用过(尽管我的经验仅限于计算机视觉问题)。它当然不是 ReLU 或 sigmoid 等普遍适用的非线性之一。
这是我硕士论文的一部分。我已经研究并提到过使用正弦函数作为激活函数和基函数的先前出版物。此外,我还设计了几种不同版本的正弦函数,并将它们用作人工神经网络中的基函数,以替代线性函数。那是去年。您可以在链接中找到代表我论文“使用正弦”部分的论文:我在论文中提到的CSIMQ ,但您也可以搜索该主题的 Fourier Neural Networks。以正弦函数为基础的人工神经网络大多是这样命名的。此外,我在 Medium 上分享了几篇关于这个主题的文章,可以帮助你。 在神经网络中使用正弦激活函数创建替代真理 用于数字分类的正弦 神经网络 具有正弦基函数的神经网络