发布时间:2023-02-20 08:00
论文链接:https://arxiv.org/abs/1606.08415
最近在看bert源码,发现里边的激活函数不是Relu等常见的函数,是一个新的激活函数GELUs, 这里记录分析一下该激活函数的特点。
不管其他领域的鄙视链,在激活函数领域,大家公式的鄙视链应该是:Elus > Relu > Sigmoid ,这些激活函数都有自身的缺陷, sigmoid容易饱和,Elus与Relu缺乏随机因素。
在神经网络的建模过程中,模型很重要的性质就是非线性,同时为了模型泛化能力,需要加入随机正则,例如dropout(随机置一些输出为0,其实也是一种变相的随机非线性激活), 而随机正则与非线性激活是分开的两个事情, 而其实模型的输入是由非线性激活与随机正则两者共同决定的。
GELUs正是在激活中引入了随机正则的思想,是一种对神经元输入的概率描述,直观上更符合自然的认识,同时实验效果要比Relus与ELUs都要好。
翻看bert源码给出的GELU代码表示如下:
def gelu(input_tensor): cdf = 0.5 * (1.0 + tf.erf(input_tensor / tf.sqrt(2.0))) return input_tesnsor*cdf
感觉bert源码中的近似计算更简单,具体怎么近似的,我猜不出来。
下面贴一些论文的实验图,就是证明GELU学习更快且更好:
以上就是GELU激活函数算法的详细内容,更多关于GELU激活函数的资料请关注脚本之家其它相关文章!
DR6018-S-V02-wifi6-Qualcomm-IPQ6010/QCN9074-wifi-card-802.11AX
程序人生 | 二线城市年薪超40W?疫情之下涨薪100% + 是怎么做到的?
Spring cache使用 简单和redis缓存 @Cacheable @CachePut @CacheEvit
Jetson 学习笔记(十二):CSI摄像头实现rtsp流的传输并对动态获取多路流进行探索
使用U8g2库驱动I2C 0.96“or1.3“OLED屏幕相关接口函数选择
【历史上的今天】7 月 10 日:iOS App Store 问世;台积电创始人出生;苹果手机越狱的起源
anaconda python3.8目录_数据分析入门01——Anaconda
Linux ARM平台开发系列讲解(网络篇)1.1 SMI 接口(MDIO)及其协议讲解
学习笔记( 11 ) - 解决:finalshell连接虚拟机(ubuntu)超时,主机ping不通虚拟机,主机没有VMnet8网卡, Connection refused: connect