首頁>Club>
3
回覆列表
  • 1 # 分享那點事兒

    對於理解為什麼交叉熵成為代價函式有很多角度,但我個人沒有從交叉熵本身的性質去理解。我也認為它是由求訓練集的極大似然而推匯出來的(換句話說就是找到使訓練集出現可能性最大的引數集的方式)。具體到神經網路,如果你的輸出層函式是softmax或sigmoid(最常見的分類用的輸出函式)的時候,當你把softmax或sigmoid帶入訓練集的極大似然表示式,就會得到交叉熵函式。很多論文和教材直接用了這個結論,而忽略了推導過程。

    當然也可以用非極大似然的方式來估計引數,不過具體的例子我就不太瞭解了。

    看了其他答主的回答,覺得從KL散度來理解也不錯。

  • 2 # 北航秦曾昌

    交叉熵在機器學習中時一種的衡量損失的函式,即衡量預測值和目標值之間的差距,常常作為分類問題最小化的指標。那麼為什麼這裡會用交叉熵呢?

    這裡先從機器學習是如何發揮作用的說起。我們都知道機器學習是透過資料來進行學習的,那機器學習模型從資料中學習到了什麼,才能實現對新資料的預測呢。一種從機率角度的解釋是:機器學習實際是在學習資料的分佈。

    這裡假設資料的是從某一真實分佈P(real)中獨立取樣出來的,也就是我們觀察到了的資料。但是,這些資料由於數目的不足以及取樣過程中的噪聲,使得資料並不能完全表示出真實分佈。於是,這裡我們用P(data)來表示資料的分佈,而且P(data)~P(real)。而機器學習利用資料進行反覆訓練,模型學習到的資料分佈用P(model)來表示。機器學習演算法的設計就是要讓P(model)儘可能的與P(data)相近,從而接近真實分佈P(real)。

    那麼在瞭解了上述過程之後,就有了一個新的問題,我們該如何度量兩種分佈之間的相似度呢?在機率統計中,衡量分佈之間差異的方法有兩種分別是相對熵和交叉熵。

    交叉熵的計算公式:

    相對熵的計算公式:

    可以發現兩者在計算方式上類似,但表示的含義卻不同:

    交叉熵表示了用非真實分佈對真實分佈進行編碼所需的平均碼長;

    相對熵則是用真實分佈進行編碼所需的平均編碼長度和交叉熵之間的差值。

    同時,對兩者進行最小化都能達到拉近分佈之間距離的目的,此外交叉熵從形式上更為簡潔。因此就將交叉熵作為衡量分佈之間差異性的損失函式。

    在機器學習二分類問題中實際使用的交叉熵損失函式為:

    其中y表示真實標籤(通常為0-1),a表示實際輸出標籤。

    可以看出在形式上同交叉熵的計算公式基本類似。透過最小化交叉熵損失,這樣也就能使得P(model)和P(data)的分佈儘可能接近,從而讓模型能學習到真實分佈P(real),擁有更好的泛化能力。

  • 中秋節和大豐收的關聯?
  • 宅女就真的很難找到物件嗎?你怎麼看?