【mT5中的激活函数】GLU Variants Improve Transformer

  • 论文信息
  • 阅读评价
  • Abstract
  • Introduction
  • Gated Linear Units (GLU) and Variants
  • Experiments on Text-to-Text Transfer Transformer (T5)
  • Conclusion


论文信息

名称

内容

论文标题

GLU Variants Improve Transformer

论文地址

https://arxiv.org/abs/2002.05202

发表时间

2020-02-12

研究领域

NLP, 激活函数, FNN

提出方法

GEGLU(激活函数)

阅读评价

  论文在各种激活函数之间做了对比实验,探究应用不同激活函数的FNN对T5模型的影响。最终GEGLU效果最好。

  个人感受:只能说太细了!真是不给其他人一点活路,连激活函数他都要做个实验取个最好的。


  以下是对论文每个部分的简单介绍。

Abstract

  门控线性单元(Gated Linear Units, GLU)由两个线性投影的分量乘积组成,其中一个投影首先通过sigmoid函数。对于GLU中的激活函数,也是调参中的一个点。论文在FFN中应用了GLU的一些变体,发现其中一些变体的质量优于通常使用的ReLUGELU激活。

Introduction

  介绍了四种基于不同激活函数的FFN。

  Transformer 论文中提出的前馈网络(Feed-Forward Network, FNN)是一个两层的全连接神经网络,它在 Transformer 模型中起到了重要的作用。这个网络的结构是:

【T5中的激活函数】GLU Variants Improve Transformer_GEGLU

【T5中的激活函数】GLU Variants Improve Transformer_T5_02 是输入,【T5中的激活函数】GLU Variants Improve Transformer_GLU_03【T5中的激活函数】GLU Variants Improve Transformer_GEGLU_04 是权重矩阵,【T5中的激活函数】GLU Variants Improve Transformer_人工智能_05【T5中的激活函数】GLU Variants Improve Transformer_GLU_06 是偏置向量。这个公式首先通过一个线性变换 【T5中的激活函数】GLU Variants Improve Transformer_GLU_07,然后通过ReLU激活函数,最后再通过另一个线性变换 【T5中的激活函数】GLU Variants Improve Transformer_GEGLU_04 和偏置 【T5中的激活函数】GLU Variants Improve Transformer_GLU_06

  在 T5 论文中,作者对前馈网络进行了一些调整,取消了偏置项。这样做的目的是为了简化模型和提高训练效率。调整后的前馈网络结构是:

【T5中的激活函数】GLU Variants Improve Transformer_T5_10

【T5中的激活函数】GLU Variants Improve Transformer_人工智能_05【T5中的激活函数】GLU Variants Improve Transformer_GLU_06,只保留了ReLU激活函数和两个权重矩阵。

  除了ReLU激活函数,还有一些其他的激活函数被用于前馈网络中。例如,基于高斯误差函数的激活函数GELU可以用于前馈网络,其结构是:

【T5中的激活函数】GLU Variants Improve Transformer_深度学习_13

  GELU激活函数可以更好地模拟神经网络的随机正则化行为,从而提高模型的性能。

  另一个被用于前馈网络的激活函数是SwishSwish激活函数是一个自门控的激活函数,它可以自动调节每个神经元的输出。基于Swish激活函数的前馈网络结构是:
【T5中的激活函数】GLU Variants Improve Transformer_深度学习_14

  Swish激活函数在某些情况下可以提高神经网络的性能,因此在设计前馈网络时,可以根据具体的应用场景选择合适的激活函数。

【注】为什么FNN里面要有激活函数?
————————————
答:1)提供非线性拟合能力,没有激活函数的模型只是线性层的累加。2)部分激活函数如ReLU能够缓解梯度消失问题,加快模型速度。

Gated Linear Units (GLU) and Variants

  GLU的公式为:

【T5中的激活函数】GLU Variants Improve Transformer_GEGLU_15

  在GLU的基础上,取消激活函数,称之为BilinearBilinear公式为:

【T5中的激活函数】GLU Variants Improve Transformer_GLU_16

  因此在GLU的基础上,作者认为可以产生以下变体:

【T5中的激活函数】GLU Variants Improve Transformer_深度学习_17

  基于上述的激活函数,产生以下FNN变体:

【T5中的激活函数】GLU Variants Improve Transformer_深度学习_18

Experiments on Text-to-Text Transfer Transformer (T5)

【T5中的激活函数】GLU Variants Improve Transformer_人工智能_19


图1 基于不同FNN的T5模型在段落填充任务上的困惑度

  如图1,GEGLUSwiGLU表现最好。

【T5中的激活函数】GLU Variants Improve Transformer_GLU_20


图2 基于不同FNN的T5模型在GLUE任务上的结果

  如图2,GLU家族表现最好。

【T5中的激活函数】GLU Variants Improve Transformer_深度学习_21


图3 基于不同FNN的T5模型在SuperGLUE任务上的结果

  如图3,GLU家族表现最好。

Conclusion

【注】建议读下这部分的原文,乐死。以下是原段落:

We have extended the GLU family of layers and proposed their use in Transformer. In a transfer-learning setup, the new variants seem to produce better perplexities for the de-noising objective used in pre-training, as well as better results on many downstream language-understanding tasks. These architectures are simple to implement, and have no apparent computational drawbacks. We offer no explanation as to why these architectures seem to work; we attribute their success, as all else, to divine benevolence(上帝的仁慈).