GELU激活函數(shù)算法
Gaussian Error Linerar Units(GELUS)
論文鏈接:https://arxiv.org/abs/1606.08415
最近在看bert源碼,發(fā)現(xiàn)里邊的激活函數(shù)不是Relu等常見的函數(shù),是一個(gè)新的激活函數(shù)GELUs, 這里記錄分析一下該激活函數(shù)的特點(diǎn)。
不管其他領(lǐng)域的鄙視鏈,在激活函數(shù)領(lǐng)域,大家公式的鄙視鏈應(yīng)該是:Elus > Relu > Sigmoid ,這些激活函數(shù)都有自身的缺陷, sigmoid容易飽和,Elus與Relu缺乏隨機(jī)因素。
在神經(jīng)網(wǎng)絡(luò)的建模過程中,模型很重要的性質(zhì)就是非線性,同時(shí)為了模型泛化能力,需要加入隨機(jī)正則,例如dropout(隨機(jī)置一些輸出為0,其實(shí)也是一種變相的隨機(jī)非線性激活), 而隨機(jī)正則與非線性激活是分開的兩個(gè)事情, 而其實(shí)模型的輸入是由非線性激活與隨機(jī)正則兩者共同決定的。
GELUs正是在激活中引入了隨機(jī)正則的思想,是一種對(duì)神經(jīng)元輸入的概率描述,直觀上更符合自然的認(rèn)識(shí),同時(shí)實(shí)驗(yàn)效果要比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源碼中的近似計(jì)算更簡(jiǎn)單,具體怎么近似的,我猜不出來。
下面貼一些論文的實(shí)驗(yàn)圖,就是證明GELU學(xué)習(xí)更快且更好:




以上就是GELU激活函數(shù)算法的詳細(xì)內(nèi)容,更多關(guān)于GELU激活函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python3 shutil(高級(jí)文件操作模塊)實(shí)例用法總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Python3 shutil實(shí)例用法內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2020-02-02
Python3.10接入ChatGPT實(shí)現(xiàn)逐句回答流式返回
這篇文章主為大家要介紹了Python3.10接入ChatGPT實(shí)現(xiàn)逐句回答流式返回示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
python模型集成知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理了一篇關(guān)于python模型集成知識(shí)點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)參考下。2021-08-08
pycharm 取消默認(rèn)的右擊運(yùn)行unittest的方法
今天小編就為大家分享一篇pycharm 取消默認(rèn)的右擊運(yùn)行unittest的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11
關(guān)于python之字典的嵌套,遞歸調(diào)用方法

