交叉熵與softmax函式
阿新 • • 發佈:2018-11-03
交叉熵與softmax函式
在神經網路中,在對超引數進行優化過程當中,需要有一個優化的目標值,也就是真實值與預測值之間的差距要儘量小,差距越小說明預測越精確。這個差距往往用loss表示
在分類問題當中,我們用交叉熵來表示這個loss值。
1. 熵的概念
熵是物理學中的一個名詞,表示體系混亂的程度,越混亂熵越大。在神經網路中,交叉熵越大說明預測的越不準確,越混亂。
2. 交叉熵的計算公式
其中 就是真實值, 為預測的結果概率
3. 二分類問題
假設真實結果:
- A’ 發生的概率為0
- B’ 的概率為1
方法一:預測的結果為:
- A發生的概率為0.4
- B發生的概率為0.6
則他們的交叉熵就為:
方法二:預測的結果為:
- A發生的概率為0.1
- B發生的概率為0.9
則他們的交叉熵就為:
經過計算,方案二的交叉熵比方案一的小,這也和我們預期的一樣,方案二的預測結果的確更加精確
4. 多分類問題
在多分類問題當中,我們假設5分類,真實結果為:
- A’ 發生的概率為 0
- B’ 發生的概率為 0
- C’ 發生的概率為 0
- D’ 發生的概率為 0
- E’ 發生的概率為 1
在計算交叉熵前,我們要確保預測的所有結果滿足概率和為1,但是往往,我們通過神經網路計算出來的結果並不滿足這樣的條件。這時候就需要softmax函式幫忙了。
4.1. softmax函式
- softmax能夠計算出每個值在所有值中的大小比重,得出該事件的概率
- 並且保證所有事件的概率和為1
4.1.1. softmax公式
其中,i為第i個事件對應的神經網路計算出的值, 就是第i個事件在所有事件中的概率了
4.1.2. 簡單應用
在多分類問題當中,我們假設5分類,計算出的結果為:
- A 預測的概率為 1
- B 預測的概率為 4
- C 預測的概率為 0.6
- D 預測的概率為 0.1
- E 預測的概率為 9
很顯然這5個事件的概率和並不為1,不能直接使用交叉熵進行計算,先通過softmax函式進行適當的縮放,使得他們的概率和為1
4.2. 求交叉熵
有了softmax函式的轉換,多分類問題求交叉熵就容易了,和二分類別無二致。
這個計算結果已經很小了,說明系統預測的這個結果還是很精確的。並且系統預測E的概率0.9923,實際E的概率為1,也的確很精確了。