標籤:

損失函數——負對數似然

本文討論一種常見的損失函數,負對數似然函數。


損失函數是用來衡量模型好壞的一個標準,在機器學習里,我們通常希望模型有比較小的loss,那麼該如何選擇我們的損失函數呢?最小化負的似然函數,借鑒了統計學的思想,是一種常見的損失函數。

Nagative Maximum Likehood

首先,假設我們有一堆的樣本點: D={(x_1,-1),(x_2,1),…,(x_N,-1)} ,我們希望我們訓練出來的模型能夠準確預測 x_i 的類別。通常來說,我們定義的模型都會對每個目標類別輸出一個概率值,所以,本質上,我們希望得到一個函數,它能告訴我們樣本 x_i 屬於+1的概率(或者屬於-1的概率,本質上是一樣的): f(x)=P(+1|x)

egin{split}P(y|x)=egin{cases} f(x) & 	ext{for $y=+1$} \ 1-f(x) & 	ext{for y=-1}end{cases}end{split}

所以,我們的模型 h 產生樣本集 D 的概率有多大呢:

L=P(x_1)h(x_1)cdot P(x_2)(1-h(x_2))cdot …cdot P(x_N)(1-h(x_N))

如果我們的模型足夠好的話,那麼上面的似然函數的值會很大,我們現在需要在假設空間裡面,把最好的 h 給找出來,哪個 h 最好呢?就是使得 L 最大的那個模型咯。

L=P(x_1)h_1(x_1)cdot P(x_2)(1-h_1(x_2))cdot …cdot P(x_N)(1-h_1(x_N))

L=P(x_1)h_2(x_1)cdot P(x_2)(1-h_2(x_2))cdot …cdot P(x_N)(1-h_2(x_N))

...

L=P(x_1)h_k(x1)cdot P(x_2)(1-h_k(x_2))cdot …cdot P(x_N)(1-h_k(x_N))

我們發現,對於不同的模型,都要乘上 P(x_1)P(x_2)…P(x_N) ,這對於我們比較不同模型的好壞,沒有幫助,所有我們可以把它略去。

所以,似然函數表達式變為:

L=h_k(x_1)cdot (1-h_k(x_2))cdot …cdot(1-h_k(x_N))

我們通常選擇sigmoid function當做 h ,本文最後會給出sigmoid function的性質。由於採用了sigmoid函數,似然函數表達式變為:

L=h_k(x_1)cdot h_k(-x_2)cdot …cdot h_k(-x_N)

進一步的可以寫成:

L=h_k(y_1x_1)cdot h_k(y_2x_2)cdot …cdot h_k(y_Nx_N)=prod_{n=1}^Nh(y_nx_n)

損失函數

對上述的似然函數取負數,再取log,可以得到最終的負對數似然損失函數:

MLE = frac{1}{N}sum_{n=1}^N-ln	heta(y_nw^Tx_n)=frac{1}{N}sum_{n=1}^Nln(1+e^{-y_nw^Tx_n})

求導

sigmoid function

我們通常會選擇sigmoid function當做 h

函數特性

	heta(s)=frac{e^s}{1+e^s}=frac{1}{1+e^{-s}}

  • 	heta(負無窮) =0;
  • 	heta(0)=frac{1}{2}
  • 	heta(正無窮)=1
  • 連續、單調
  • 	heta(-s)=1-	heta(s)

參考

[1]. 機器學習-損失函數

[2]. 林軒田 「機器學習基石」


推薦閱讀:

《機器智能的未來》系列三:Brendan Frey--當深度學習遇上基因生物學 | 將門推薦
一起來學西瓜書!(緒論)
機器學習入門札記(一)用Naive Bayes識別手寫數字
[貝葉斯六]之樸素貝葉斯分類器設計

TAG:機器學習 |