這個問題需要從熵談起, 根據香濃理論,熵是描述信息量的一種度量,如果某一事件發生的概率越小,也就是不確定性越大,那么熵就越大,或者說是信息量越大。 比如說,我們現實生活中,經常會有這樣的場景,比如明星某薛,平時在我們這些吃瓜群眾面前是一個人品極高,形象特別好,沒有任何負面新聞,迷妹也是一波一波的。but, 突然有一天,被甩出各種有力證據,被證明是一個背!信!棄!義!的渣男!此刻,你有沒有一種蒙圈的感覺,一時沒緩過神來,因為信息量太大了 !有沒有? 故事到此,我們以理論的角度來分析下,根據香濃理論,信息量 H = -log(p(X)), (至於為什么是-log函數來度量信息量,背后的數學原理,大家可以自己去深入了解下。)從H的函數表達中可以知道,信息量與事件發生的概率P(X)反相關。由於某薛之前在公眾心目中的良好形象,大家認為他發生背信棄義之事(記為X)必定是小概率事件P(X),但事件X一旦發生,必定會滿城風雨,因為香濃認為,這個信息量太大了,所以大家的反應會很強烈,都引發了UI界的妹紙們去用技術的手段證明證據的真偽,你說信息量大不大! 言歸正傳,在我們深度學習任務中,交叉熵經常被作為一種Loss Function(J),我們就以分類任務為例,給定假設函數h為Softmax, 由於假設函數softmax的定義完全滿足概率的定義:非負性,規范性,可列可加性,所以softmax的輸出完全可以理解為概率輸出(通常說的置信度),即對某一輸入X,預測輸出為Y的事件可能性(概率)。

我們訓練網絡,目標是盡可能在我們給定的訓練樣本中,讓網絡學習到使得我們的訓練樣本預測輸出與標定值一致的模型參數(本質是模型擬合問題,這里不展開討論這個問題),這里,我們的重點是,預測輸出與標定一致。當我們給網絡的輸入是X時, 我們希望網絡輸出Y盡可能等於X, 也就是(Y - X) -> 0。 對於同一類樣本,網絡輸入可以抽象的理解為是同一個模式類(X),當然,網絡應該輸出一個確定的類別標簽(Y)。在我們設定類別標簽確定的情況下,這個事件必須是一個確定性的事件,而不是一個不確定的事件。(否則我們的訓練模型就是一個不可用的模型 ), 既然最終模型輸出應該是一個確定的事件,那么我們的輸出概率P(X)應該是一個盡可能大的概率,盡可能是一個必然事件(P(X) -> 1), 反過來,如果我們的預測輸出跟標定標簽相差甚遠,即(Y - X)較大,網絡訓練時,應該使得這個可能性盡可能的小。於是,此時交叉熵作為Loss Function該登場了,

公式本質是度量信息量的,即越是確定的事件,發生的概率越大,交叉熵越小。而我們要最小化loss function,使得交叉熵(信息量)盡可能小,也就是要讓模型學習到這樣的能力:將訓練樣本以盡可能大的概率分類正確。所以,當y(i) = j時,使得概率:

(歡迎轉載,但必須注明出處。歡迎大家交流:wujianping.2006@163.com)