GELU的两个初等函数近似是怎么来的?
?PaperWeekly 原創(chuàng) ·?作者|蘇劍林
單位|追一科技
研究方向|NLP、神經(jīng)網(wǎng)絡(luò)
GELU,全稱為 Gaussian Error Linear Unit,也算是 RELU 的變種,是一個非初等函數(shù)形式的激活函數(shù)。它由論文 Gaussian Error Linear Units (GELUs) [1] 提出,后來被用到了 GPT 中,再后來被用在了 BERT 中,再再后來的不少預(yù)訓(xùn)練語言模型也跟著用到了它。
隨著 BERT 等預(yù)訓(xùn)練語言模型的興起,GELU 也跟著水漲船高,莫名其妙地就成了熱門的激活函數(shù)了。
▲ GELU函數(shù)圖像
在 GELU 的原始論文中,作者不僅提出了 GELU 的精確形式,還給出了兩個初等函數(shù)的近似形式,本文來討論它們是怎么得到的。
GELU函數(shù)
GELU 函數(shù)的形式為:
其中 是標(biāo)準(zhǔn)正態(tài)分布的累積概率函數(shù),即:
這里 。然后原論文還提了兩個近似:
以及:
現(xiàn)在仍然有不少 Transformer 架構(gòu)模型的實現(xiàn)都是用近似(4)作為 GELU 函數(shù)的實現(xiàn)。不過很多框架已經(jīng)有精確的 計算函數(shù)了,所以初等函數(shù)近似形式的價值可能不會很大,因此大家就當(dāng)是一道數(shù)學(xué)分析練習(xí)題吧。
用啥近似
顯然,要找 GELU 的近似形式,就相當(dāng)于找 近似,這也等價于找 的近似。
▲ erf函數(shù)圖像
首先,我們要解決第一個問題:用什么函數(shù)來近似。從 圖像我們可以看出它的特點:
1. 它是一個奇函數(shù),即 ;
2. 它單調(diào)遞增,并且:
奇函數(shù)我們有很多,比如 等,并且奇函數(shù)的疊加、復(fù)合函數(shù)依然是奇函數(shù),比如 ;又是奇函數(shù),又單調(diào)遞增且有界的,我們最容易想到的可能是 ,事實上, 確實跟 很相似。
因此,我們可以從 觸發(fā),構(gòu)造一些可能的擬合形式,比如:
怎樣近似
有了待擬合的形式之外,下面要考慮的就是怎么擬合、以什么標(biāo)準(zhǔn)的問題了,說白了,就是想個辦法求出各項系數(shù)來。一般來說,有兩種思路:局部擬合和全局?jǐn)M合。
3.1 局部擬合
局部擬合基于泰勒展開,比如考慮近似形式 ,我們在 x=0 處展開,得到:
讓前兩項為 0,剛好得到兩個方程,求解得到:
代入 ,并換成數(shù)值形式,那么就是:
3.2 全局?jǐn)M合
式(8)已經(jīng)跟式(4)很接近了,但是第二個系數(shù)還是差了點。這是因為(8)純粹是局部近似的結(jié)果,顧名思義,局部近似在局部會很精確,比如上面的推導(dǎo)是基于 x=0 處的泰勒展開,因此在 x=0 附近會比較精確,但是離 0 遠(yuǎn)一點時誤差就會更大。因此,我們還需要考慮全局誤差。
比較容易想到的全局誤差是積分形式的,比如用 去逼近 f(x) 時,我們?nèi)ニ?#xff1a;
但是,每個 x 處的誤差重要性可能不一樣,因此為了不失一般性,還要乘以一個權(quán)重 ,即:
不同的 會導(dǎo)致不同的解,哪個 最適合,也不容易選擇。
因此,我們不去優(yōu)化這種積分形式的誤差,我們優(yōu)化一個更直觀的 形式的誤差:
這個式子很好理解,就是“找一個適當(dāng)?shù)?,使得最大的 都盡可能小”,這樣的目標(biāo)符合我們的直觀理解,并且不涉及到權(quán)重的選取。
3.3 “局部-全局”混合
基于這個思想,我們固定 ,然后去重新求解 。固定這個 a 是因為它是一階局部近似,我們希望保留一定的局部近似,同時希望 b 能盡可能幫我們減少全局誤差,從而實現(xiàn)局部近似與全局近似的混合。所以,現(xiàn)在我們要求解:
用 scipy 可以輕松完成求解:
import?numpy?as?np from?scipy.special?import?erf from?scipy.optimize?import?minimizedef?f(x,?b):a?=?np.sqrt(2?/?np.pi)return?np.abs(erf(x?/?np.sqrt(2))?-?np.tanh(a?*?x?+?b?*?x**3))def?g(b):return?np.max([f(x,?b)?for?x?in?np.arange(0,?4,?0.001)])options?=?{'xtol':?1e-10,?'ftol':?1e-10,?'maxiter':?100000} result?=?minimize(g,?0,?method='Powell',?options=options) print(result.x)最后得到 b=0.035677337314877385,對應(yīng)的形式就是:
最后幾位有效數(shù)字可能有誤差,但前面部分已經(jīng)跟式(4)完美契合了。補充說明下,式(4)提出自論文 Approximations to the Cumulative Normal Function and its Inverse for Use on a Pocket Calculator [2] ,已經(jīng)是 40 多年前的結(jié)果了。
至于第一個近似,則來自論文 A logistic approximation to the cumulative normal distribution [3] ,它是直接用 全局逼近 的結(jié)果,即:
解得 ,即:
這跟式(3)同樣很吻合。
文章小結(jié)
本文帶大家一起做了道數(shù)學(xué)分析題——介紹了 GELU 激活函數(shù),并試圖探索了它的兩個近似形式的來源。
參考鏈接
[1] https://arxiv.org/abs/1606.08415
[2] https://www.jstor.org/stable/2346872
[3] https://core.ac.uk/download/pdf/41787448.pdf
點擊以下標(biāo)題查看更多往期內(nèi)容:?
變分推斷(Variational Inference)最新進展簡述
變分自編碼器VAE:原來是這么一回事
圖神經(jīng)網(wǎng)絡(luò)三劍客:GCN、GAT與GraphSAGE
如何快速理解馬爾科夫鏈蒙特卡洛法?
深度學(xué)習(xí)預(yù)訓(xùn)練模型可解釋性概覽
ICLR 2020:從去噪自編碼器到生成模型
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識的人。
總有一些你不認(rèn)識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標(biāo)準(zhǔn):
? 稿件確系個人原創(chuàng)作品,來稿需注明作者個人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請在投稿時提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會添加“原創(chuàng)”標(biāo)志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發(fā)送?
? 請留下即時聯(lián)系方式(微信或手機),以便我們在編輯發(fā)布時和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的GELU的两个初等函数近似是怎么来的?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美股怎么开户
- 下一篇: 消息称苹果放弃开发智能戒指,已内部探索多