1. 程式人生 > >為什麼交叉熵可以作為損失函式?

為什麼交叉熵可以作為損失函式?

通俗的理解:

熵:可以表示一個事件A的自資訊量,就是A包含多少資訊。
KL散度:可以用來表示從事件A的角度來看,事件B有多大不同。
交叉熵:可以用來表示從事件A的角度來看,如何描述事件B。

熵的公式:

S(A) = -\sum_{i}P_A(x_{i})logP_A(x_{i}) KL散度的公式: \begin{equation*} D_{KL}(A||B) = \sum_{i}P_{A}(x_i) log\bigg(\frac{P_{A}(x_i)}{P_{B}(x_i)} \bigg) = \sum_{i}P_{A}(x_i)log(P_{A}(x_i ))- P_{A}(x_i)log(P_{B}(x_i)) \end{equation*} 交叉熵的公式: \begin{equation*} H(A,B)= -\sum_{i}P_{A}(x_i)log(P_{B}(x_i)) \end{equation*} 所以
A與B的交叉熵 = A與B的KL散度 - A的熵

當A的熵一定,最小化交叉熵與最小化KL散度等價。

例如在邏輯迴歸中,我們實際上實在最小化模型的分佈與訓練資料的分佈的KL散度,因為訓練資料的分佈也就是熵一定,所以我們可以通過最小化交叉熵來實現,因為交叉熵的形式比KL散度的形式簡單。

相關推薦

為什麼用交叉作為損失函式

交叉熵(cross entropy)經常用來做機器學習中的損失函式。 要講交叉熵就要從最基本的資訊熵說起。 1.資訊熵 資訊熵是消除不確定性所需資訊量的度量。(多看幾遍這句話) 資訊熵就是資訊的不確定程度,資訊熵越小,資訊越確定。 信息熵=∑x=1n(信息x發生

理解交叉作為損失函式在神經網路中的作用

交叉熵的作用 通過神經網路解決多分類問題時,最常用的一種方式就是在最後一層設定n個輸出節點,無論在淺層神經網路還是在CNN中都是如此,比如,在AlexNet中最後的輸出層有1000個節點: 而即便是ResNet取消了全連線層,也會在最後有一個1000個節

深度學習框架TensorFlow學習與應用(三)——使用交叉作為代價函式

二次代價函式(quadratic cost): 其中,C表示代價函式,x表示樣本,y表示實際值,a表示輸出值,n表示樣本的總數。 例如: 假如我們使用梯度下降法(Gradient descent)來調整權值引數的大小,權值w和偏置b的梯

交叉以及為什麼用交叉作為代價函式

作者:知乎使用者來源:知乎著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。熵的本質是夏農資訊量()的期望。現有關於樣本集的2個概率分佈p和q,其中p為真實分佈,q非真實分佈。按照真實分佈p來衡量識別一個樣本的所需要的編碼長度的期望(即平均編碼長度)為:H(

使用交叉作為代價函式

二次代價函式(quadratic cost): 其中,C表示代價函式,x表示樣本,y表示實際值,a表示輸出值,n表示樣本的總數。 例如: 假如我們使用梯度下降法(Gradient descent)來調整權值引數的大小,權值w和偏置b的梯度推導如下:

為什麼交叉可以作為損失函式

通俗的理解: 熵:可以表示一個事件A的自資訊量,就是A包含多少資訊。 KL散度:可以用來表示從事件A的角度來看,事件B有多大不同。 交叉熵:可以用來表示從事件A的角度來看,如何描述事件B。 熵的公式:

理解交叉(cross_entropy)作為損失函式在神經網路中的作用

交叉熵的作用通過神經網路解決多分類問題時,最常用的一種方式就是在最後一層設定n個輸出節點,無論在淺層神經網路還是在CNN中都是如此,比如,在AlexNet中最後的輸出層有1000個節點: 而即便是ResNet取消了全連線層,也會在最後有一個1000個節點的輸出層: 一般情況下

交叉與softmax函式

交叉熵與softmax函式 在神經網路中,在對超引數進行優化過程當中,需要有一個優化的目標值,也就是真實值與預測值之間的差距要儘量小,差距越小說明預測越精確。這個差距往往用loss表示 在分類問題當中,我們用交叉熵來表示這個loss值。 1. 熵的概念 熵是物理學中的一個名詞

交叉在loss函式中使用的理解

交叉熵(cross entropy)是深度學習中常用的一個概念,一般用來求目標與預測值之間的差距。以前做一些分類問題的時候,沒有過多的注意,直接呼叫現成的庫,用起來也比較方便。最近開始研究起對抗生成網路(GANs),用到了交叉熵,發現自己對交叉熵的理解有些模糊,不夠深入。遂花了幾天的時間從頭梳理了一下相關

Tensorflow 兩個交叉損失函式的區別

tf.nn.sparse_softmax_cross_entropy_with_logits label:不含獨熱編碼,shape:[batch_size, ] logits:原始預測概率分佈向量,shape:[batch_size, num_classes] logits = np

最大似然損失交叉損失函式的聯絡

在利用深度學習模型解決有監督問題時,比如分類、迴歸、去噪等,我們一般的思路如下: 資訊流forward propagation,直到輸出端; 定義損失函式L(x, y | theta); 誤差訊號back propagation。採用數學理論中的“鏈式法則”,求L(x,

交叉損失函式及Tensorflow實現

一、交叉熵損失原理 一般情況下,在分類任務中,神經網路最後一個輸出層的節點個數與分類任務的標籤數相等。 假設最後的節點數為N,那麼對於每一個樣例,神經網路可以得到一個N維的陣列作為輸出結果,陣列中每一個維度會對應一個類別。在最理想的情況下,如果一個樣本屬於k,那麼這個類別所對應的第k個輸出節

深度學習基礎--loss與啟用函式--sigmiod與softmax;對數損失函式交叉代價函式

sigmiod與softmax   sigmiod就是邏輯迴歸(解決二分類問題);softmax是多分類問題的邏輯迴歸   雖然邏輯迴歸能夠用於分類,不過其本質還是線性迴歸。它僅線上性迴歸的基礎上,在特徵到結果的對映中加入了一層sigmoid函式(非線性)對映,即先把特徵線性求和,然後使

【Kaggle-MNIST之路】CNN結構再改進+交叉損失函式(六)

簡述 這裡再添加了一個卷積層。用一個kernal=4的卷積層做一個卷積之後,再做對映。 基於之前的一個版本 【Kaggle-MNIST之路】CNN結構改進+改進過的損失函式(五) 成績:0.9898 排名:1000+ 程式碼 注意

TensorFlow筆記-06-神經網路優化-損失函式,自定義損失函式,交叉

TensorFlow筆記-06-神經網路優化-損失函式,自定義損失函式 **神經元模型:用數學公式比表示為:f(Σi xi*wi + b), f為啟用函式** 神經網路 是以神經元為基本單位構成的 啟用函式:引入非線性啟用因素,提高模型的表達能力 常用的啟用函式有relu、sigmoid、tanh等 (1)

softmax交叉損失函式求導

softmax 函式 softmax(柔性最大值)函式,一般在神經網路中, softmax可以作為分類任務的輸出層。其實可以認為softmax輸出的是幾個類別選擇的概率,比如我有一個分類任務,要分為三個類,softmax函式可以根據它們相對的大小,輸出三個類別選取的概率

softmax交叉損失函式反向傳播求導過程分析

目錄 一、softmax 函式 二、損失函式 loss function 三、最後的準備工作                           

softmax + cross-entropy交叉損失函式詳解及反向傳播中的梯度求導

相關 正文 在大多數教程中, softmax 和 cross-entropy 總是一起出現, 求梯度的時候也是一起考慮. 我們來看看為什麼. 關於 softmax 和 cross-entropy 的梯度的求導過程, 已經在上面的兩篇文章中分別給出, 這裡

《TensorFlow實戰Google深度學習框架》——4.2.1 經典損失函式交叉、均方差)

目錄 1、交叉熵 1、交叉熵 交叉熵是分類問題中使用比較廣的一種損失函式,刻畫了兩個概率分佈之間的距離。 給定兩個概率分佈p和q,通過q來表示p的交叉熵為: 交叉熵刻畫的是兩個概率分佈之間的距離,然而神經網路的輸出卻不一定是一個概率分佈。Softmax迴歸就

交叉損失函式

交叉熵(cross entropy)是深度學習中常用的一個概念,一般用來求目標與預測值之間的差距 1.資訊量 2.熵 3.相對熵 4.交叉熵 5.機器學習中交叉熵的應用 1.為什麼要用交叉熵做loss函式? 線上性迴歸問題中,常常使用MSE