機器學習基石筆記10——機器可以怎樣學習(2)


轉載請注明出處:http://www.cnblogs.com/ymingjingr/p/4271742.html

目錄

機器學習基石筆記1——在何時可以使用機器學習(1)

機器學習基石筆記2——在何時可以使用機器學習(2)

機器學習基石筆記3——在何時可以使用機器學習(3)(修改版)

機器學習基石筆記4——在何時可以使用機器學習(4)

機器學習基石筆記5——為什么機器可以學習(1)

機器學習基石筆記6——為什么機器可以學習(2)

機器學習基石筆記7——為什么機器可以學習(3)

機器學習基石筆記8——為什么機器可以學習(4)

機器學習基石筆記9——機器可以怎樣學習(1)

機器學習基石筆記10——機器可以怎樣學習(2)

機器學習基石筆記11——機器可以怎樣學習(3)

機器學習基石筆記12——機器可以怎樣學習(4)

機器學習基石筆記13——機器可以怎樣學得更好(1)

機器學習基石筆記14——機器可以怎樣學得更好(2)

機器學習基石筆記15——機器可以怎樣學得更好(3)

機器學習基石筆記16——機器可以怎樣學得更好(4)

 

 

十、Logistic Regression

羅傑斯特回歸(最常見到的翻譯:Logistic回歸)。

10.1 Logistic Regression Problem

Logistic回歸問題。

使用二元分類分析心臟病復發問題,其輸出空間只含有兩項{+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)

 

面對如公式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)

 

10.2 Logistic Regression Error

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)。

 

10.3 Gradient of Logistic Regression 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)。

 

10.4 Gradient Descent

梯度下降。

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進行更新,

直到或者迭代次數足夠多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM