-
通常使用的損失函數——似然函數,爲什麼要加負對數取做負對數似然函數?
(我以前一直說使用的是交叉熵,現在想想其實並不準確,從參數估計的角度來看,怎麼也是似然函數對吧?)原因主要兩點:
- 如果假設條件是獨立同分布,那麼似然函數往往是連乘的形式,這樣子求偏導數,不容易;通過取對數的形式將連乘變爲求和。
- 概率值是小數,多個連乘的情況下,容易造成下溢
-
負對數似然函數與交叉熵的關聯是什麼?
似然用來描述已知隨機變量輸出結果時,未知參數可能取值的概率。
在損失函數這個背景下,似然函數的擴展意義:衡量當前模型參數對於已知樣本集的解釋情況。如果從多分類的角度來說,也就是,在已知樣本最終類別label的情況下,計算以你的預測值predict爲參數的觀測值的似然度。那如果是如上述黑體所說,你這個觀測的模型是什麼呢?
顯然就是個簡單的多項分佈。(注意這是有模型的)那什麼是多項分佈?,閱讀參考鏈接1或者2,從伯努利分佈(兩點分佈)擴展到二項分佈擴展到多項分佈(從扔硬幣到扔骰子)。
單次觀測下的多項分佈:
其中,C代表類別數。p代表向量形式的模型參數,即各個類別的發生概率,如p=[0.1, 0.1, 0.7, 0.1],則p1=0.1, p3=0.7等。即,多項式分佈的模型參數就是各個類別的發生概率!x代表one-hot形式的觀測值,如x=類別3,則x=[0, 0, 1, 0]。xi代表x的第i個元素,比如x=類別3時,x1=0,x2=0,x3=1,x4=0。再取個對數加負號就和我們上述所說的負對數似然相同了。
如果加上log的話變成:
這個形式和交叉熵實際上是相同的。
交叉熵是這樣說的:
對於某種分佈的隨機變量X~p(x), 有一個模型q(x)用於近似p(x)的概率分佈,則分佈X與模型q之間的交叉熵即:
這裏X的分佈模型即樣本集label的真實分佈模型,這裏模型q(x)即想要模擬真實分佈模型的機器學習模型。可以說交叉熵是直接衡量兩個分佈,或者說兩個model之間的差異。而似然函數則是解釋以model的輸出爲參數的某分佈模型對樣本集的解釋程度。因此,可以說這兩者是“同貌不同源”,但是“殊途同歸”啦。
參考鏈接1 參考鏈接2 -
似然函數和概率函數是一個東西嗎?
從某個角度來說是一個東西,一個函數從兩個角度去看。
參考鏈接 -
爲什麼RNN不能並行計算但是CNN可以?
To be Solved. -
Bptt算法和普通的back propagation有什麼不同?
To be Solved.
部分轉載自【夕小瑤的賣萌屋】,聽說每一個想學機器學習的人到這裏都停不下來了~