为啥门控激活函数(在 Wavenet 中使用)比 ReLU 工作得更好?

Posted

技术标签:

【中文标题】为啥门控激活函数(在 Wavenet 中使用)比 ReLU 工作得更好?【英文标题】:Why does the gated activation function (used in Wavenet) work better than a ReLU?为什么门控激活函数(在 Wavenet 中使用)比 ReLU 工作得更好? 【发布时间】:2019-09-27 09:54:38 【问题描述】:

我最近一直在阅读 Wavenet 和 PixelCNN 的论文,在这两篇论文中,他们都提到使用门控激活函数比 ReLU 更有效。但在这两种情况下,他们都没有解释为什么会这样。

我曾在其他平台(如 r/machinelearning)上询问过,但到目前为止我还没有得到任何答复。可能是他们只是(偶然)尝试了这种替代方法,结果却产生了良好的结果?

参考功能: y = tanh(Wk,f * x) 。 σ(Wk,g * x)

卷积的 sigmoid 和 tanh 之间的元素乘法。

【问题讨论】:

【参考方案1】:

我进行了一些挖掘并与一位朋友进行了更多交谈,他向我介绍了 Dauphin 等人的一篇论文。人。关于“门控卷积网络的语言建模”。他在论文的第 3 节中对此主题进行了很好的解释:

LSTM 通过由输入和遗忘门控制的单独单元启用长期记忆。这允许信息通过潜在的许多时间步不受阻碍地流动。如果没有这些门,信息很容易在每个时间步的转换中消失。

相比之下,卷积网络不会遭受相同类型的消失梯度,我们通过实验发现它们不需要遗忘门。因此,我们考虑仅具有输出门的模型,它允许网络控制哪些信息应该通过层的层次结构传播。

换句话说,这意味着他们采用了门的概念并将其应用于顺序卷积层,以控制允许通过的信息类型,显然这比使用 ReLU 更有效。

edit:但是为什么效果更好,我仍然不知道,如果有人能给我一个更直观的答案,我将不胜感激,我环顾四周,显然我们我们的判断仍然基于反复试验。

【讨论】:

你发现了吗?

以上是关于为啥门控激活函数(在 Wavenet 中使用)比 ReLU 工作得更好?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 TensorFlow 分类示例不使用激活函数?

为啥会存在激活函数?

从函数中退出以减少激活对象比递归或调用嵌套函数更好吗?

如果已经把音频作为输入,为什么还需要谷歌的WaveNet模型来生成音频?

为啥使用 mysql 准备好的语句比使用常见的转义函数更安全?

Python TensorFlow 形状不匹配(WaveNet)