當前位置:
首頁 > 最新 > 邏輯回歸演算法背後的數學

邏輯回歸演算法背後的數學

邏輯回歸演算法背後的數學

看完Andrew Ng老師的機器學習公開課後,對於邏輯回歸部分,打算寫篇學習筆記記錄總結一下,也和大家共同分享。

1

基本思能

邏輯回歸(Logistic Regression)和線性回歸(Linear Regression)的模型和原理是相似的(哈哈,給我的感覺就像是街霸遊戲里的Ryu和Ken),按照我的理解,演算法大致可以分為以下步驟:

(1)構造一個合適的預測函數,假設記為h函數。該函數就是我們需要找的分類函數,它用來預測輸入數據的判斷結果。這個過程非常關鍵,需要對數據有一定的了解或分析,知道或者猜測預測函數的「大概」形式(走勢),比如是線性函數還是非線性函數。(例如y=x,y=x2,y=x3…… 等形式的函數)

(2)構造一個損失函數(loss function)併合成一個代價函數(cost function)。損失函數是表示每一個樣本上,預測的輸出h與訓練數據類別(即真實值)y之間的偏差,可以是二者之間的差(h-y),也可以是(h-y)2(貌似這種常用一點,避免了可能出現負數的情況)或者是其他的形式。綜合考慮所有訓練數據的「損失」,將其求和或者求平均,就變成了代價函數,記為J(θ)函數(這裡的參數θ是指預測函數裡面的係數)

(3)尋找代價函數最小值並確定參數。顯然,我們希望J(θ)函數的值越小越好,因為這表示我們預測的和實際值越小了,預測函數的表現效果就越好,所以這一步需要做的是找到J(θ)函數的最小值。找函數的最小值有不同的方法,這裡要提到的是梯度下降法(Gradient Descent),當然也有其他優秀的演算法。

2

推導過程

1

構造預測函數

邏輯回歸是一種分類方法,用於兩分類問題(即輸出只有兩種,表示為0和1)。根據上面步驟,需要先找到一個預測函數hθ(x),在這裡,我們假設是線性邊界的情況,表示形式為:

因為邏輯回歸的輸出必須是兩個值,所以要利用Logistic函數(或稱為Sigmoid函數),把輸出控制在0到1之間,函數形式為:

它的函數圖像為:

結合這兩個函數,我們可以得到:

好了,到了這裡我們已經定義了一個預測函數,應當注意,hθ(x)的輸出值的含義是:它表示結果取1的概率。

2

構造損失函數和代價函數

按照直觀思想,或是參照線性回歸的代價函數,我們可以寫出以下的代價函數:

這個代價函數在線性回歸里表現的很好,但是用於邏輯回歸的話,會變成參數θ的非凸函數。也就是說,假如我們把用在線性回歸那一套用在邏輯回歸上的話,那麼可能會出現下面的情況:

即函數會出現多個局部最優解,這樣的函數就是非凸函數。顯然,如果我們使用梯度下降法求解的話,往往不能保證它能收斂到全局最小值(因為演算法終止條件是導數為0或接近0)。相應地,我們希望代價函數可以是一個凸函數,圖像是這樣的:

這樣一來,我們一旦使用梯度下降法的時候就可以保證能收斂到全局最優解了。之所以會出現非凸函數的問題,是因為在邏輯回歸里引入了Sigmoid函數,但它作用在上面的那個J(θ)後,就會出現多個局部最小值的情況。

寬客網路課堂——全場八折優惠即將結束

長按下面二維碼可以進入寬客網路課堂學習或試看:

為了解決這個問題,在極大似然法的基礎上,人們提出了運用在邏輯回歸的損失函數是:

整合成一個式子就是:

所以最後代價函數的形式是:

為了幫助理解這個cost函數,我們使用Python的matplotlib畫一下兩種情況的相關圖像。

y=1時:

y=0時:

由此我們可以看出,無論是y=0還是y=1的情況,當我們的預測值越接近真實值時,誤差會越來越小,當離真實值越遠時,誤差便越來越大,趨於無窮。結合圖像一起看,應該不難理解這個函數了。

3

求解代價函數最小值和參數

在這裡,我們用到的是梯度下降法。我們這裡只討論係數是一維的情況,主要是考慮到比較容易理解,也容易用圖像表達出來。其實,假如係數是多維的話,核心的思想也是一樣的,說白了就是求得導數(多維時就是偏導數)為0(或者設置一個閾值接近0)即可。

接下來就來具體討論一下。

首先看一下梯度下降法的模式,它的本尊長這樣:

其中θ是我們要求解的係數,α是學習步長。接下來看一下為什麼可以用這一條公式來求解最小值(假設此時代價函數已經是凸函數)。

上面說過,我們只討論最簡單的一種情況,即一維繫數。我們分兩種情況來看一下。

第一種情況,假設我們的θ初始值大於最優解,那麼我們可以得到這樣的圖像:

這張圖像很好地解釋了這個公式的可行性:如果此時的θ在最優解的右邊,我們對其進行求導,顯然此刻導數為正,那麼根據上面的公式,就會減小θ,使其向最優解的方向靠攏。

第二種情況,θ初始值小於最優解,那麼我們可以得到這樣的圖像:

此時的θ在最優解的左邊,我們對其進行求導,顯然此刻導數為負,那麼根據公式,就會增大θ,使其向最優解的方向靠攏。

當然,嚴格來講還有第三種,就是我們初始化參數的時候,可以剛剛好滿足了我們的要求,然而這個通常不大可能,運氣得多好啊,哈哈。。。

所以,這就是梯度下降法的核心思想(看到這裡有沒有感覺其實也不是很難),我們接下來把它運用到邏輯回歸的代價函數里,可以得到這樣一個式子:

這就是邏輯回歸中梯度下降更新係數θ的公式了。

寫到這裡已經快接近尾聲了,在梯度下降法中,還要一點點小問題,就是關於步長α的取值,需要注意的是,當α過大時,可能會不小心就錯過了最優解,因為步子邁得大了;α過小時,演算法在收斂上會變慢,因為每次只前進那麼一點點。所以這個貌似要看經驗,並且一般都會試一下好幾個不同的步長α來檢驗演算法,避免偶然性。

對於梯度下降而言,因為每次要涉及計算到全部的樣本,一旦你的樣本數多,擬合的參數多,並且步長設置的也小了一點,那麼演算法會計算很久。於是現在也有其他的演算法用於計算類似的問題,各位小夥伴有興趣也可以了解一下。

3

小結

這一篇介紹了邏輯回歸背後的數學原理,篇幅比較長,可能讀起來會比較久,因為大多是公式和原理,所以需要慢慢看,仔細理解。當然,裡面還是省略了一些更為仔細的推導部分,主要是導數(偏導數)推導方面的,但基本不會影響到理解這個演算法的數學原理。另外,可能有些地方寫得還不夠透徹,或者寫得還不夠好,又或者是有出現錯誤的地方,請大家能多多包涵,多多指教,共同學習,共同進步!

來源:數學中國

【網路課程】「億計劃」期貨實戰訓練營-第十一期

打破傳統

最強性價比

理論+實戰

打造期貨股票交易系統

為投資者打造全新學習交流體驗

2017年10月9日

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 大數據實驗室 的精彩文章:

千萬富豪家庭年均健康管理支出近17萬元 84%高度重視自身健康管理
一招檢驗10大深度學習框架哪家強!
你以為很了解的地球,竟然是這樣的……
用AI打離婚官司?這些程序猿的腦洞產品逆天了!
人大量化對沖高級研修班

TAG:大數據實驗室 |