最近開始學習西瓜書《機器學習》,一本暢銷的機器學習書籍,同時將結合李航的《統計學習方法》和《機器學習實戰》這兩本書,致力於輸出更完善的內容,儘量的用容易理解的方式輸出。html
在學習過程當中,博主沒有根據目錄進行學習,所以在每篇文章開頭都註明了所述內容。文中內容爲根據博主的理解而進行梳理,若是有理解誤差的地方,一塊兒討論。git
本篇內容爲西瓜書第 3 章線性模型 3.1
,3.2
,3.3
節內容:算法
線性組合:
segmentfault
通常用向量形式寫爲:
機器學習
其中,表示給定的d
個屬性,線性模型試圖學得一個經過屬性的線性組合來進行預測的函數。是係數,它直觀表達了各屬性在預測中的重要性,所以線性模型有很好的可解釋性。當w
和b
學得以後,模型就得以肯定。svg
給定一個數據集:
函數
線性迴歸試圖學得一個線性模型以儘量準確地預測實值輸出標記。學習
一元線性迴歸的基本形式優化
先考慮只有一個屬性的狀況,即只包括一個自變量和一個因變量。線性迴歸試圖學得:
spa
使得:
對離散屬性,若屬性值間存在「序」關係,可經過連續化將其轉化爲連續值。如屬性「身高」的取值高、中、低可轉化爲{1.0, 0.5, 0.0}
;若屬性值間不存在序關係,假定有 k
個屬性值,一般轉化爲 k
維向量,如「瓜類」的取值「西瓜」、「南瓜」、「黃瓜」可轉化爲(0, 0, 1)
、(0, 1, 0)
、(1, 0, 0)
。
求解一元線性迴歸參數
接下來,就是肯定w
和b
了。
學習的任務就是要基於均方偏差最小化來對模型的參數w
和b
進行求解,咱們用均方偏差最小化來衡量f(x)
和y
之間的差異。
arg(argument of the maximum / minimum): 當f(x)
取最小值時,x
的取值。即便目標函數取最小值時的變量值。
以上,基於均方偏差最小化來進行模型求解的方法稱爲最小二乘法。
均方偏差的幾何意義對應着歐氏距離。所以,在線性迴歸中,最小二乘法就是試圖找到一條直線,使全部樣本到直線上的歐氏距離之和最小。即求解w
和b
使得下列式子最小化:
這個過程稱爲線性迴歸模型的最小二乘「參數估計」。
求解過程以下,將分別對w
和b
求導:
令上式分別爲 0,便可獲得w
和b
最優解的解析解:
其中,爲的均值。
多元線性迴歸基本形式
如今,咱們考慮多個屬性的情形,即開頭給出的數據集D
,樣本有d
個屬性描述。此時線性迴歸試圖學得:
使得:
多元線性迴歸的損失函數
咱們仍用均方偏差最小化來衡量f(x)
和y
之間的差異,損失函數形式以下:
將截距b
合併到w
,使得新的權重向量新增長了一維。即
相應地,每一個樣本也增長了一維。即
此時,
再把標記也寫成向量形式:
則損失函數可改寫爲:
最小二乘法求多元線性迴歸的參數
咱們要求解多元線性迴歸模型,就是要求解使均方偏差最小化時所對應的參數,相似於
有
求得對應模型的解,即便得均方偏差函數最小化時的權重向量。
同上,咱們能夠用最小二乘法對模型的參數進行估計,具體作法是:損失函數對須要求解的參數進行求導,而且令其導數爲 0,求得相應的參數。
損失函數對參數求導最後獲得:
令上式爲 0 可得:
其中,需知足條件爲滿秩矩陣或正定矩陣。
令,最終學得的多元線性迴歸模型爲:
廣義線性模型
將線性迴歸模型簡寫爲:
在線性迴歸中,所對應的輸出標記是在線性尺度(直線)上變化的,咱們想把它映射到別的尺度上,來令模型預測值逼近y
的衍生物。如指數尺度上,就能夠將輸出標記的對數做爲線性模型逼近的目標,這裏是在用去逼近y
。即
稱爲對數線性迴歸。
上式在形式上還是線性迴歸,但實質上已是在求取輸入空間到輸出空間的非線性函數映射。示意圖以下:
更通常地,考慮單調可微函數g(·)
,令
這樣獲得的模型稱爲廣義線性模型。其中,函數g(·)
稱爲聯繫函數。
顯然,對數線性迴歸是廣義線性模型在g(·)=ln(·)
時的特例。
上面咱們介紹的是使用線性模型進行迴歸學習,接下來要介紹的是作分類任務。如何進行這一分類任務呢?對於廣義線性模型來講,找一個單調可微函數將分類任務的真實標記y
與線性迴歸模型的預測值聯繫起來便可。
對數概率函數
咱們考慮二分類任務。
線性迴歸模型產生的預測值是實值:
二分類任務的輸出標記爲:
咱們須要將實值z
轉換爲 0/1 值
。可經過單位階躍函數轉換:
即若預測值z
大於 0 就判爲正例,小於 0 判爲反例,預測值爲臨界值 0 則可任意判別。以下圖所示:
能夠看出,單位階躍函數(紅色部分)不連續,故不知足函數g(·)
單調可微的條件,所以咱們但願找到能在必定程度上近似它的替代函數,這個函數就是對數概率函數 (logistic function),簡稱對率函數,它是一種 Sigmoid 函數。
對數概率函數:
Sigmoid 函數:
即形似 S 的函數,對率函數是 Sigmoid 函數最重要的表明。
對數概率迴歸模型
對率函數將z
值轉化爲一個接近 0 或 1 的y
值,而且在輸出值z=0
附近變化很陡。將它做爲代入廣義線性模型,獲得模型:
將上式變化爲如下形式:
若將y
視爲樣本x
做爲正例的可能性,則1-y
是其反例可能性,二者的比值
稱爲概率,反映了x
做爲正例的相對可能性,對其取對數獲得對數概率:
由以上推導可知,該模型其實是在用線性迴歸模型的預測結果去逼近真實標記的對數概率。稱它爲對數概率迴歸 (logistic regression 亦稱 logit regression),是一種分類學習方法。
logistic regression:
在周志華的《機器學習》裏譯爲 對數概率迴歸,在李航的《統計學習方法》裏譯爲 邏輯斯諦迴歸。本文中不區分兩種譯法,都是指 logistic regression,特此說明。
二項邏輯斯諦迴歸模型
在下式中
咱們但願肯定式中的w
和b
。若將y
視爲後驗機率估計p(y=1 | x)
,則式
可重寫爲
顯然有
上式即爲二項邏輯斯諦迴歸模型的條件機率分佈。邏輯斯諦迴歸比較兩個條件機率值的大小,將實例x
分到機率值較大的那一類。
由以上二式可得:
這就是說,在邏輯斯諦迴歸模型中,輸出y=1
的對數概率是輸入x
的線性函數,或者說,輸出y=1
的對數概率是由輸入x
的線性函數表示的模型,即邏輯斯諦迴歸模型。
換個角度看,是經過邏輯斯諦迴歸模型將線性函數轉換爲了機率,也就是說線性函數的值越接近正無窮,機率值就越接近 1;線性函數的值越接近負無窮,機率值就越接近 0。
極大似然法估計參數
下面經過極大似然法來估計w
和b
。
首先作一個符號說明,令:
給定數據集:
對率迴歸模型最大化「對數似然」:
這個式子的意思是,對於每個樣原本說,找到參數使其屬於真實標記的機率最大。 即令每一個樣本屬於其真實標記的機率越大越好。
上式中的似然項可重寫爲:
代回式中獲得對數似然函數,化解爲:
獲得最大化目標函數,等價於最小化下式:
這是關於的高階可到連續凸函數,這樣問題就變成了以對數似然函數爲目標函數的最優化問題。經典的數值優化算法如梯度降低法和牛頓法等均可求得最優解。
以牛頓法爲例,其第t+1
輪迭代解的更新公式爲
其一二階導數分別爲:
假設的極大似然估計值是,則學到的邏輯斯諦迴歸模型爲
參考連接:
線性模型(1) —— 多元線性迴歸
西瓜書《機器學習》閱讀筆記6——Chapter3_公式(3.27)的推導過程
邏輯斯蒂迴歸(Logistic Regression)
不足之處,歡迎指正。