論文鏈接:https://arxiv.org/abs/1606.08415
在神經網絡的建模過程中,模型很重要的性質就是非線性,同時爲了模型泛化能力,需要加入隨機正則,例如dropout(隨機置一些輸出爲0,其實也是一種變相的隨機非線性激活), 而隨機正則與非線性激活是分開的兩個事情, 而其實模型的輸入是由非線性激活與隨機正則兩者共同決定的。
正是在激活中引入了隨機正則的思想,是一種對神經元輸入的概率描述,直觀上更符合自然的認識,同時實驗效果要比與都要好。
其實是 、、的綜合,對於輸入乘以一個組成的,而該的生成則是依概率隨機的依賴於輸入。假設輸入爲爲,則服從一個伯努利分佈, 這麼選擇是因爲神經元的輸入趨向於正太分佈,這麼設定使得當輸入減小的時候,輸入會有一個更高的概率被掉,這樣的激活變換就會隨機依賴於輸入了。
數學表達如下:
這裏是正太分佈的概率函數,可以簡單採用正太分佈, 要是覺得不刺激當然可以使用參數化的正太分佈, 然後通過訓練得到。
對於假設爲標準正太分佈的, 論文中提供了近似計算的數學公式,如下:
def gelu(input_tensor):
cdf = 0.5 * (1.0 + tf.erf(input_tensor / tf.sqrt(2.0)))
return input_tesnsor*cdf
GELU學習更快且更好: