Softmax 函數數值穩定性

Softmax 函數數值穩定性

我們在使用計算機數學運算時需要使用有限的比特位來表達實數,這會導致近似誤差的產生。近似誤差可以在多步數值運算中傳遞、積累,從而導致理論上成功的算法失敗。 幾種常見的誤差產生就是上溢出和下溢出。

下面具體看softmax的穩定性:
在這裏插入圖片描述

tips:以下大寫表示向量

上式①中是 softmax(X) 函數,根據式子易得:當x趨於負無窮時exp(x)下溢出;x趨於正無窮時,exp(x)上溢出。

改變過的式子見②,max(X)中中的X是一個向量,整個是指向量中最大的數值,簡單的一個小技巧見式子②,改變過的式子 當X的分量較小時, Z的分量至少有一個爲零,從而導致softmax(Z)的分母至少有一項爲 1,從而解決了下溢出的問題;當X的分量較大時, softmax(Z)相當於分子分母同時除以一個非常大的數 exp(max(X)),從而解決了上溢出。

在多數情況下不需要去考慮這些東西,你只需要去使用相關的底層依賴,一般來說都解決了這些問題,但是當自己的算法需要實現的時候我們就需要去考慮數值穩定性的問題,否則可能會出現很嚴重的後果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章