深度學習筆記-上溢和下溢


上溢和下溢

下溢:指當一個接近於0的數字被四舍五入為0,這在某些方程中是非常致命的。比如除數下溢,導致程序異常。

上溢:當大數量級的數被近似為正負\(\infty\)時,之后的運算都可能返回非數字。比如指數運算。

對於這兩種情況,我們需要進行數值穩定



對Softmax進行數值穩定

softmax函數的定義如下

\[softmax(\mathbb x)_i=\frac{e^{x_i}}{\sum_{j=1}^n e^{x_j}} \]

異常

如果輸入向量\(x\)中的所有值都非常小,這可能會導致分母的\(e^x\)也非常小,最終分母被四舍五入為0,導致程序異常。

向量\(x\)的所有值很大,分子分母都會上溢,最終也無法得到函數的正確結果。


數值穩定

為了解決這個問題,我們可以將輸入改為\(z\)\(z\)\(**x\)和向量中最大值的差**。

這樣處理后,我們的最大輸入就是0(最大值-最大值),避免了上溢的可能。並且保證了分母至少有一個1(\(e^{最大值-最大值=0}\)),也避免了分母為下溢為0的可能。

\[z=x_i-max(x) \]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM