博客專欄

        EEPW首頁 > 博客 > 為什么交叉熵和KL散度在作為損失函數(shù)時是近似相等的

        為什么交叉熵和KL散度在作為損失函數(shù)時是近似相等的

        發(fā)布人:數(shù)據(jù)派THU 時間:2022-02-19 來源:工程師 發(fā)布文章

        來源:DeepHub IMBA

        盡管最初的建議使用 KL 散度,但在構建生成對抗網(wǎng)絡 [1] 時,在損失函數(shù)中使用交叉熵是一種常見的做法。這常常給該領域的新手造成混亂。當我們有多個概率分布并且我們想比較它們之間的關系時,熵和 KL 散度的概念就會發(fā)揮作用。


        在這里我們將要驗證為什么最小化交叉熵而不是使用 KL 散度會得到相同的輸出。所以我們首先從正態(tài)分布中抽取兩個概率分布 p 和 q。如圖 1 所示,兩種分布都不同,但是它們共享一個事實,即兩者都是從正態(tài)分布中采樣的。
        圖片




        熵是系統(tǒng)不確定性的度量。直觀地說它是從系統(tǒng)中消除不確定性所需的信息量。系統(tǒng)各種狀態(tài)的概率分布 p 的熵可以計算如下:
        圖片


        交叉熵


        交叉熵是指存在于兩個概率分布之間的信息量。在這種情況下,分布 p 和 q 的交叉熵可以表述如下:
        圖片


        KL散度


        兩個概率分布之間的散度是它們之間存在的距離的度量。概率分布 p 和 q 的KL散度( KL-Divergence )可以通過以下等式測量:
        圖片
        其中方程右側(cè)的第一項是分布 p 的熵,第二項是分布 q 對 p 的期望。在大多數(shù)實際應用中,p 是實際數(shù)據(jù)/測量值,而 q 是假設分布。對于 GAN,p 是真實圖像的概率分布,而 q 是生成的假圖像的概率分布。

        驗證


        現(xiàn)在讓我們驗證 KL 散度確實與使用交叉熵分布 p 和 q 相同。我們分別在 python 中計算熵、交叉熵和 KL 散度。
        圖片圖片圖片
        右側(cè)的第二項,即分布 p 的熵可以被認為是一個常數(shù),常數(shù)的導數(shù)是0,對反向傳播不會有影響。因此我們可以得出結論,最小化交叉熵代替 KL 散度會出現(xiàn)相同的輸出,因此可以近似相等。

        總結


        在本文中,我們了解了熵、交叉熵和 kl-散度的概念。然后我們回答了為什么這兩個術語在深度學習應用程序中經(jīng)常互換使用。我們還在 python 中實現(xiàn)并驗證了這些概念。完整代碼參考這個地址: https://github.com/azad-academy/kl_cross_entropy.git
        引用:[1] Goodfellow, I. et al., Generative adversarial nets. In Advances in  neural information processing systems. pp. 2672–2680, 2014[2]https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
        作者:J. Rafid S., PhD



        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。

        電化學工作站相關文章:電化學工作站原理


        關鍵詞: AI

        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 惠州市| 桂林市| 伊宁市| 延吉市| 河西区| 龙岩市| 星子县| 西林县| 佛冈县| 响水县| 安溪县| 正镶白旗| 密山市| 贺兰县| 南川市| 临澧县| 罗田县| 新巴尔虎左旗| 诏安县| 砚山县| 抚远县| 宜宾县| 长治县| 沐川县| 尚义县| 连城县| 揭东县| 会宁县| 军事| 启东市| 内黄县| 蕉岭县| 牟定县| 合作市| 屏东县| 临漳县| 昭苏县| 专栏| 和平县| 古蔺县| 成武县|