【機器學習】邏輯迴歸過程推導

EulerAndGauss發表於2019-02-15

目錄: 
一、LR的基本原理。 
二、LR的具體過程,包括:選取預測函式,求解Cost函式和J(θ),梯度下降法求J(θ)的最小值。 
三、對《機器學習實戰》中給出的實現程式碼進行了分析,對閱讀該書LR部分遇到的疑惑進行了解釋。比如:一般都是用梯度下降法求損失函式的最小值,為何這裡用梯度上升法呢?書中說用梯度上升法,為何程式碼實現時沒見到求梯度的程式碼呢?

一、LR的基本原理 
Logistic Regression和Linear Regression的原理是相似的,按照我自己的理解,可以簡單的描述為: 
(1)找一個合適的預測函式,一般表示為h函式,該函式就是我們需要找的分類函式,它用來預測輸入資料的判斷結果。這個過程非常關鍵,需要對資料有一定的瞭解或分析,知道或者猜測預測函式的“大概”形式,比如是線性函式還是非線性函式。 
(2)構造一個Cost函式(損失函式),該函式表示預測的輸出(h)與訓練資料類別(y)之間的偏差,可以是二者之間的差(h-y)或者是其他的形式。綜合考慮所有訓練資料的“損失”,將Cost求和或者求平均,記為J(θ)函式,表示所有訓練資料預測值與實際類別的偏差。 
(3)顯然,J(θ)函式的值越小表示預測函式越準確(即h函式越準確),所以這一步需要做的是找到J(θ)函式的最小值。找函式的最小值有不同的方法,Logistic Regression實現時用的是梯度下降法(Gradient Descent)。

二、LR的具體過程

(1)構造預測函式 
Logistic Regression雖然名字裡帶“迴歸”,但它實際上是一種分類方法,用於兩分類問題(即輸出只有兩種)。首先,需要先找到一個預測函式(h),顯然,該函式的輸出必須是兩個值(分別代表兩個類別),所以利用了Logistic函式(或稱為Sigmoid函式),函式形式為: 
這裡寫圖片描述

對應的函式影象是一個取值在0和1之間的S型曲線。

這裡寫圖片描述

接下來需要確定資料劃分的邊界型別,對於圖2和圖3中的兩種資料分佈,顯然圖2需要一個線性的邊界,而圖3需要一個非線性的邊界。接下來我們只討論線性邊界的情況。 
這裡寫圖片描述

圖二

這裡寫圖片描述

圖三

對於線性邊界的情況,邊界形式如下:

這裡寫圖片描述

構造預測函式為:

這裡寫圖片描述

hθ(x)函式的值有特殊的含義,它表示結果取1的概率,因此對於輸入x分類結果為類別1和類別0的概率分別為: 
這裡寫圖片描述

(2)構造cost函式 
Andrew Ng在課程中直接給出了Cost函式及J(θ)函式如式(5)和(6),但是並沒有給出具體的解釋,只是說明了這個函式來衡量h函式預測的好壞是合理的。 
這裡寫圖片描述

這裡寫圖片描述

實際上這裡的Cost函式和J(θ)函式是基於最大似然估計推導得到的。下面詳細說明推導的過程。(4)式綜合起來可以寫成: 
這裡寫圖片描述

取似然函式為: 
這裡寫圖片描述

對數似然函式為: 
這裡寫圖片描述

最大似然估計就是要求得使l(θ)取最大值時的θ,其實這裡可以使用梯度上升法求解,求得的θ就是要求的最佳引數。但是,在Andrew Ng的課程中將J(θ)取為(6)式,即: 
這裡寫圖片描述

因為乘了一個負的係數-1/m,所以J(θ)取最小值時的θ為要求的最佳引數。

(3)梯度下降法求J(θ)的最小值

求J(θ)的最小值可以使用梯度下降法,根據梯度下降法可得θ的更新過程: 
這裡寫圖片描述

式中為α學習步長,下面來求偏導: 
這裡寫圖片描述

上式求解過程中用到如下的公式: 
這裡寫圖片描述

因此,(11)式的更新過程可以寫成: 
這裡寫圖片描述

因為式中α本來為一常量,所以1/m一般將省略,所以最終的θ更新過程為: 
這裡寫圖片描述

另外,求得l(θ)取最大值時的θ也是一樣的,用梯度上升法求(9)式的最大值,可得: 
這裡寫圖片描述

觀察上式發現跟(14)是一樣的,所以,採用梯度上升發和梯度下降法是完全一樣的,這也是《機器學習實戰》中採用梯度上升法的原因。

本文轉自 Logistic迴歸總結 作者:洞庭之子 沒有找到原文連結。

相關文章