Fork me on GitHub

PaLM中使用的激活函数:SwiGLU

relu激活函数:

\[ReLU(x)=max(0, x) \]

GeLU激活函数:

\[GeLU=x\Phi(x)=x\int_{-\infty}^{x}\frac{1}{\sqrt{2\pi}}e^{-\frac{t^{2}}{2}}dt=x\cdot \frac{1}{2}[1+erf(\frac{x}{\sqrt{2}})] \]

其中erf为误差函数。
Swish激活函数:

\[Swish=x\cdot sigmoid(\beta x) \]

我们不难发现,激活函数就是对x乘以一些数,以对某些值进行约束。
GLU(Gated Linear Unit),其一般形式为:

\[GLU(x)=\sigma (Wx+b) \otimes (Vx+c) \]

这里的\(\sigma\)可以是\(sigmoid\)函数,也可以是其它的一些激活函数,其相关变体如下:

在PaLM论文中使用了SwiGLU激活函数。
在FFN中,即FC-激活函数-FC中,一般定义如下:

在T5论文中没有使用偏置项,也就是:

同理可得:

结合激活函数+未使用偏置项+GLU就得到:

这就是PaLM中的激活函数了,效果也是不错的:

GLU Variants Improve Transformer
Pathways: Asynchronous Distributed Dataflow for ML

posted @ 2023-02-06 11:42  西西嘛呦  阅读(5169)  评论(0编辑  收藏  举报