Improving Transformer Optimization Through Better Initialization

在本文中,作者对Transformer难以优化这一问题进行了探究,并对模型的初始化方法提出了改进。
在Transformer框架中,self-attention的引入使得模型变得难以优化,想要有效的对其进行优化必须使用一些训练上的技巧,如learning rate warmup。
本文作者的贡献主要在以下两个方面:

  • 分析了transformer难以被优化的原因。
  • 提出了一种新的权重初始化策略,使用该策略可以使得模型在没有warmup和LN的情况下被训练。
    Transformer的成功训练一般需要以下因素:learning rate warmup、LN、residual connection、large batch size等,并且移除任何一个,都极易让训练失败。
    并且作者认为learning rate warmup是十分让人迷惑的,因为在如此众多的模型结构当中,只有Transformer等相关结构需要learning rate warmup。而作者在本文中发现,LN或许是这个问题的根源。
    最后作者成功的训练了一个具有200层encoder和200层decoder的Transformer。

Approach

作者首先分析了为何warmup策略是必须的。作者认为,该问题的本质来源于Adam优化器的高的方差,和反向传播时LN的影响。
在作者之前又已经有工作对这两点进行了研究:

  • 针对Adam优化器存在的问题,较为普遍的观点认为,参数二阶矩的估计在训练开始时不稳定,导致了模型优化的困难。
  • LN的反向传播过程中,如果x的范数大于模型维度的二分之一次方,就会导致模型梯度的减小。详见下图:
    在这里插入图片描述
    作者综合了以上两点,发现没有warmup时,一开始较大的学习率使得二阶矩估计得不稳定被放大,由下图可以看出,当去除warmup后,模型的更新变得不稳定(纵轴代表训练轮数,横轴代表adam算法更新的量级)
    在这里插入图片描述
    同时,这种大量级的更新使得LN的输入也变大。如下图所示:
    在这里插入图片描述
    同时如上所述,LN较大的输入很快使他的量级大大于了模型维度d的二分之一次方,当d=512时,在这里插入图片描述
    这就导致了梯度的消失(如下图所示)。
    在这里插入图片描述
    这实际上导致了一个恶性的循环:参数二阶矩估计得不稳定被较大的学习率放大->梯度的消失->进一步影响模型方差使得二阶矩估计不稳定。
    在传统的Transformer训练过程中,上述循环只有在参数的历史状态积累到一定状态后,训练过程才会趋于稳定,这也解释了为何warmup是必须的,但这个过程中,模型可能已经到了一个比较坏的状态。
    在这里插入图片描述
    目前深层网络的训练可由pre-norm方式进行缓解,其将LN放入block内,使得整体的模型更加接近残差网络的结构,但其也存在着较多的问题,其中最重要的一点就是,他将模型的有效深度变浅了,不利于模型性能的增长。而作者所做的工作为试图移除LN。

Fix Through Initialization

作者提出了一种参数初始化方法,使得模型可以不使用warmup策略和LN,同时使得深层模型可以被很好的训练。
原始的Adam通过滑动平均对参数的二阶矩进行估计,即在这里插入图片描述
而作者想做的即为限制vt的边界,使得参数的更新过程的方差变小,从而更加稳定。该目标可转化为以下目标:
在这里插入图片描述
其中,f表示transformer的一层。
利用泰勒展开,我们可以得到下面的式子
在这里插入图片描述
今天就先写到这,后面的稍晚再进行更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值