当前位置:首页 > 每日看点 > 正文内容

如何评价 Meta 新论文 Transformers without Normalization?

卡卷网1年前 (2025-03-14)每日看点386

Normalization这个事得好好掰扯掰扯。

上古时期,网络经常在初始几个iteration之后,loss还没下降就不动,必须得把每一层的gradient与weight的比值打印出来,针对性地调整每一层的初始化才能优化出来。尤其是tanh/sigmoid作为激活函数的网络,但凡有一层初始化得大了或者优化几步把某一层的scale搞大了,落在了tanh/sigmoid的梯度消失区间,以较小的梯度优化比较大的weight,可能几万步都走不出去,这也就是梯度消失问题的由来。

后来ReLU缓解了这一问题,不过还是得每一层精细地调调参数,再后来有了Kaiming初始化,需要手调的几率大大降低,基本上只要调一调多分支融合的地方就可以了。

而Batch Normalization的出现,彻底让手调初始化这个手艺失传了,当时虽然大家已经都转用ReLU激活函数,他们还是秀了一把,用BN训了一个sigmoid网络,果然也没有梯度消失问题了。

如何评价 Meta 新论文 Transformers without Normalization?  第1张

虽然没有梯度消失问题了,但sigmoid的性能还是不如relu

当时普遍的观点是:BN这东西,相比于精心调参的网络来说并不涨点(对比上边的Inception和BN-Baseline),但不见得大家都愿意仔细调参,而且它能加速收敛,部署时还可以吸收进线性层中,何乐而不为呢?

不过再后来,transformer成为主流,而nlp那边用layer norm居多,所以transformer继承了它,至于为什么不用BN而用LN,之前知乎一个问题大佬们都有很多讨论了:transformer 为什么使用 layer normalization,而不是其他的归一化方法? 。

但layer norm有个缺点,它不能像batch norm一样吸收到线性层,所以是有额外的部署时计算负担的。所以一直有人在尝试拿掉它或者用bn取代它(其实我曾经试过,在我的任务上用bn并不掉点)。

这篇文章DyT初看时确实震惊了我一把,normalization这东西之所以提出,不就是为了解决tanh的梯度消失问题吗?怎么现在还能用tanh替代normalization?梯度消失的问题难道不存在了吗?

后来转念一想,我第二段所描述的梯度消失现象,其实只存在于使用SGD优化的网络中,而现在通常使用的ADAM优化器,因为做了梯度的归一化,并不会因为tanh回传的梯度过小导致网络优化不动,所以网络是有能力在较短的步数之内将过大的输入调整过来的,尤其是DyT中专门加入了一个alpha参数,网络调整这个参数即可避免梯度消失问题。没想到梯度消失这个困扰神经网络学术界20多年的问题,如今被各种方案变着花地解决了。。

ps:在DyT替换之后,layer norm变成了激活函数,这时FFN里那个GeLU或者SiLU的就变得扎眼起来,能不能也换成tanh,完成一次彻底的文艺复兴?

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/03/11875.html

分享给朋友:

相关文章

开发了个小程序,咋推广呢?

要是开发了个小程序,想推广的话,可以先从自己的朋友圈子下手,让亲戚朋友都帮忙转发宣传,这样能先有点人气。然后去一些跟你的小程序相关的论坛、社区啥的,发帖子介绍介绍,吸引有兴趣的人。还能找些网红、博主合作,要是他们觉得你的小程序不错,帮忙推荐...

下一个风口最可能是什么?

下一个风口最可能是什么?

肯定是一带一路了,国内没什么卷的空间了,现在国家正在给一带一路的第三世界国家建设基础设施,等交通打通之后,就是通信打通,通信打通就是贸易打通,未来我建议大家重仓小语种,阿拉伯语最值得学(也有其他小语种自己去查一带一路国家),将来去其他国家随...

鸿蒙到底是不是安卓套壳?

鸿蒙到底是不是安卓套壳?

把它是不是套壳先放在一边吧。我讲一个事情,大家自己判断。华为有一个应用,叫手机管家。这个手机管家对一些系统底层设置有影响:比如华为从 EMUI 9 开始不允许将第三方启动器设置为默认启动器,依靠的就是这个手机管家。为什么这么说呢?在网上搜索...

在 Kubernetes 中,Service 的实现原理是什么,它是如何实现服务发现的?

行,问的这个问题挺有意思,Kubernetes 里 Service 是怎么实现的,服务发现是怎么回事,咱就直说了。这事儿看起来挺玄乎,但掰开揉碎了讲,也就那么回事。你得把这事儿想得简单点,别一上来就被啥术语吓住了——其实全是些搬砖的套路。咱...

鸿蒙系统到底是不是安卓系统?

你好,是的。接下来我给不懂技术的人简单的说一下哄蒙系统的来龙去脉。首先你要知道什么是开源。‌‌开源(Open Source)全称为开放源代码‌,意味着任何人都可以获取和使用软件的源代码,并在遵守版权协议的前提下进行修改和再发布。‌12开源软...

为什么张雪峰什么专业都懂?

他不懂专业,他懂的是就业。我记得有个老哥,家里条件不好,母亲吸血。想脱离家庭张雪峰眼睛一亮就说这是个学土木的好苗子。作为土木人我可知道他说的太对了,这种人学土木毕业进中建中铁,直接给你拉非洲看大鳄鱼呲牙。工资不低还能脱离家庭,可不是个学土木...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。