女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于交叉熵在loss函數(shù)中使用的理解

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-07-03 11:32 ? 次閱讀

▌關(guān)于交叉熵在loss函數(shù)中使用的理解

交叉熵(cross entropy)是深度學(xué)習(xí)中常用的一個(gè)概念,一般用來求目標(biāo)與預(yù)測(cè)值之間的差距。以前做一些分類問題的時(shí)候,沒有過多的注意,直接調(diào)用現(xiàn)成的庫,用起來也比較方便。最近開始研究起對(duì)抗生成網(wǎng)絡(luò)(GANs),用到了交叉熵,發(fā)現(xiàn)自己對(duì)交叉熵的理解有些模糊,不夠深入。遂花了幾天的時(shí)間從頭梳理了一下相關(guān)知識(shí)點(diǎn),才算透徹的理解了,特地記錄下來,以便日后查閱。

信息論

交叉熵是信息論中的一個(gè)概念,要想了解交叉熵的本質(zhì),需要先從最基本的概念講起。

1 信息量

首先是信息量。假設(shè)我們聽到了兩件事,分別如下:

事件A:巴西隊(duì)進(jìn)入了2018世界杯決賽圈。

事件B:中國(guó)隊(duì)進(jìn)入了2018世界杯決賽圈。

僅憑直覺來說,顯而易見事件B的信息量比事件A的信息量要大。究其原因,是因?yàn)槭录嗀發(fā)生的概率很大,事件B發(fā)生的概率很小。所以當(dāng)越不可能的事件發(fā)生了,我們獲取到的信息量就越大。越可能發(fā)生的事件發(fā)生了,我們獲取到的信息量就越小。那么信息量應(yīng)該和事件發(fā)生的概率有關(guān)。

假設(shè)X是一個(gè)離散型隨機(jī)變量,其取值集合為χ,概率分布函數(shù),定義事件的信息量為:

由于是概率所以的取值范圍是[0,1],繪制為圖形如下:?

可見該函數(shù)符合我們對(duì)信息量的直覺

2 熵

考慮另一個(gè)問題,對(duì)于某個(gè)事件,有n種可能性,每一種可能性都有一個(gè)概率p(xi)。

這樣就可以計(jì)算出某一種可能性的信息量。舉一個(gè)例子,假設(shè)你拿出了你的電腦,按下開關(guān),會(huì)有三種可能性,下表列出了每一種可能的概率及其對(duì)應(yīng)的信息量

注:文中的對(duì)數(shù)均為自然對(duì)數(shù)

我們現(xiàn)在有了信息量的定義,而熵用來表示所有信息量的期望,即:

其中n代表所有的n種可能性,所以上面的問題結(jié)果就是

然而有一類比較特殊的問題,比如投擲硬幣只有兩種可能,字朝上或花朝上。買彩票只有兩種可能,中獎(jiǎng)或不中獎(jiǎng)。我們稱之為0-1分布問題(也叫二項(xiàng)分布),對(duì)于這類問題,熵的計(jì)算方法可以簡(jiǎn)化為如下算式:

3 相對(duì)熵(KL散度)

相對(duì)熵又稱KL散度,如果我們對(duì)于同一個(gè)隨機(jī)變量 x 有兩個(gè)單獨(dú)的概率分布 P(x) 和 Q(x),我們可以使用 KL 散度(Kullback-Leibler (KL) divergence)來衡量這兩個(gè)分布的差異

維基百科對(duì)相對(duì)熵的定義

In the context of machine learning, DKL(P‖Q) is often called the information gain achieved if P is used instead of Q.

即如果用P來描述目標(biāo)問題,而不是用Q來描述目標(biāo)問題,得到的信息增量。

機(jī)器學(xué)習(xí)中,P往往用來表示樣本的真實(shí)分布,比如[1,0,0]表示當(dāng)前樣本屬于第一類。Q用來表示模型所預(yù)測(cè)的分布,比如[0.7,0.2,0.1]

直觀的理解就是如果用P來描述樣本,那么就非常完美。而用Q來描述樣本,雖然可以大致描述,但是不是那么的完美,信息量不足,需要額外的一些“信息增量”才能達(dá)到和P一樣完美的描述。如果我們的Q通過反復(fù)訓(xùn)練,也能完美的描述樣本,那么就不再需要額外的“信息增量”,Q等價(jià)于P。

KL散度的計(jì)算公式:

(3.1)

n為事件的所有可能性。

DKL的值越小,表示q分布和p分布越接近。

4 交叉熵

對(duì)式3.1變形可以得到:

等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:

在機(jī)器學(xué)習(xí)中,我們需要評(píng)估label和predicts之間的差距,使用KL散度剛剛好,即,由于KL散度中的前一部分不變,故在優(yōu)化過程中,只需要關(guān)注交叉熵就可以了。所以一般在機(jī)器學(xué)習(xí)中直接用交叉熵做loss,評(píng)估模型。

▌機(jī)器學(xué)習(xí)中交叉熵的應(yīng)用

1 為什么要用交叉熵做loss函數(shù)?

在邏輯回歸問題中,常常使用MSE(Mean Squared Error)作為loss函數(shù),比如:

這里的m表示m個(gè)樣本的,loss為m個(gè)樣本的loss均值。

MSE在邏輯回歸問題中比較好用,那么在分類問題中還是如此么?

讓我們來看一下不同loss的函數(shù)曲線:

首先所有節(jié)點(diǎn)輸出都用的softmax

分別拿一個(gè)樣本來做示例,首先是使用MSE的loss

其中都是常數(shù),loss簡(jiǎn)化為:?

,繪圖如下

顯然,這個(gè)函數(shù)是非凸的,對(duì)優(yōu)化問題來講,不太好優(yōu)化,容易陷入局部極值點(diǎn)。

再來看使用交叉熵的loss

由于one-hot標(biāo)簽的特殊性,一個(gè)1,剩下全是0,loss可以簡(jiǎn)化為:

繪制曲線如下:

曲線是一個(gè)凸函數(shù),自變量的取值范圍是[0,1]。凸函數(shù)便于梯度下降反向傳播,便于優(yōu)化。所以一般針對(duì)分類問題采用交叉熵作為loss函數(shù)

2 交叉熵在單分類問題中的使用

這里的單類別是指,每一張圖像樣本只能有一個(gè)類別,比如只能是狗或只能是貓。

交叉熵在單分類問題上基本是標(biāo)配的方法

上式為一張樣本的loss計(jì)算方法。式2.1中n代表著n種類別。

舉例說明,比如有如下樣本

對(duì)應(yīng)的標(biāo)簽和預(yù)測(cè)值

那么

對(duì)應(yīng)一個(gè)batch的loss就是

m為當(dāng)前batch的樣本數(shù)

3 交叉熵在多分類問題中的使用

這里的多類別是指,每一張圖像樣本可以有多個(gè)類別,比如同時(shí)包含一只貓和一只狗。

和單分類問題的標(biāo)簽不同,多分類的標(biāo)簽是n-hot。

比如下面這張樣本圖,即有青蛙,又有老鼠,所以是一個(gè)多分類問題。

對(duì)應(yīng)的標(biāo)簽和預(yù)測(cè)值

值得注意的是,這里的Pred不再是通過softmax計(jì)算的了,這里采用的是sigmoid。將每一個(gè)節(jié)點(diǎn)的輸出歸一化到[0,1]之間。所有Pred值的和也不再為1。換句話說,就是每一個(gè)Label都是獨(dú)立分布的,相互之間沒有影響。所以交叉熵在這里是單獨(dú)對(duì)每一個(gè)節(jié)點(diǎn)進(jìn)行計(jì)算,每一個(gè)節(jié)點(diǎn)只有兩種可能值,所以是一個(gè)二項(xiàng)分布。前面說過對(duì)于二項(xiàng)分布這種特殊的分布,熵的計(jì)算可以進(jìn)行簡(jiǎn)化。

同樣的,交叉熵的計(jì)算也可以簡(jiǎn)化,即

注意,上式只是針對(duì)一個(gè)節(jié)點(diǎn)的計(jì)算公式。這一點(diǎn)一定要和單分類loss區(qū)分開來。

例子中可以計(jì)算為:

單張樣本的loss即為loss=loss貓+loss蛙+loss鼠

每一個(gè)batch的loss就是:

式中m為當(dāng)前batch中的樣本量,n為類別數(shù)。

▌總結(jié)

路漫漫,要學(xué)的東西還有很多啊。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4367

    瀏覽量

    64173
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5554

    瀏覽量

    122470
  • 交叉熵
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    2442

原文標(biāo)題:一文搞懂交叉熵在機(jī)器學(xué)習(xí)中的使用,透徹理解交叉熵背后的直覺

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何在PyTorch中使交叉損失函數(shù)

    Keras有一個(gè)簡(jiǎn)潔的API來查看模型的每一層輸出尺寸,這在調(diào)試網(wǎng)絡(luò)時(shí)非常有用。現(xiàn)在在PyTorch中也可以實(shí)現(xiàn)這個(gè)功能。
    的頭像 發(fā)表于 08-18 11:01 ?2652次閱讀

    什么是交叉

    2018-04-22 開胃學(xué)習(xí)數(shù)學(xué)系列 - 交叉
    發(fā)表于 03-21 11:08

    交叉的作用原理

    交叉作為損失函數(shù)神經(jīng)網(wǎng)絡(luò)中的作用和幾種常用的交叉損失
    發(fā)表于 06-03 09:10

    keras常用的損失函數(shù)Losses與評(píng)價(jià)函數(shù)Metrics介紹

    函數(shù)如下,它們有自己適用的應(yīng)用場(chǎng)景,最常用的是均方誤差和交叉誤差: 編號(hào)可用損失函數(shù)alias說明1mean_squared_error(y_true, y_pred)mseMSE
    發(fā)表于 08-18 06:31

    wincc中使用vbs常用函數(shù)

    電子發(fā)燒友提供了wincc中使用vbs常用函數(shù),1.函數(shù)array() 功能:創(chuàng)建一個(gè)數(shù)組變量格式:array(list)參數(shù):list 為數(shù)組變量中的每個(gè)數(shù)值列,中間用逗號(hào)間隔
    發(fā)表于 06-20 10:51 ?1.7w次閱讀

    大數(shù)據(jù)中邊界向量調(diào)節(jié)函數(shù)支持向量機(jī)研究

    大數(shù)據(jù)中邊界向量調(diào)節(jié)函數(shù)支持向量機(jī)研究_林蔚
    發(fā)表于 01-07 19:08 ?0次下載

    采用交叉支持向量機(jī)和模糊積分的電網(wǎng)故障診斷_邊莉

    采用交叉支持向量機(jī)和模糊積分的電網(wǎng)故障診斷_邊莉
    發(fā)表于 01-08 13:26 ?0次下載

    Softmax如何把CNN的輸出轉(zhuǎn)變成概率?交叉如何為優(yōu)化過程提供度量?

    這篇小文將告訴你:Softmax是如何把CNN的輸出轉(zhuǎn)變成概率,以及交叉是如何為優(yōu)化過程提供度量,為了讓讀者能夠深入理解,我們將會(huì)用python一一實(shí)現(xiàn)他們。
    的頭像 發(fā)表于 07-29 11:21 ?2.1w次閱讀

    基于交叉算法的跟馳模型標(biāo)定

    的確定性標(biāo)定方法會(huì)導(dǎo)致大量局部最優(yōu)值的出現(xiàn)。在此基礎(chǔ)上,本文提出了基于交叉算法的跟馳模型標(biāo)定的框架,基于蒙地卡羅與重要樣本策略逐步逼近參數(shù)的最優(yōu)概率密度函數(shù)。實(shí)例分別采用合成數(shù)據(jù)與實(shí)測(cè)數(shù)據(jù)標(biāo)定智能駕駛模型
    發(fā)表于 01-11 16:23 ?8次下載
    基于<b class='flag-5'>交叉</b><b class='flag-5'>熵</b>算法的跟馳模型標(biāo)定

    理解函數(shù)指針、函數(shù)指針數(shù)組、函數(shù)指針數(shù)組的指針

    理解函數(shù)指針、函數(shù)指針數(shù)組、函數(shù)指針數(shù)組的指針
    的頭像 發(fā)表于 06-29 15:38 ?1.5w次閱讀
    <b class='flag-5'>理解</b><b class='flag-5'>函數(shù)</b>指針、<b class='flag-5'>函數(shù)</b>指針數(shù)組、<b class='flag-5'>函數(shù)</b>指針數(shù)組的指針

    當(dāng)機(jī)器學(xué)習(xí)遇上SSD,會(huì)擦出怎樣的火花呢?

    判斷一個(gè)函數(shù)的好壞,這需要確定一個(gè)衡量標(biāo)準(zhǔn),也就是我們通常說的損失函數(shù)(Loss Function),損失函數(shù)的確定也需要依據(jù)具體問題而定,如回歸問題一般采用歐式距離,分類問題一般采用
    的頭像 發(fā)表于 09-07 16:12 ?2844次閱讀
    當(dāng)機(jī)器學(xué)習(xí)遇上SSD,會(huì)擦出怎樣的火花呢?

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中分類與回歸常用的幾種損失函數(shù)

    Loss、分位數(shù)損失 Quantile Loss交叉損失函數(shù) Cross Entropy Loss
    的頭像 發(fā)表于 10-09 16:36 ?6502次閱讀
    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中分類與回歸常用的幾種損失<b class='flag-5'>函數(shù)</b>

    PyTorch中使用ReLU激活函數(shù)的例子

    PyTorch已為我們實(shí)現(xiàn)了大多數(shù)常用的非線性激活函數(shù),我們可以像使用任何其他的層那樣使用它們。讓我們快速看一個(gè)PyTorch中使用ReLU激活函數(shù)的例子:
    的頭像 發(fā)表于 07-06 15:27 ?2733次閱讀

    Zynq裸機(jī)設(shè)計(jì)中使用視覺庫L1 remap函數(shù)的示例

    本篇博文旨在演示如何在 Zynq 設(shè)計(jì)中使用 Vitis 視覺庫函數(shù) (remap) 作為 HLS IP,然后 Vitis 中使用該函數(shù)
    的頭像 發(fā)表于 08-01 10:18 ?996次閱讀
    <b class='flag-5'>在</b>Zynq裸機(jī)設(shè)計(jì)<b class='flag-5'>中使</b>用視覺庫L1 remap<b class='flag-5'>函數(shù)</b>的示例

    RNN的損失函數(shù)與優(yōu)化算法解析

    函數(shù)有以下幾種: 交叉損失函數(shù)交叉(Cross Entropy)是一種評(píng)估兩個(gè)概率分布之
    的頭像 發(fā)表于 11-15 10:16 ?1216次閱讀