tft每日頭條

 > 生活

 > 常用的交叉熵

常用的交叉熵

生活 更新时间:2024-07-26 08:08:21
通過幾個簡單的例子來解釋和總結什麼是交叉熵( Cross Entropy) 以及機器學習分類問題中為什麼使用交叉熵。

常用的交叉熵(透徹講解交叉熵)1

第一個例子

假設随機從一個口袋裡取硬币, 口袋裡有一個藍色的, 一個紅色的, 一個綠色的, 一個橘色的。

常用的交叉熵(透徹講解交叉熵)2

取出一個硬币之後, 每次問一個問題, 然後做出判斷, 目标是, 問最少的問題, 得到正确答案. 其中一個最好的設計問題的策略如下:

常用的交叉熵(透徹講解交叉熵)3

每一個硬币有1/4的概率被選中, 1/4(機率) * 2道題目 * 4顆球 = 2,平均需要問兩道題目才能找出不同顔色的球,也就是說期望值為2,就是熵(entropy)

第二個例子

例子變了, 變成了袋子中1/8的硬币是綠色的, 1/8 的是橘色的, 1/4 是紅色的, 1/2 是藍色的, 這時最優的問題的策略如下:

常用的交叉熵(透徹講解交叉熵)4

1/2 的概率是藍色, 隻需要1個問題就可以知道是或者不是, 1/4 的概率是紅色, 需要2個問題, 按照這個邏輯, 猜中硬币需要的問題的期望是 1/2×1 1/4×2 1/8×3 1/8×3=1.75

第三個例子

假設袋子中全部是藍色的硬币, 那麼, 這時候, 需要 0 個問題就可以猜到硬币, 即 log21=0。 需要注意的是, 隻有當知道袋子中全部是藍色的硬币的時候需要的問題是 0 個.

總結上面的例子, 假設一種硬币出現的概率是 p, 那麼, 猜中該硬币的所需要的問題數是 log2(1/Pi)。例如, p=1/4, log24=2。

在這個問題中, 問題個數的期望是

常用的交叉熵(透徹講解交叉熵)5

這個式子就是的表達式. 簡單來說, 其意義就是在最優化策略下, 猜到顔色所需要的問題的個數。熵代表的是随機變量或整個系統的不确定性,熵越大,随機變量或系統的不确定性就越大。

現在已經了解了熵是什麼, 那麼, 下面解釋交叉熵(cross entropy) 的含義.對于第二個例子, 如果仍然使用第一個例子中的策略, 如下圖:

常用的交叉熵(透徹講解交叉熵)6

1/8 的概率, 硬币是橘色, 需要兩個問題, 1/2 的概率是藍色, 仍然需要兩個問題, 也就是說,認為小球的分布為(1/4,1/4,1/4,1/4),這個分布就是非真實分布。平均來說, 需要的問題數是 1/8×2 1/8×2 1/4×2 1/2×2=2。 因此, 在例子二中使用例子一的策略是一個比較差的策略. 其中2是這個方案中的交叉熵。而最優方案的交叉熵是1.75。

給定一個策略, 交叉熵就是在該策略下猜中顔色所需要的問題的期望值。更普遍的說,交叉熵用來衡量在給定的真實分布下,使用非真實分布所指定的策略消除系統的不确定性所需要付出成本的大小。交叉的字面意思在于:真實分布與非真實分布的交叉。給定一個方案, 越優的策略, 最終的交叉熵越低。具有最低的交叉熵的策略就是最優化策略,也就是上面定義的熵。因此, 在機器學習中, 我們需要最小化交叉熵。

數學上來講, 交叉熵就是

常用的交叉熵(透徹講解交叉熵)7

其中, p 是真正的概率, 例如例子二中, 橘色和綠色是 1/8, 紅色是 1/4, 藍色是 1/2。p^是錯誤地假設了的概率, 例如, 在例子二中我們錯誤地假設了所有的顔色的概率都是 1/4。p和 p^ 可能有點容易混淆. 記住一點, log是用來計算在 你的策略下猜中所需要的問題數, 因此, log中需要的是你的預測概率 p^。在決策樹中, 如果建立的樹不是最優的, 結果就是對于輸出的概率分布的假設是錯誤地, 導緻的直接結果就是交叉熵很高。交叉熵不僅僅應用在決策樹中, 在其他的分類問題中也有應用。

分類問題

在二分類問題中, 标簽 y 是 1 的似然是對于标簽 y 的預測 y^, 同樣的, 标簽是 0 的似然是 1−y^. 我們需要最大化似然函數, 而且, 由于二分類問題的特殊性, 根據伯努力分布(Bernoulli distribution),可以把似然函數寫成

常用的交叉熵(透徹講解交叉熵)8

當 y=1 的時候, 第二項為 1, 因此, 優化的是 y^

當 y=0 的時候, 第一項為 1, 優化的是 1−y^.對上面的似然函數取對數, 結果是:

常用的交叉熵(透徹講解交叉熵)9

最大化似然函數, 就是對上面表達式取負然後最小化。也是交叉熵的表達式。 交叉熵有時候也被稱為對數損失函數。注意與上邊例子區别是多了個負号,上邊例子是消除不确定性需要付出的成本;而現在這個加了負号的交叉熵,則是最終的目标函數。

舉例來說, 假設我有 3 枚硬币, 正正反, 記為 1,1,0. 預測結果是 0.8, 0.9, 0.3, 那麼, 交叉熵的均值是:

−1/3(1×log0.8 1×log0.9 (1−0)×log(1−0.3))

假設有一個完美的算法, 直接預測出了 1,1,0, 那麼交叉熵的結果就是 0.

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved