前言:
邏輯迴歸在工業上運用廣泛,本文只着重講解邏輯迴歸的推導過程,具體的實例還需讀者自己去尋找;
–-----------------------------------------------------------------------------—------------------------
–-----------------------------------------------------------------------------—------------------------
一、邏輯迴歸與線性迴歸:
邏輯迴歸是一種廣義線性迴歸(generalized linear model),因此它與多重線性迴歸有一些異同點:
- 相同點:它們的模型形式基本上相同,都具有,其中和是待求參數,是係數矩陣,是偏置項;
- 不同點:多重線性迴歸是直接將的結果作爲因變量,即; 而邏輯迴歸添加了一箇中間函數,將通過映射成一個隱狀態,即,然後再根據與的大小決定因變量的值;
如果這個中間函數是Logistic
型函數(Logistic
型函數/曲線即爲常見的S形函數),則這個迴歸分析就是邏輯迴歸(Logistic Regression,LR);而如果這個中間函數是多項式函數,那麼這個迴歸分析就是多項式迴歸;
–-----------------------------------------------------------------------------—------------------------
1.1:Logistic
型曲線的性質
Logistic
型函數/曲線即爲常見的S形函數,例:S型函數形如下:
Logistic
曲線性質:可將(-∞,+∞)的自變量壓縮到[0, 1]的範圍;再結合既定閾值,Logistic
函數就可以將連續變化的值,映射轉化爲非零即一的因變量的值——這也是由迴歸到分類的過程;
–-----------------------------------------------------------------------------—------------------------
–-----------------------------------------------------------------------------—------------------------
–-----------------------------------------------------------------------------—------------------------
二、Logistic
型函數的一個特例——Sigmod
函數:
在Logistic
曲線類中,Sigmod
函數是具有代表性的一個函數,首先看一下它的表達式:
爲什麼說Sigmod
函數是個特例?Sigmod函數的特殊性有以下兩點:
- 壓縮性:
Sigmod
函數能將(-∞,+∞)的自變量壓縮到[0, 1]的範圍; - 導數特殊性:
Sigmod
函數求導過程如下,可以發現——Sigmod
函數的導數=它自身*(1-它自身)
因爲在求解係數矩陣、偏置項時少不了對原等式進行求導,而Sigmod
函數的導數與自身構成關係,這在求解的過程中可以減少運算量。所以上面的壓縮性是所有Logistic
曲線都具有的性質,而導數特殊性是Sigmod
函數被選中的主要因素;
–-----------------------------------------------------------------------------—------------------------
–-----------------------------------------------------------------------------—------------------------
–-----------------------------------------------------------------------------—------------------------
三、邏輯迴歸原理:(重點)
邏輯迴歸是在線性迴歸的基礎上發展而來的。線性迴歸是直接將的結果作爲因變量,即;
而邏輯迴歸是在線性迴歸裏添加了一箇中間函數,將先通過映射成一個隱狀態,即,然後再根據與的大小決定最後因變量的值;
更一般的函數形式如下,自變量與的關係是(是訓練數據,可以是低維數組也可以是高維向量;是矩陣形式的待定係數)。再經過中間函數的作用,映射成爲=,這裏相當於因變量,再將換成Sigmod
函數就變成下圖的第二行等式;
爲求解矩陣形式的待定係數,我們沿用線性迴歸的最小二乘法——均方誤差求極值的方法求取損失的最優解,也就是用預測值和真實值的差值的平方和來估計參數的優劣,這時就遇到了問題:
3.1、類比線性迴歸求解係數時遇到的新問題
在線性迴歸中,均方誤差求極值的方法得到的損失函數cost大多是如下右圖的凸函數(不是直接的凸函數,也可以經過變換轉化成凸函數);而在邏輯迴歸中也用這種方法得到的損失函數曲線形如左下圖,這是一個非凸函數,具有多個局部極小值點,在難以求得全局最小值的情況下,表現並不好。
那有什麼方法,能將這個非凸函數的損失函數轉化成凸函數呢?
–-----------------------------------------------------------------------------—------------------------
3.2、重新定義損失函數
於是大神們就開始研究了——有沒有那種經過Sigmod
函數映射後,它的損失函數還是凸函數的函數呢?
大牛們當然是能找到這樣的函數的,如下:(y是標籤,二分類y{0,1})
解釋y = 1的情況,也就是上左圖:(y = 0同理)
從損失函數、函數與的變化規律說明:上面這個分段函數滿足我們對新損失函數的要求——自變量經過了Sigmod
函數映射後得到的損失函數確實是個凸函數;
但新問題也同時出現了——這個新的損失函數由於是個分段函數,在計算的過程中是很複雜的,那有沒有什麼辦法可以將這個分段函數合成一個函數呢?
–-----------------------------------------------------------------------------—------------------------
3.3、解決分段函數問題——極大似然估計
我們採用極大似然估計的方法,將這個分段函數合成一個函數;
–-----------------------------------------------------------------------------—------------------------
這裏博主只能粗略的對極大似然估計進行講解,如果你想要很清楚的看懂下面的理論,建議深入學習
極大似然估計只是一種粗略的數學期望,通過已出現或已觀測的結果對總體期望進行估計的一種方法,表達式爲
假設:某一事件只有兩個可能發生的結果:
- 的概率爲:
- 的概率爲:,也等於
則用極大似然估計,總體期望
結合上面的分段函數,概率是滿足Sigmod函數變化的,即:
則將概率換成,極大似然函數就變成如下:
更一般的形式即爲:
兩邊再取導數,連乘變成連加就成如下,這個等式在下面就會用到:
–-----------------------------------------------------------------------------—------------------------
通過極大似然估計的方法,將上面的分段函數轉化成爲了一個函數,也就是下面的目標函數:
–-----------------------------------------------------------------------------—------------------------
3.4、確定的更新公式
我們的終極目標就是求上面這個目標函數的極值點,使用梯度下降法,的更新依據公式如下,是學習率
所以需要對θ進行求導:
根據上式,確切的更新公式即爲:
因爲式中是既定的學習率,所以可以省略,所以最終的更新公式爲:
其中
- 是學習率;
- 是在當前參數下得到的預測值;
- 是真實值;
- 是第個參與訓練的數據,
–-----------------------------------------------------------------------------—------------------------
–-----------------------------------------------------------------------------—------------------------
–-----------------------------------------------------------------------------—------------------------
說明:
邏輯迴歸詳細的給出了參數學習的方向,在深度學習中這個思想運用廣泛,所以理解其中的算法思路很重要;
–-----------------------------------------------------------------------------—------------------------
–-----------------------------------------------------------------------------—------------------------
–-----------------------------------------------------------------------------—------------------------
補充知識:
Sigmod函數的由來——事件的優勢比(),那什麼是事件的優勢比?
- 事件成功的機率與事件失敗的機率的比值即爲事件的優勢比:
兩邊取對數:,求取,的表達式就是Sigmod
函數