Naive-Bayes
樸素貝葉斯中 log-sum-exp 技巧如何工作的示例
我已經在很多地方(例如這里和這裡)讀到了 log-sum-exp 技巧,但從未見過一個例子來說明它是如何專門應用於樸素貝葉斯分類器的(例如,具有離散特徵和兩個類)
究竟如何使用這個技巧來避免數值下溢的問題?
在
分母和分子都可以變得非常小,通常是因為可以接近 0,我們將它們中的許多相乘。為了防止下溢,可以簡單地取分子的對數,但需要對分母使用 log-sum-exp 技巧。
更具體地說,為了防止下溢:
- 如果我們只關心知道哪個類輸入最有可能屬於最大後驗(MAP)決策規則,我們不必應用對數求和 exp 技巧,因為在這種情況下我們不必計算分母。對於分子,可以簡單地記錄日誌以防止下溢:. 進一步來說:
獲取日誌後變為:
- 如果我們想計算類概率,我們需要計算分母:
元素可能下溢,因為可以非常小:這與分子中的問題相同,但這次我們在對數內有一個求和,這會阻止我們轉換 (可以接近0)成(負數且不再接近 0,因為)。為了規避這個問題,我們可以使用以下事實獲得:
這時,一個新的問題出現了:可能是相當消極的,這意味著可能變得非常接近0,即下溢。這是我們使用log-sum-exp 技巧的地方:
和:
, +我們可以看到引入變量避免下溢。例如與, 我們有:
+使用 log-sum-exp 技巧,我們避免了下溢,:
我們避免了下溢,因為 比 0 離 0 遠得多或者.