【機器學習】7:邏輯迴歸原理(Logistic Regression,LR)

前言:

邏輯迴歸在工業上運用廣泛,本文只着重講解邏輯迴歸的推導過程,具體的實例還需讀者自己去尋找;

-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

一、邏輯迴歸與線性迴歸:

邏輯迴歸是一種廣義線性迴歸(generalized linear model),因此它與多重線性迴歸有一些異同點:

  • 相同點:它們的模型形式基本上相同,都具有wx+bw’x+b,其中wwbb是待求參數,ww是係數矩陣,bb是偏置項;
  • 不同點:多重線性迴歸是直接將wx+bw’x+b的結果作爲因變量yy,即y=wx+by=w’x+b; 而邏輯迴歸添加了一箇中間函數L(x)L(x),將wx+bw’x+b通過L(x)L(x)映射成一個隱狀態pp,即p=L(wx+b)p=L(w’x+b),然後再根據pp1p1-p的大小決定因變量yy的值;

如果這個中間函數L(x)L(x)Logistic型函數(Logistic型函數/曲線即爲常見的S形函數),則這個迴歸分析就是邏輯迴歸(Logistic Regression,LR);而如果這個中間函數L(x)L(x)是多項式函數,那麼這個迴歸分析就是多項式迴歸;

-----------------------------------------------------------------------------------------------------

1.1:Logistic型曲線的性質

Logistic型函數/曲線即爲常見的S形函數,例:S型函數形如下:
在這裏插入圖片描述
Logistic曲線性質:可將(-∞,+∞)的自變量xx壓縮到[0, 1]的範圍;再結合既定閾值,Logistic函數就可以將連續變化的xx值,映射轉化爲非零即一的因變量的值——這也是由迴歸到分類的過程;

-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

二、Logistic型函數的一個特例——Sigmod函數:

Logistic曲線類中,Sigmod函數是具有代表性的一個函數,首先看一下它的表達式:
在這裏插入圖片描述
爲什麼說Sigmod函數是個特例?Sigmod函數的特殊性有以下兩點:

  1. 壓縮性:Sigmod函數能將(-∞,+∞)的自變量zz壓縮到[0, 1]的範圍;
  2. 導數特殊性:Sigmod函數求導過程如下,可以發現——Sigmod函數的導數=它自身*(1-它自身)

因爲在求解係數矩陣ww、偏置項bb時少不了對原等式進行求導,而Sigmod函數的導數與自身構成關係,這在求解的過程中可以減少運算量。所以上面的壓縮性是所有Logistic曲線都具有的性質,而導數特殊性是Sigmod函數被選中的主要因素;
在這裏插入圖片描述
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

三、邏輯迴歸原理:(重點)

邏輯迴歸是在線性迴歸的基礎上發展而來的。線性迴歸是直接將wx+bw’x+b的結果作爲因變量yy,即y=wx+by=w’x+b
而邏輯迴歸是在線性迴歸裏添加了一箇中間函數L(x)L(x),將wx+bw’x+b先通過L(x)L(x)映射成一個隱狀態pp,即p=L(wx+b)p=L(w’x+b),然後再根據pp1p1-p的大小決定最後因變量yy的值;

更一般的函數形式如下,自變量xxzz的關係是z=θxz=θ'xxx是訓練數據,可以是低維數組也可以是高維向量;θθ是矩陣形式的待定係數)。zz再經過中間函數g(z)g(z)的作用,映射成爲hθ(x)h_θ(x)=g(θx)g(θ'x),這裏hθ(x)h_θ(x)相當於因變量yy,再將g(θx)g(θ'x)換成Sigmod函數就變成下圖的第二行等式;
在這裏插入圖片描述
爲求解矩陣形式的待定係數θθ,我們沿用線性迴歸的最小二乘法——均方誤差求極值的方法求取損失的最優解,也就是用預測值和真實值的差值的平方和來估計參數θθ的優劣,這時就遇到了問題:

3.1、類比線性迴歸求解係數時遇到的新問題

在線性迴歸中,均方誤差求極值的方法得到的損失函數cost大多是如下右圖的凸函數(不是直接的凸函數,也可以經過變換轉化成凸函數);而在邏輯迴歸中也用這種方法得到的損失函數曲線形如左下圖,這是一個非凸函數,具有多個局部極小值點,在難以求得全局最小值的情況下,表現並不好。
在這裏插入圖片描述
那有什麼方法,能將這個非凸函數的損失函數轉化成凸函數呢?
-----------------------------------------------------------------------------------------------------

3.2、重新定義損失函數

於是大神們就開始研究了——有沒有那種經過Sigmod函數映射後,它的損失函數還是凸函數的函數呢?
大牛們當然是能找到這樣的函數的,如下:(y是標籤,二分類y\in{0,1})
在這裏插入圖片描述
解釋y = 1的情況,也就是上左圖:(y = 0同理)
在這裏插入圖片描述
從損失函數、hθ(x)h_θ(x)函數與xx的變化規律說明:上面這個分段函數滿足我們對新損失函數的要求——自變量xx經過了Sigmod函數映射後得到的損失函數確實是個凸函數;

但新問題也同時出現了——這個新的損失函數由於是個分段函數,在計算的過程中是很複雜的,那有沒有什麼辦法可以將這個分段函數合成一個函數呢?

-----------------------------------------------------------------------------------------------------

3.3、解決分段函數問題——極大似然估計

我們採用極大似然估計的方法,將這個分段函數合成一個函數;
-----------------------------------------------------------------------------------------------------
這裏博主只能粗略的對極大似然估計進行講解,如果你想要很清楚的看懂下面的理論,建議深入學習
極大似然估計只是一種粗略的數學期望,通過已出現或已觀測的結果對總體期望進行估計的一種方法,表達式爲L(θ)=p(yiX;θ)L(θ)=p(y_i|X;θ)

假設:某一事件只有兩個可能發生的結果:y=0,y=1y=0,y=1

  • y=1y=1的概率爲:p(y=1X;θ)p(y=1|X;θ)
  • y=0y=0的概率爲:p(y=0X;θ)p(y=0|X;θ),也等於1p(y=1X;θ)1-p(y=1|X;θ)

則用極大似然估計,總體期望L(θ)=p(yiX;θ)=p(y=1X;θ)p(y=0X;θ)=p(y=1X;θ)(1p(y=1X;θ))L(θ)=p(y_i|X;θ)=p(y=1|X;θ)*p(y=0|X;θ)=p(y=1|X;θ)*(1-p(y=1|X;θ))

結合上面的分段函數,概率pp是滿足Sigmod函數變化的,即:
在這裏插入圖片描述
則將概率pp換成hθ(x)h_θ(x),極大似然函數就變成如下:
在這裏插入圖片描述
更一般的形式即爲:
在這裏插入圖片描述
兩邊再取導數,連乘變成連加就成如下,這個等式在下面就會用到:
在這裏插入圖片描述
-----------------------------------------------------------------------------------------------------
通過極大似然估計的方法,將上面的分段函數轉化成爲了一個函數,也就是下面的目標函數:
在這裏插入圖片描述
-----------------------------------------------------------------------------------------------------

3.4、確定θθ的更新公式

我們的終極目標就是求上面這個目標函數的極值點,使用梯度下降法,θθ的更新依據公式如下,αα是學習率
在這裏插入圖片描述
所以需要對θ進行求導:在這裏插入圖片描述
根據上式,確切的θθ更新公式即爲:
在這裏插入圖片描述
因爲式中αα是既定的學習率,所以1/m1/m可以省略,所以最終的θθ更新公式爲:
在這裏插入圖片描述
其中

  • αα是學習率;
  • hθ(X)h_θ(X)是在當前參數θθ下得到的預測值;
  • yy是真實值;
  • xjx_j是第jj個參與訓練的數據,xjx_j\inXX

-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

說明:

邏輯迴歸詳細的給出了參數學習的方向,在深度學習中這個思想運用廣泛,所以理解其中的算法思路很重要;

-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

補充知識:

Sigmod函數的由來——事件的優勢比(oddsodds),那什麼是事件的優勢比?

  • 事件成功的機率pp與事件失敗的機率1p1-p的比值即爲事件的優勢比:odds=p/(1p)odds = p/(1-p)

兩邊取對數:ln(odds)=ln(p/(1p))ln(odds)=ln(p/(1-p)),求取pppp的表達式就是Sigmod函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章