首頁>科技>

出處:https://mp.weixin.qq.com/s?__biz=MTEwNTM0ODI0MQ==&mid=2653455932&idx=1&sn=3ff98659ba79a6df780c8cc3aa749fe9

| 導語 關於各類損失函式的由來,很多地方,如簡書、知乎都有相關文章。 但是很少看到統一成一個體系的闡述,基本都是對一些公式的講解。 實際上這一系列的損失函式都是有一整套數學體系的,可以互相推導互相轉化的。 作者特地做了一些整理,水平有限,方便讀者查閱。 水平有限,大佬勿噴,感激不盡~

二、同分布評估

要想估計隨機事件的實際分佈,首先就需要定義兩個分佈之間的衡量方式,也就是如何定義兩個分佈之間的差異?這其實是一件非常麻煩的事情,要詳細闡述這個問題的解決過程需要查閱很多資料,一篇文章的篇幅是寫不完的。

2.1 KL散度

KL散度又稱相對資訊熵,可以用來衡量兩個分佈之間的資訊增益。

假設存在分佈P和分佈Q,分佈P相對於分佈Q具有的資訊增益可以用下列式子表達

此處應注意:

2.2 交叉熵

此處有長得比較帥的讀者就注意到了,KL散度和交叉熵公式長得很像, 他們是否有聯絡呢?

是的,交叉熵(cross-entropy)和 KL 散度聯絡很密切,以下以離散分佈舉例,對於連續分佈是一樣的。

交叉熵為:

KL散度推導:

H§是自資訊,對於一個給定的分佈而言,這是個常數。所以,在實際使用中,最佳化交叉熵實際就是最佳化KL散度。

在實際使用中,我們要衡量的是:對於給定的輸入X,預測的分佈和實際分佈的差異。並希望最佳化這個差異,是的預測的分佈和實際分佈儘可能分佈,用數學語言表示如下。

公式裡的N是N個分類,P(y|X)是離散分佈。一般來說,對於一個確定的輸入,y(即label)是確定的,也即P(y=target|X) = 1, P(y=other|X) = 0。簡單的說, 就是對於正確分類,p(y)=1,否則p(y) = 0。此時就是常見的從最大化似然函式推匯出來的形式。

應該注意的是交叉熵裡,log前的那一項是不該理解為label的,只是對於互斥的多分類而言,這個值恰巧和label一樣而已。舉個例子,對於二分類的交叉熵:

這個式子裡的y 和(1- y)應該是機率,即在輸入X的情況下,標籤label=1的機率和label=0的機率。只是恰巧label也是1和0,看起來像是label而已。

三、引數估計

有了衡量兩個分佈的機率,那問題自然就來了。用什麼引數才能使我們你和出來的分佈儘可能地接近實際分佈呢?這就是引數估計。常見的有矩估計、最大似然估計、貝葉斯估計等。其中和我們今天主旨最接近的是最大似然估計。

最大似然可以有如下推導。

對於一系列抽樣,希望從觀察值中推斷隱藏的引數,將n個獨立樣本的機率表示如下:

為使系統達到最優,我們應挑選引數\theta使得P是最大的。對於連乘形式,在運算過程中容易出現數值極值,取其對數進行研究,最後該問題可描述為:

n個獨立樣本是從實際分佈P裡抽樣出來的,它可以看做是對原始分佈的一個抽樣近似

同樣的,考察最小化KL散度:

這個形式和最大化似然是一樣的。最大化似然可以看做是透過抽樣的形式,用樣本進行最小化KL散度估計。

四、損失函式由來

透過以上的闡述,可以看到,無論是最大化似然還是最小化交叉熵,其實都可以統一在最小化KL散度這個框架下。透過這兩種方法推匯出來的損失函式,其實都是對原始分佈P進行一定的假設的前提下推匯出來的。互相之間是可以轉化的。

4.1 二分類交叉熵

交叉熵函式如下:

當分類數N=2時,可以這樣寫:

由於只有兩個分類,那麼由 P(i=1) + P(i=2) = 1,可以對上式做進一步簡化。

模型輸出一個在[0,1]之間的值(sigmoid啟用)表示第一個分類P(i=1)的機率(就是label=1的機率),則第二個分類P(i=2)的機率(就是label=0的機率)就是 1 - P(i=1)。此處應注意,分類的類別號和label的區別。0-1分佈準確的說法是,二分佈,第一個分類標籤是0,第二個標籤是1。

這樣就可以簡化成

由於兩個分類的互斥性,這時只需要一個輸出就可以計算出兩個分類的機率。

4.2 多分類交叉熵

對於多分類

交叉熵函式如下:

一般模型是同時輸出N個結果,經過softmax後作為P(yi|X)的機率。

值得注意的是,當N=2時,這兩種操作是等效的:

輸出兩個值,經過softmax操作後分別作為y=1和y=0的機率,計算交叉熵;輸出一個值,經過sigmoid操作後,作為y_{i=1}的機率,y=0的機率透過1-y_{i=1}計算得到,然後用這兩個機率值計算交叉熵;

2操作其實是1操作的簡化方案。

4.3 最大化均方誤差

假設當資料分佈服從高斯分佈時,最大化似然函式有以下推導過程:

假定資料分佈服從

方差一定,需要透過最大化似然去估計這個高斯分佈的引數。

條件對數似然如下:

可以看到,最大化似然函式,其實就是最小化均方誤差mse

可以看出,這就是我們常見的mse loss的由來。它的準確表示應該是:

當誤差分佈服從高斯分佈時,透過抽樣的方法近似的最小化KL散度,獲得輸出均值的模型引數。

也就是說,以下幾種說法是等價的:

mse估計是誤差服從連續高斯分佈時,最大化似然估計,獲得輸出均值的模型引數。mse估計是誤差服從連續高斯分佈時,以抽樣的形式估計的最小化KL散度,獲得輸出均值的模型引數。mse估計是誤差服從連續高斯分佈時,以抽樣的形式估計的最大化交叉熵,獲得輸出均值的模型引數。

值得注意的是,對於表述3。大部分人只使用了離散形式的交叉熵,實際上交叉熵是衡量兩個分佈之間的資訊差的,是可以應用在連續分佈中的。

出處:https://mp.weixin.qq.com/s?__biz=MTEwNTM0ODI0MQ==&mid=2653455932&idx=1&sn=3ff98659ba79a6df780c8cc3aa749fe9

10
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 谷歌搶走微軟長期客戶,與福特汽車進行雲技術合作