批量归一化是否意味着 sigmoid 比 ReLU 工作得更好?

数据挖掘 深度学习 批量标准化
2021-09-18 05:55:34

批量归一化和 ReLU 都是梯度消失问题的解决方案。如果我们使用批量标准化,那么我们应该使用 sigmoid 吗?或者,即使在使用 batchnorm 时,ReLU 是否也有一些特性让它们变得有价值?

我想在 batchnorm 中完成的标准化将发送零激活负数。这是否意味着 batchnorm 解决了“dead ReLU”问题?

但是 tanh 和logistic 的连续性仍然很有吸引力。如果我使用的是 batchnorm,tanh 会比 ReLU 更好吗?

我确信答案取决于那么,在您的经验中,什么是有效的,您的应用程序的显着特点是什么?

2个回答

看,批量标准化背后的基本概念是(摘自一篇 Medium 文章)-

我们通过调整和缩放激活来标准化我们的输入层。例如,当我们有从 0 到 1 的特征和一些从 1 到 1000 的特征时,我们应该对它们进行归一化以加快学习速度。如果输入层从中受益,为什么不对隐藏层中的值也做同样的事情,这些值一直在变化,训练速度提高 10 倍或更多。

在这里阅读文章。

这就是我们使用批量标准化的原因。现在来回答你的问题,看到 sigmoid 的输出是 0 到 1 之间的约束,这就是批量标准化的座右铭。如果我们使用带有 sigmoid 激活的 Bach-normalization,那么它将被限制在 sigmoid(0) 到 sigmoid(1) 之间,即在 0.5 到 0.73 之间~Fr一个C1/(1+1/e). 但是如果我们将 ReLU 与 Batch-normalization 一起使用,那么输出将分布在 0 到 1 之间,这对我们来说是一件好事,因为最终,我们希望输出尽可能多样化。所以我认为 ReLU 将是其他激活中的最佳选择。

madman 正确回答了您关于批量标准化的问题,让我回答您的第二部分,即连续函数看起来很吸引人,但 relu 比所有函数都好,而且这个陈述不是来自我的 MR。Hinton 引用了它“我们是愚蠢的人,他们使用 sigmoid 作为激活函数,花了 30 年才意识到,如果不了解它的形式,它永远不会让你的神经元进入学习状态,它总是处于饱和状态,所以它是导数和他称自己和所有其他人都傻眼了”。所以选择激活函数仅仅是因为它是连续的,而不是考虑它会如何影响你的神经元'

注意:如果您正在研究神经网络,我建议您将神经网络视为大而深的复合函数,以便了解什么有效以及为什么有效,您需要了解神经网络如何在更高维度上创建大量数据“表示”数据,其中流形的优劣取决于您对函数的选择,以及一个函数在将其作为输入时如何转换其他函数的输出。