推荐系统笔记(十二):常用激活函数gelu、swish等

简介

        gelu就是高斯误差线性单元,这种激活函数在激活中加入了随机正则的思想,是一种对神经元输入的概率描述。为了方便记忆,这里做简要的笔记。汇总有:Identity、Sigmoid、TanH、Softmax、Softsign、Softplus、ReLU、Leaky ReLU、Randomized ReLU、SELU、GELU。其中在推荐系统的lightGCN中取消使用非线性激活函数。

图像特征 


(1)Identity图像
图像接近y=x,导数稳定可用于线性激活。

推荐系统笔记(十二):常用激活函数gelu、swish等_第1张图片

 

(2)Sigmoid图像

推荐系统笔记(十二):常用激活函数gelu、swish等_第2张图片推荐系统笔记(十二):常用激活函数gelu、swish等_第3张图片
优点:便于求导,能将数据幅度控制在0到1之间,适合前向传播。

缺点:从图中可以看出,接近饱和时,容易出现梯度为0的现象。另外梯度更新单调,且幂运算较为耗时。

(3) TanH图像

推荐系统笔记(十二):常用激活函数gelu、swish等_第4张图片推荐系统笔记(十二):常用激活函数gelu、swish等_第5张图片
优点:压缩了输出的幅度,且以0为中心,可以从图像看出输出均值为0。

缺点: 梯度消失问题,幂运算。

(4) Softmax图像

推荐系统笔记(十二):常用激活函数gelu、swish等_第6张图片

推荐系统笔记(十二):常用激活函数gelu、swish等_第7张图片
 优点:指数形式可以方法差距,关于指数求导较方便,输出为归一化值,可用于表示概率行为。

 缺点:幂运算较为复杂,且容易发生数值溢出,需要进行处理。

(5)Softsign图像 

推荐系统笔记(十二):常用激活函数gelu、swish等_第8张图片
与tanh类似,但饱和速度更慢,比tanh效果更好。

 推荐系统笔记(十二):常用激活函数gelu、swish等_第9张图片

 

(6)ReLU 图像


优点:ReLU的平滑化,避免了梯度消失,计算快,收敛快。

缺点:由于许多参数被搁置,导致无法更多的发挥模型的实际能力,即模型部分参数是意义不大的。

推荐系统笔记(十二):常用激活函数gelu、swish等_第10张图片

 

(7)Softplus图像


优点:ReLU的平滑化,避免了梯度消失,计算快,收敛快

缺点:与ReLU类似

推荐系统笔记(十二):常用激活函数gelu、swish等_第11张图片

 

(8)Leaky ReLU图像 

        为了解决dead ReLU现象。用一个类似0.01的小值来初始化神经元,从而使得ReLU在负数区域更偏向于激活而不是死掉。这里的斜率都是确定的。        ​​​​​​​推荐系统笔记(十二):常用激活函数gelu、swish等_第12张图片
与 ReLu 相比 ,leak 给所有负值赋予一个非零斜率,保留了负值信息。

 

(9) Randomized ReLU图像

推荐系统笔记(十二):常用激活函数gelu、swish等_第13张图片
这里关于负值的处理是使用随机的均匀分布来保留负值信息。

 

(10)SELU图像

 推荐系统笔记(十二):常用激活函数gelu、swish等_第14张图片

 
SELU将隐藏层的输出数据自动分为均值为0方差为1。

推荐系统笔记(十二):常用激活函数gelu、swish等_第15张图片

 

(11)GELU图像

推荐系统笔记(十二):常用激活函数gelu、swish等_第16张图片

        GELU可以看作 dropout的思想和relu的结合,,主要是为激活函数引入了随机性使得模型训练过程更加鲁棒。 我第一次使用gelu是在transformer的任务当中,效果相比于relu及其变体有一定改进。

参考:

关于gelu - 知乎

深度学习相关面经(Deprecated) - 知乎

Gelu论文:https://arxiv.org/pdf/1606.08415.pdf

你可能感兴趣的:(推荐系统,学习,推荐算法,开发语言,深度学习)