GELU激活函數(shù)算法
Gaussian Error Linerar Units(GELUS)
論文鏈接:https://arxiv.org/abs/1606.08415
最近在看bert源碼,發(fā)現(xiàn)里邊的激活函數(shù)不是Relu等常見的函數(shù),是一個新的激活函數(shù)GELUs, 這里記錄分析一下該激活函數(shù)的特點。
不管其他領(lǐng)域的鄙視鏈,在激活函數(shù)領(lǐng)域,大家公式的鄙視鏈應該是:Elus > Relu > Sigmoid ,這些激活函數(shù)都有自身的缺陷, sigmoid容易飽和,Elus與Relu缺乏隨機因素。
在神經(jīng)網(wǎng)絡(luò)的建模過程中,模型很重要的性質(zhì)就是非線性,同時為了模型泛化能力,需要加入隨機正則,例如dropout(隨機置一些輸出為0,其實也是一種變相的隨機非線性激活), 而隨機正則與非線性激活是分開的兩個事情, 而其實模型的輸入是由非線性激活與隨機正則兩者共同決定的。
GELUs正是在激活中引入了隨機正則的思想,是一種對神經(jīng)元輸入的概率描述,直觀上更符合自然的認識,同時實驗效果要比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激活函數(shù)算法的詳細內(nèi)容,更多關(guān)于GELU激活函數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python3 shutil(高級文件操作模塊)實例用法總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Python3 shutil實例用法內(nèi)容,有興趣的朋友們可以學習下。2020-02-02
Python3.10接入ChatGPT實現(xiàn)逐句回答流式返回
這篇文章主為大家要介紹了Python3.10接入ChatGPT實現(xiàn)逐句回答流式返回示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
關(guān)于python之字典的嵌套,遞歸調(diào)用方法

