轉載請註明出處:http://www.cnblogs.com/ymingjingr/p/4271742.htmlhtml
羅傑斯特迴歸(最多見到的翻譯:Logistic迴歸)。算法
Logistic迴歸問題。app
使用二元分類分析心臟病復發問題,其輸出空間只含有兩項{+1,-1},分別表示復發和不發覆發。在含有噪音的狀況下,目標函數f可使用目標分佈P來表示,如公式10-1所示,此情形的機器學習流程圖如圖10-1所示。機器學習
(公式10-1)函數
圖10-1 心臟病復發二元分類流程圖學習
可是一般狀況下,不會肯定的告知患者,心臟病必定會復發或者必定不會,而是以機率的方式告知患者復發的可能性,如圖10-2所示,一位患者心臟病復發的可能性爲80%。優化
圖10-2 以機率的形式表示復發可能性翻譯
此種狀況被稱爲軟二元分類(soft binary classification),目標函數f的表達如公式10-2所示,其輸出以機率的形式,所以在0~1之間。設計
(公式10-2)htm
面對如公式10-2的目標函數,理想的數據集D(輸入加輸出空間)應如圖10-3所示。
圖10-3 理想的數據集D
全部的輸出都以機率的形式存在,如 ,用心臟病復發的例子來講明,通常病人只有心臟病發與沒復發兩種狀況,而不可能在病歷中記錄他曾經的病發機率,現實中的訓練數據應如圖10-4所示。
圖10-4 實際訓練數據
能夠將實際訓練數據看作含有噪音的理想訓練數據。
問題是如何使用這些實際的訓練數據以解決軟二元分類的問題,即假設函數如何設計。
首先回憶在以前的幾章內容中提到的兩種假設函數(二元分類和線性迴歸)中都具備的是哪部分?
答案是求輸入 各屬性的加權總分數(score),(還記得第二章中用成績分數來講明加權求和的意義嗎?)可使用公式10-3表示。
(公式10-3)
如何把該得分從在整個實數範圍內轉換成爲一個0~1之間的值呢?此處就引出了本章的主題,logistic函數(logistic function)用表示。分數s越大風險越高,分數s越小風險越低。假設函數h如公式10-4所示,函數曲線的示意圖如圖10-5所示。
(公式10-4)
圖10-5 logistic函數的示意圖
具體的logistic函數的數學表達式如公式10-5所示。
(公式10-5)
代入幾個特殊的數值檢驗是否能將整個實數集上的得分映射到0~1之間,代入負無窮,得;代入0,得;代入正無窮,得。logistic函數完美的將整個實數集上的值映射到了0~1區間上。
觀察函數的圖形,該函數是一個平滑(到處可微分),單調(monotonic)的S形(sigmoid)函數,所以又被稱爲sigmoid函數。
經過logistic函數的數學表達式,重寫軟二元分類的假設函數表達,如公式10-6所示。
(公式10-6)
Logistic迴歸錯誤。
將logisitic迴歸與以前學習的二元分類和線性迴歸作一對比,如圖10-7所示。
圖10-7 二元分類、線性迴歸與logistic迴歸的對比
其中分數s是在每一個假設函數中都會出現的,前兩個學習模型的錯誤衡量分別對應着0/1錯誤和平方錯誤,而logistic迴歸所使用的err函數應如何表示則是本節要介紹的內容。
從logistic迴歸的目標函數能夠推導出公式10-7成立。
(公式10-7)
其中花括號上半部分不難理解,是將目標函數等式左右對調的結果,而下半部分的推導也很簡單,由於+1與-1的概率相加須要等於1。
假設存在一個數據集 ,則經過目標函數產生此種數據集樣本的機率能夠用公式10-8表示。
(公式 10-8)
就是各輸入樣本產生對應輸出標記機率的連乘。而從公式10-7可知公式10-8能夠寫成公式10-9的形式。
(公式10-9)
可是函數f是未知的,已知的只有假設函數h,可不能夠將假設函數h取代公式10-9中的f呢?若是這樣作意味着什麼?意味着假設函數h產生一樣數據集樣本D的可能性多大,在數學上又翻譯成似然(likelihood),替代以後的公式如公式10-10所示。
(公式10-10)
假設假設函數h和未知函數f很接近(即err很小),那麼h產生數據樣本D的可能性或叫似然(likelihood)和f產生一樣數據D的可能性(probability)也很接近。函數f既然產生了數據樣本D,那麼能夠認爲函數f產生該數據樣本D的可能性很大。所以能夠推斷出最好的假設函數g,應該是似然最大的假設函數h,用公式10-11表示。
(公式10-11)
在當假設函數h使用公式10-6的logistic函數,能夠獲得如公式10-12的特殊性質。
(公式10-12)
所以公式10-10能夠寫成公式10-13。
此處注意,計算最大的時,全部的對大小沒有影響,由於全部的假設函數都會乘以一樣的,即h的似然只與函數h對每一個樣本的連乘有關,如公式10-14。
(公式10-14)
其中表示標記,將標記代替正負號放進假設函數中使得整個式子更加簡潔。尋找的是似然最大的假設函數h,所以能夠將公式10-14代入尋找最大似然的公式中,並經過一連串的轉換獲得公式10-15。
(假設函數h與加權向量w一一對應)
(連乘公式不容易求解最大問題,所以求其對數,此處以天然對數e爲底)
(以前都是在求最小問題,所以將最大問題加上一個負號轉成了最小問題,爲了與之前的錯誤衡量相似,多成了一個。)
(將代入表達式得出上述結果)
(公式10-15)
公式10-15中,這個錯誤函數稱做交叉熵錯誤(cross-entropy error)。
Logistic迴歸錯誤的梯度。
推導出logistic迴歸的 ,下一步的工做是尋找使得最小的權值向量w。
的表達如公式10-16所示。
(公式10-16)
仔細的觀察該公式,能夠得出該函數爲連續(continuous)可微(differentiable)的凸函數,所以其最小值在梯度爲零時取得,即 。那如何求解呢?即爲對權值向量w的各個份量求偏微分,對這種複雜公式求解偏微分可使用微分中的連鎖律。將公式10-16中複雜的表示方式用臨時符號表示,爲了強調符號的臨時性,不使用字母表示,而是使用 和 ,具體如公式10-17。
(公式10-17)
對權值向量w的單個份量求偏微分過程如公式10-18所示。
(公式10-18)
其中 函數爲10.1節中介紹的logistic函數。而求梯度的公式能夠寫成公式10-19所示。
(公式10-19)
求出的梯度後,因爲爲凸函數,令爲零求出的權值向量w,即便函數取得最小的w。
觀察,發現該函數是一個 函數做爲權值,關於的加權求和函數。
假設一種特殊狀況,函數的全部權值爲零,即全部都爲零,能夠得出趨於負無窮,即,也意味着全部的都與對應的同號,即線性可分。
排除這種特殊狀況,當加權求和爲零時,求該問題的解不能使用相似求解線性迴歸時使用的閉式解的求解方式,此最小值又該如何計算?
還記得最先使用的PLA的求解方式嗎?迭代求解,能夠將PLA的求解步驟合併成如公式10-20的形式。
(公式10-20)
時,向量不變;時,加上。將使用一些符號將該公式更通常化的表示,如公式10-21所示。
(公式10-21)
其中多乘以一個1,用 表示,表示更新的步長,PLA中更新的部分用v來表明,表示更新的方向。而這類算法被稱爲迭代優化方法(iterative optimization approach)。
梯度降低。
Logistic迴歸求解最小也使用上節中提到的迭代優化方法,經過一步一步改變權值向量,尋找使得最小的變權值向量,迭代優化方法的更新公式如公式10-22所示。
(公式10-22)
針對logistic迴歸個問題,如何設計該公式中的參數和是本節主要解決的問題。
回憶PLA,其中參數 來自於修正錯誤,觀察logistic迴歸的,針對其特性,設計一種可以快速尋找最佳權值向量的方法。
如圖10-8爲logistic迴歸的關於權值向量w的示意圖爲一個平滑可微的凸函數,其中圖像谷底的點對應着最佳w,使得最小。如何選擇參數和可使得更新公式快速到達該點?
圖10-8 logistic迴歸的示意圖
爲了分工明確,設做爲單位向量僅表明方向,表明步長表示每次更新改變的大小。在固定的狀況下,如何選擇的方向保證更新速度最快?是按照最陡峭的方向更改。即在固定,的狀況下,最快的速度(有指導方向)找出使得最小的w,如公式10-23所示。
(公式10-23)
以上是非線性帶約束的公式,尋找最小w仍然很是困難,考慮將其轉換成一個近似的公式,經過尋找近似公式中最小w,達到尋找原公式最小w的目的,此處使用到泰勒展開(Taylor expansion),回憶一維空間下的泰勒公式,如公式10-24所示。
(公式10-24)
同理,在很小時,將公式10-23寫成多維泰勒展開的形式,如公式10-25所示。
(公式10-25)
其中至關於公式10-24中的,至關於。通俗點解釋,將原的曲線的形式看作一小段一小段的線段的形式,即的曲線能夠看作周圍一段很小的線段。
所以求解公式10-26最小狀況下的w,能夠認爲是近似的求解公式10-23最小情況下的w。
(公式10-26)
該公式中是已知值,而爲給定的大於零的值,所以求公式10-26最小的問題又可轉換爲求公式10-27最小的問題。
(公式10-27)
兩個向量最小的狀況爲其方向相反,即乘積爲負值,又因是單位向量,所以方向如公式10-28所示。
(公式10-27)
在很小的狀況下,將公式10-27代入公式10-22得公式10-28,具體的更新公式。
(公式10-27)
該更新公式表示權值向量w每次向着梯度的反方向移動一小步,按照此種方式更新能夠儘快速度找到使得最小的w。此種方式稱做梯度降低(gradient descent),簡寫爲GD,該方法是一種經常使用且簡單的方法。
講完了參數v的選擇,再回頭觀察事先給定的參數的取值對梯度降低的影響,如圖10-9所示。
圖10-9參數的大小對梯度降低的影響
如圖10-9最左,過小時降低速度很慢,所以尋找最優w的速度很慢;圖10-9中間,當太大時,降低不穩定,甚至可能出現越降低越高的狀況;合適的應爲隨着梯度的減少而減少,如圖最右所示,即參數是可變的,且與梯度大小成正比。
根據與梯度大小成正比的條件,能夠將從新給定,新的如公式10-28所示。
(公式10-28)
最終公式10-27可寫成公式10-29。
(公式10-29)
此時的被稱做固定的學習速率(fixed learning rate),公式10-29即固定學習速率下的梯度降低。
Logistic迴歸算法的步驟以下:
設置權值向量w初始值爲 ,設迭代次數爲t, ;
計算梯度;
對權值向量w進行更新,;
直到或者迭代次數足夠多。