Logistic回歸Cost函數和J(θ)的推導----Andrew Ng【machine learning】公開課


最近翻Peter Harrington的《機器學習實戰》,看到Logistic回歸那一章有點小的疑問。

作者在簡單介紹Logistic回歸的原理后,立即給出了梯度上升算法的code:從算法到代碼跳躍的幅度有點大,作者本人也說了,這里略去了一個簡單的數學推導。

那么其實這個過程在Andrew Ng的機器學習公開課里也有講到。現在回憶起來,大二看Andrew的視頻的時候心里是有這么一個疙瘩(Andrew也是跳過了一步推導)

這里就來講一下作者略去了怎樣的數學推導,以及,怎么推導。

在此之前,先回顧一下Logistic回歸。

Logistic回歸

  基本原理:《實戰》這本書上是這么講的,“回歸”就是用一條直線對一堆數據點進行擬合,這個擬合過程就稱為“回歸”。利用Logistic回歸進行分類的主要思想是,根據現有數據對分類邊界線建立回歸公式,以此進行分類。

  以Andrew公開課的例子說明:

 

 

  圓(藍色)叉(紅色)是兩類數據點,我們需要找到一個決策邊界將其划分開,如圖所示的邊界形式顯然是線性的形式,如圖中所描述的:

  我們記為:

  這里,括號里的就是決策邊界的表達式,我們找一個函數g,將表達式結果作為輸入,生成一個預測函數hθ(x).這里我們使用Sigmoid函數

  從而:

 

  然而有時候,決策邊界用一維直線無法區分,也就是這里的θ參數個數是變數,比如下面這堆數據

  這是一種非線性的決策邊界。

  可以看到這里,將x1,x2參數全部平方處理,找得一個圓形邊界。

  

公式推導

  講到這里,我們可以把邊界形式做如下推廣:

  

  邊界的最后一項是向量相乘的形式,即:

 

  將其輸入到sigmoid函數去判斷其所屬類別,就有了我們的預測函數,記為:

  根據sigmoid圖像,這個預測函數輸出值大於0.5,那么代表x(數據點)所屬類別為1,否則是0(對於二分類問題)。

  但是別忘了我們的最初的目標,這里的θ向量未知。我們的目的是:

    確定θ的參數值,使得我們這個決策邊界能更好地划分數據集。

  這個過程,在Andrew的課程里,被略過了,他直接給出了cost函數和J(θ)函數,然后通過梯度下降求得最優的θ參數。其中,J(θ)函數是這樣的:

  利用上面的公式以及梯度下降算法,我們就能求出θ的值。也就能求出最能擬合數據的決策邊界。

  接下來就要講講這個公式是怎么被推導出來的。

  我們先來看看現在我們已經知道什么:

      1、一堆數據點+它們的類別(2類)

      2、它們的概率分布hθ(x):雖然目前θ仍然是未知參數

  我們的目標是求出未知參數,使得每個樣本數據點屬於它當前所標記的類別的概率最大。

  於是就引出了Fisher的極大似然估計

  這里就不講極大似然估計的具體概念和公式推導了,不過還是用個例子來形象的說明極大似然估計的作用吧:

        一個獵人和一個學生一起走在山路上,突然從山間跑出一只兔子,啪一聲槍響,兔子倒地而亡。問:誰最有可能殺死了兔子?

  答案顯而易見:獵人。那么這里,獵人就是那個參數θ。極大似然估計的目標就是預測出待估參數,使得樣本事件發生的概率最大。

  對於上述例子,用極大似然估計的思想來說明其中的幾個重要信息:

樣本事件 兔子被槍殺
待估參數 射死了兔子的人(記為θ:θ屬於{獵人,學生})

 

  極大似然估計就是找出最有可能殺死兔子的人。

  同樣,對於本實驗的一堆數據點,我們對應着看:

 

樣本事件 每個樣本數據點屬於他自己的label  
待估參數 決策邊界參數向量θ

        P.S.雖然樣本里的每條數據都表明了數據點本身的類別,但是使用極大似然估計的時候,你並不知道樣本本身所屬的類別,樣本數據自帶的類別標簽是你估計好壞的一個評價標准。換句話說,數據點全體就是一個樣本事件

  接下來就是估計所需要的數學推導了。

  對於一個連續性的分布,我們需要它的概率密度函數,在本例中,其實就是那個sigmoid函數(取值范圍0-1剛好表示的是發生概率),我們重新寫在這里:

  把這兩個式子寫在一起:

 

  可以驗證一下,當y=1或者y=0的時候,上式分別滿足上上式。對每個樣本數據點,滿足上式,所以對於群體,我們接下來繼續。

  根據極大似然估計的求解步驟,取似然函數:

    

  要求L(θ)的最大值對應的θ參數。其中m是樣本數據點的個數

  連乘不容易求解,同時又容易造成下溢出。這里由於x和ln(x)單調性相同,兩邊取對數

  這個就是Andrew給的那個J(θ)了,唯一的區別就是,Andrew在前面乘了一個負系數,使得這里求最大值變成了最小值,從而可以使用梯度下降算法。

  不過其實用本式也可以完成任務,只是用的算法就變成梯度上升了,其實沒有區別。

結語

  這里安利一下《機器學習實戰》這本書,真的蠻不錯的,實踐性很強,既入門了ML,又鍛煉了動手能力。

 

  

 

 

    

 

  

    

 

 

 

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM