SAU:使用Dirac函数构造激活函数的光滑近似.

作者提出了使用Dirac函数对现有的非光滑激活函数(如ReLU,Leaky ReLU)进行光滑近似,并进一步提出了光滑激活单元(smooth activation unit, SAU)。

1. Dirac函数

Dirac函数又称Dirac-$\delta$函数、单位冲激函数,是一种广义函数(泛函),表达式如下:

\[\delta(x) = \begin{cases} +∞, & x =0 \\ 0, & x≠0 \end{cases}, \quad \int_{-∞}^{+∞}\delta(x)dx = 1\]

Dirac函数可以看成一个连续型概率密度函数,仅在$x=0$处取值,均值为$0$,方差也为$0$。

Dirac函数本身没有明显的意义,但将其作用于其他函数时,具有重要意义。此时主要性质包括:

Dirac函数的采样空间为$\Bbb{R}$,但只在$x=0$处概率为$1$;因此Dirac函数可以通过积分采样到其他函数在$x=0$处的值:

\[\int_{-∞}^{+∞}f(x)\delta(x)dx = f(0)\]

Dirac函数也可以采样任意点$x$处的函数值(Dirac函数构造任意函数光滑近似的保证):

\[\int_{-∞}^{+∞}f(y)\delta(x-y)dy = f(x)\]

Dirac函数的导数可以采样其他函数的导数:

\[\int_{-∞}^{+∞}f(x)\delta'(x)dx = \int_{-∞}^{+∞}f(x)d\delta(x) \\ = f(x)\delta(x)|_{-∞}^{+∞}-\int_{-∞}^{+∞}\delta(x)df(x) \\ = -\int_{-∞}^{+∞}f'(x)\delta(x)dx =-f'(0)\]

也可以提取高阶导数:

\[\int_{-∞}^{+∞}f(x)\delta^{(n)}(x)dx = (-1)^{n}f^{(n)}(0)\]

2. Dirac函数的光滑近似

Dirac函数没有显式表达式,因此常采用一些连续函数作为Dirac函数的光滑近似。

一种寻找Dirac函数的光滑近似的方法是首先构造类似于正态分布的“钟形曲线”,之后设法让钟形曲线的宽度趋近于$0$,并保持积分为$1$。此时常用的近似包括:

\[\delta(x) = \mathop{\lim}_{\sigma \to 0} \frac{e^{-x^2/2\sigma^2}}{\sqrt{2\pi}\sigma} \quad ①\] \[\delta(x) = \frac{1}{\pi}\mathop{\lim}_{a \to 0} \frac{a}{x^2+a^2} \quad ②\]

另一种光滑近似思路是注意到Dirac函数的积分是单位阶跃函数$\theta(x)$:

\[\int_{-∞}^{x}\delta(x)dx = \theta(x) = \begin{cases} 1, & x >0 \\ 0, & x<0 \end{cases}\]

若能找到$\theta(x)$的光滑近似,其导数即为Dirac函数的光滑近似。$\theta(x)$的光滑近似通常是一些“S”型曲线,如sigmoid函数$\sigma(x)$,则Dirac函数的一个光滑近似为:

\[\delta(x) = \mathop{\lim}_{t \to ∞} \frac{d}{dx}\sigma(tx) \\= \mathop{\lim}_{t \to ∞}t\sigma(x)(1-\sigma(x))\\ = \mathop{\lim}_{t \to ∞} \frac{te^{tx}}{(1+e^{tx})^2} \quad ③\]

3. SAU:使用Dirac函数近似激活函数

根据Dirac函数的性质:

\[f(x) = \int_{-∞}^{+∞}f(y)\delta(x-y)dy\]

如果能找到Dirac函数的光滑近似$\phi(x)≈\delta(x)$,当$f(x)$是一个具有可数个间断点的连续函数时,可以构造$f(x)$的光滑近似:

\[g(x)≈ \int_{-∞}^{+∞}f(y)\phi(x-y)dy = (f* \phi)(x)\]

注意到上式表示为两个函数的卷积,其中$f$为近似的原函数,$\phi$为Dirac函数的光滑近似(文中称approximate identity)。预先指定一个激活函数,则其光滑近似可以由该激活函数与一个Dirac函数的光滑近似通过卷积操作得到。

SAU是指选择Leaky ReLU激活函数,选择正态分布的极限(式①)作为Dirac函数的光滑近似,从而构造一个光滑的激活函数。其参数$\alpha$(来自Leaky ReLU)和参数$\sigma$(来自Dirac函数的光滑近似)通过梯度下降法学习得到。

下面介绍几种使用Dirac函数近似的激活函数:

① 近似Leaky ReLU

Leaky ReLU激活函数表示为$f(x)=\max(x,\alpha x)$。若选用式①作为Dirac函数的光滑近似,则有:

\[\max(x,\alpha x) ≈ \int_{-∞}^{+∞}\max(y,\alpha y)\frac{e^{-(x-y)^2/2\sigma^2}}{\sqrt{2\pi}\sigma}dy \\ = \int_{-∞}^{0}\alpha y\frac{e^{-(x-y)^2/2\sigma^2}}{\sqrt{2\pi}\sigma}dy+\int_{0}^{+∞}y\frac{e^{-(x-y)^2/2\sigma^2}}{\sqrt{2\pi}\sigma}dy \\ = \frac{\alpha}{\sqrt{2\pi}\sigma} \int_{-∞}^{0} ye^{-\frac{(x-y)^2}{2\sigma^2}}dy + \frac{1}{\sqrt{2\pi}\sigma} \int_{0}^{+∞} ye^{-\frac{(x-y)^2}{2\sigma^2}}dy\]

注意到上面的积分:

\[\int_{}^{} ye^{-\frac{(x-y)^2}{2\sigma^2}}dy = \int_{}^{} (y-x+x)e^{-\frac{(y-x)^2}{2\sigma^2}}dy \\ = \int_{}^{} (y-x)e^{-\frac{(y-x)^2}{2\sigma^2}}dy + x\int_{}^{} e^{-\frac{(y-x)^2}{2\sigma^2}}dy \\ = -\sigma^2 e^{-\frac{(y-x)^2}{2\sigma^2}} + x\sqrt{2}\sigma\frac{\sqrt{\pi}}{2} \text{erf}(\frac{y-x}{\sqrt{2}\sigma})\]

代入原式得:

\[\max(x,\alpha x) ≈ \frac{\alpha}{\sqrt{2\pi}\sigma} [-\sigma^2 e^{-\frac{(y-x)^2}{2\sigma^2}} + x\sqrt{2}\sigma\frac{\sqrt{\pi}}{2} \text{erf}(\frac{y-x}{\sqrt{2}\sigma})] |_{-∞}^{0} \\ + \frac{1}{\sqrt{2\pi}\sigma} [-\sigma^2 e^{-\frac{(y-x)^2}{2\sigma^2}} + x\sqrt{2}\sigma\frac{\sqrt{\pi}}{2} \text{erf}(\frac{y-x}{\sqrt{2}\sigma})] |_{0}^{+∞} \\ = -\frac{\alpha\sigma}{\sqrt{2\pi}} e^{-\frac{x^2}{2\sigma^2}} - \frac{\alpha x}{2}\text{erf}(\frac{x}{\sqrt{2}\sigma}) \\ + \frac{ x}{2} + \frac{\sigma}{\sqrt{2\pi}} e^{-\frac{x^2}{2\sigma^2}} + \frac{ x}{2}\text{erf}(\frac{x}{\sqrt{2}\sigma}) \\ = \frac{(1-\alpha)\sigma}{\sqrt{2\pi}} e^{-\frac{x^2}{2\sigma^2}}+ \frac{ x}{2} + \frac{(1-\alpha) x}{2}\text{erf}(\frac{x}{\sqrt{2}\sigma})\]

② 近似ReLU

ReLU激活函数表示为$f(x)=\max(x,0)$。若选用式③作为Dirac函数的光滑近似,则有:

\[\max(x,0) ≈ \int_{-∞}^{+∞}\max(y,0)\frac{te^{t(x-y)}}{(1+e^{t(x-y)})^2}dy \\ = \int_{0}^{+∞}\frac{yte^{t(x-y)}}{(1+e^{t(x-y)})^2}dy = \int_{0}^{+∞}yd\frac{1}{1+e^{t(x-y)}} \\ = \frac{y}{1+e^{t(x-y)}}|_{y=0}^{y=+∞}-\int_{0}^{+∞}\frac{1}{1+e^{t(x-y)}}dy \\ = \frac{y}{1+e^{t(x-y)}}|_{y=+∞}-\frac{1}{t}\ln(e^{tx}+e^{ty})|_{y=0}^{y=+∞} \\ = \frac{\ln(e^{tx}+1)}{t}\]

当$t=1$时,上式即为SoftPlus激活函数。

另一方面,ReLU激活函数也可表示为$f(x)=x\theta(x)$,其中$\theta(x)$是单位阶跃函数。也可用单位阶跃函数的光滑近似来近似ReLU激活函数。

若取单位阶跃函数$\theta(x)$近似sigmoid函数$\sigma(x)$,则$f(x)=x\sigma(x)$,即为Swish激活函数。

若用式①作为单位阶跃函数的光滑近似,则有:

\[\max(x,0) = x\theta(x) ≈ x \int_{-∞}^{+∞}\theta(y)\frac{e^{-(x-y)^2/2\sigma^2}}{\sqrt{2\pi}\sigma}dy \\ = x \int_{0}^{+∞}\frac{e^{-(x-y)^2/2\sigma^2}}{\sqrt{2\pi}\sigma}dy = \frac{x}{2}[1+\text{erf}(\frac{x}{\sqrt{2}\sigma})]\]

当$\sigma=1$时,上式即为GELU激活函数。

4. 实验分析

Leaky ReLU激活函数的光滑近似作为新的激活函数SAU,其表达式如下:

\[\text{SAU}(x) = \frac{(1-\alpha)\sigma}{\sqrt{2\pi}} e^{-\frac{x^2}{2\sigma^2}}+ \frac{ x}{2} + \frac{(1-\alpha) x}{2}\text{erf}(\frac{x}{\sqrt{2}\sigma})\]

激活函数SAU关于输入$x$和参数$\alpha$的梯度计算如下:

\[\frac{\partial }{\partial x}\text{SAU}(x) = \frac{-x(1-\alpha)}{\sqrt{2\pi}\sigma} e^{-\frac{x^2}{2\sigma^2}}+ \frac{1}{2} + \frac{(1-\alpha) }{2}\text{erf}(\frac{x}{\sqrt{2}\sigma})+ \frac{(1-\alpha) x}{\sqrt{2\pi}\sigma}e^{-\frac{x^2}{2\sigma^2}}\] \[\frac{\partial }{\partial \alpha}\text{SAU}(x) = \frac{-\sigma}{\sqrt{2\pi}} e^{-\frac{x^2}{2\sigma^2}}- \frac{x}{2}\text{erf}(\frac{x}{\sqrt{2}\sigma})\]

实验时设初值$\alpha =0.15$,通过梯度更新其参数。参数$\sigma$固定为$5\times 10^{-5}$。实验结果如下: