我试图理解SELU激活函数,我想知道为什么深度学习从业者继续使用 RELU,而不是 SELU,它使神经网络能够更快地收敛并在内部规范化每一层?
为什么深度学习模型仍然使用 RELU 而不是 SELU 作为它们的激活函数?
ReLU 计算速度快,而且易于理解和解释。但我认为人们主要使用 ReLU,因为其他人都这样做。激活函数并没有太大的区别,证明或反驳需要添加另一个维度的超参数组合来尝试。
如果研究是为了一篇论文,还有另一个考虑因素:你会想要坚持你的基准测试使用的东西,其他人都在做什么,除非研究是专门关于激活函数的。
(顺便说一句,我几乎没有看到关于在不同层使用不同激活函数的利弊的研究。我怀疑这也是因为超参数组合爆炸,再加上预期它不会产生太大影响。)
SELU 功能在几个方面都是硬推销。首先,它需要阅读一篇长论文来理解并接受它附带的几个神奇数字。但更大的因素可能是它进行了内部标准化,这意味着您不再需要批量或层标准化。还是你?突然之间,这不是对 ReLU 的简单交换,而是影响了架构的其他部分。
这是一篇关于大量替代激活函数的好文章:https ://mlfromscratch.com/activation-functions-explained/ 他们给 SELU 的缺点是没有足够的比较研究论文,针对不同的架构, 然而。
我想根据我在科学论文方面的经验来回答这个问题。关键是,当实践者尝试提出新想法时,他们应该在工作中进行消融研究。这意味着他们应该让读者和评论者相信所声称的改进是真实的。他们应该专注于他们工作的新颖性。这意味着在论文中,可能还有它们的实现中,您通常看不到最先进的模块。他们利用琐碎的模块并尝试展示他们自己新设计或操作的模块的有效性。这就是为什么每个人都知道有很多优化方法比Adam更好,但仍然有许多新论文利用 Adam 进行优化。
另一方面,如果一位科学家在他的新颖方法的同时使用了典型的最先进的方法,他应该证明这种改进不仅仅是由于他使用的最先进的东西,而不是他的原创作品。这意味着消融研究应该更长。学生通常会避免这种情况。