我們知道邏輯回歸的損失函數cost=-ylogo-(1-y)log(1-o),其中o為模型輸出,y為樣本真實分布,為什么損失函數可以是這個形式?機器學習的終極目標是什么?機器學習中測試集起的作用是什么?
首先我們需要知道一個概念——信息量,它指的是一個事件發生所帶來的信息。日常生活中,信息的載體是消息,比如“一個星期有7天”這條消息,它所帶來的信息量我們可以認為是0,為什么呢?用大白話解釋就是說了等于沒說,因為“一個星期有7天”這個事件它是確定事件。又比如說“老板希望這個月32號發工資”,從科學的角度來講,這個消息的信息量為無窮大,因為這是不可能事件。而另外一條消息“埃航一架飛機墜毀了”,這個消息帶來的信息量就非常大,因為飛機發生事故的概率很小,而墜毀的概率就更小了,因此這個事件的不確定性非常大,所以這條消息帶來的信息量很大。
題圖:保羅·高更《我們從何處來?我們是誰?我們向何處去?》
總結一下,信息量反映一個事件不確定性的程度,它在數學上有一個定義,就是I=-log(p),-log是遞減函數,p越大,那么I就越小。也就是說,一個事件的確定性程度越高,它發生所帶來的信息量就越小。
不過,當事件還沒有發生的時候,就不是直接去求信息量了,而應該是求信息量的期望值,所以這個時候,我們要求的是信息熵,需要在信息量前面乘以該事件發生的概率,也就是信息熵H(P)=-Plog(P),所以,信息熵反映的是一個事件還沒有發生之前,它發生時候帶來信息量的期望值。在以2為底求對數的時候,信息熵的單位可以記為bit。
也可以理解為,根據真實分布,我們能夠找到一個最優策略,該策略可以以最小的代價消除系統的不確定性,而這個代價的大小就是信息熵。
介紹為信息熵H(P)之后,我們再來看交叉熵,交叉熵出現的背景是我們想知道分布Q是否可以代表分布P,放到機器學習中,假設測試集的分布可以認為是P,這個是確定的,因為正負樣本都是我們提前標定好的,標定好那一刻之后,它的分布就被唯一確定了,而分布Q則是我們訓練好的網絡。現在,我們想知道對于測試樣本的概率分布為P的情況下,訓練好的網絡的分布Q帶給我們的不確定性期望值為多少?用公式描述就是用概率分布P去乘以訓練好的網絡的信息量:
H(P,Q)=-Plog(Q)
如果H(P,Q)為0,說明我們訓練好的網絡帶來的不確定性為0,也就是說我們標定的數據為正,網絡輸出也為正,標定的數據為負,網絡輸出也為負,沒有任何懸念可言,因此,使得交叉熵H(P,Q)=0不就是我們訓練網絡的終極目標嗎?
最后,我們還要看相對熵(又稱KL散度)的概念,在用分布Q去擬合分布P的時候,我們一定會多產生一些無關緊要的信息熵,那么這個多余的信息熵就是用交叉熵減去真實分布熵,用公式表示就是:
D(P||Q)=H(P,Q)-H(P)
一般情況下,在標記員標記好數據的那一刻,P的分布就已經確定了,H(P)可以認為是一個常數,所以優化H(P,Q)實際上就等于優化D(P||Q),也就是說優化交叉熵等同于優化相對熵或優化KL散度,因此我們經常看到交叉熵、相對熵或KL散度混淆使用,原因就在這里。
那么回到邏輯回歸中,樣本要么為正,要么為負,假設測試集真實標簽為y,模型輸出為o,于是交叉熵為-ylog(o)-(1-y)log(1-o),就得到了我們開頭說的損失函數的形式。損失函數值越小,那么用模型的輸出去逼近測試集真實的分布所消耗的額外信息熵就越小。需要注意的是,我們這里用測試集的分布來代表真實分布,因此測試集的選取是十分重要的。
-
信息
+關注
關注
0文章
405瀏覽量
35521 -
函數
+關注
關注
3文章
4307瀏覽量
62434 -
機器學習
+關注
關注
66文章
8378瀏覽量
132425
原文標題:從信息論的角度來理解損失函數
文章出處:【微信號:DeepLearningDigest,微信公眾號:深度學習每日摘要】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論