1. 程式人生 > >從極大似然的角度理解 邏輯迴歸

從極大似然的角度理解 邏輯迴歸

什麼是極大似然估計

最大似然估計就是通過已知結果去反推最大概率導致該結果的引數。

  • 極大似然估計是概率論在統計學中的應用。它提供了一種給定觀察資料來評估模型引數的方法,即:“模型已定,引數未知”。通過若干次試驗,觀察其結果,利用試驗結果得到某個引數值能夠使樣本出現的概率為最大,則稱為極大似然估計。
  • 舉個栗子,已知你面前站著一個非洲兄弟,你判斷他是黑面板,而不是黃面板,因為非洲人是黑面板的概率最高。這就是一種最大似然估計的思想。這裡面,非洲人,就是已知的結果;黑面板,就是要推導的引數;而你根據黑面板的人中非洲人出現的概率最大去反推面前這個非洲人應該是黑面板,就是最大似然估計。
  • 可是它跟機器學習有什麼關係?因為,邏輯迴歸是一種監督式學習,是有標籤y_train的,按上面的意思來說,就是有已知結果的,那麼我們就可以從這個已知結果入手,去推導能最大概率導致該結果的引數 θ \theta ,只要我們得出了這個優秀的 θ
    \theta
    ,那我們的模型自然可以很準確的預測未知的資料了。 P ( X Θ )
    = L ( Θ X ) P(X|\Theta ) = L(\Theta |X)

什麼是邏輯迴歸Logistic Regression

為什麼是sigmoid

  • 邏輯迴歸雖然名字中有迴歸,但其實區別於線性迴歸,是一種分類演算法。當我們想要通過連續的x得到離散的y值的時候,一種方法是使用階躍函式,但階躍函式並不連續,會影響到微分的計算。所以我們用一個數學特性更優秀的函式,sigmoid函式來處理分類問題。
  • 主要的原理是線上性迴歸z的基礎上加上了一層sigmoid函式 g ( z ) = 1 1 + e z g(z)= \frac{1}{1+e^{-z}} ( z = θ T X z=\theta ^{T} X ),將負無窮到正無窮的y值對映到從0到1的區間,從而表示一個事情發生的概率,當 g ( z ) g(z) >0.5時,我們就認為這是預測結果為正向,反之為反向。

在這裡插入圖片描述

如何定義損失函式

為什麼不用最小二乘法

  • 損失函式是機器學習中繞不開的一個概念,何為損失函式呢,放我們把所有y的預測值與真實值之間的偏離程度,伴隨著引數 θ \theta 變化,畫出來一條曲線,這條曲線所對應的數學公式就是損失函式。損失函式的最小值所對應的 θ \theta ,就是我們想求的那個最優秀的 θ \theta 。所以搞清楚我們的模型原理,很大程度上就是搞清楚我們的損失函式。
  • 線上性迴歸中,我們採取了一種計算方式叫做最小二乘法,但是這個方法並不適用於邏輯迴歸。sigmoid的加入讓我們的損失函式變成一種非凸函式,中間有非常多的區域性最小值,簡單來說,就是不能像坐滑梯一樣順利的滑到全域性最低點,而是會中途掉進某個坑裡。
  • J ( θ ) = 1 2 ( g ( z ) ( i ) y ( i ) ) 2 J(\theta ) = \sum \frac{1}{2}(g(z)^{(i)}- y^{(i)})^{2}
    1,2

試試極大似然呢

  • 既然最小二乘法行不通,那我們嘗試一下回到開頭提到的極大似然估計,看看能不能從這個角度解決我們當前的問題。 提醒:前方高能,開始推公式啦!!
  • 首先,在邏輯迴歸中從0-1的 g ( z ) g(z) 代表了我們的預測值,這個值越趨近於1,則是正向樣本的預測確信度就越高。所以我們就把 g ( z ) g(z) 視為正類的後驗概率,自然 1 g ( z ) 1-g(z) 就是負類的後驗概率。 P ( y = 1 x ; θ ) = g ( z ) = g ( θ T x ) = 1 1 + e θ T x P\left ( y=1|x;\theta \right ) = g(z) = g(\theta ^{T}x) = \frac{1}{1+e^{-\theta ^{T}x}} P ( y = 0 x ; θ ) = 1 g ( z ) = 1 g ( θ T x ) = 1 1 1 + e θ T x P\left ( y=0|x;\theta \right ) = 1 - g(z) = 1 - g(\theta ^{T}x) = 1 - \frac{1}{1+e^{-\theta ^{T}x}}
  • 因為y值非0即1,所以我們用指數的方式將這兩個公式合併成一個公式 P ( y x ; θ ) = g ( z ) y ( 1 g ( z ) ) 1 y P\left ( y|x;\theta \right ) = g(z)^{y}\cdot(1-g(z))^{1-y}
  • 由此,我們就可以寫出似然函式啦 L ( θ ) = i = 1 n P ( y ( i ) x ( i ) ; θ ) = i = 1 n g ( z ( i ) ) y ( i ) ( 1 g ( z ( i ) ) ) 1 y ( i ) L(\theta ) = \prod _{i=1}^{n}P(y^{(i)}|x^{(i)};\theta ) = \prod _{i=1}^{n}g(z^{(i)})^{y^{(i)}}\cdot(1-g(z^{(i)}))^{1-y^{(i)}}
  • 為了簡化運算,我們對等式兩邊取對數 l ( θ ) = l n L ( θ ) = l n i = 1 n P ( y ( i ) x ( i ) ; θ ) = i = 1 n y ( i ) l n ( g ( z ( i ) ) ) + ( 1 y ( i ) ) ( 1 g ( z ( i ) ) ) l(\theta ) = lnL(\theta )=ln\prod _{i=1}^{n}P(y^{(i)}|x^{(i)};\theta ) = \sum _{i=1}^{n}y^{(i)}ln(g(z^{(i)}))+(1-y^{(i)})(1-g(z^{(i)}))