機器學習 線性模型

2022-08-20 09:21:11 字數 4375 閱讀 7977

這篇文章總結了 3 種線性模型:線性回歸對數線性回歸邏輯斯蒂回歸(logistic regression,lr,對數機率回歸)

假設資料集 \(d=\\),其中 \(x_i = (x_;x_;\dots;x_)\),\(y \in r\)。 也就是,資料集 \(d\) 共包含 m 個樣本,每個樣本含有 d 個屬性. 線性回歸的目標是找到引數 \(w = (w_1, w_2, \dots, w_m)\) 和 \(b\),使得

\]通常使用均方誤差(mean square error,mse)來衡量模型的**值 \(f(x_i)\) 和真實值 \(y_i\) 之間差異的大小:

\[\text = \sum_^m(f(x_i)-y_i)^2 = \sum_^m(y_i-wx_i+b)

\]我們希望 mse 越小越好,所以我們需要找到一組引數 \(w\) 和 \(b\) 來最小化 mst。\(w\) 和 \(b\) 學到之後,模型就得以確定。

求解 \(w,b\) 使得均方誤差 \(e_=\sum_^m(y_i-wx_i+b)\) 最小的過程被稱為線性回歸模型的最小二乘引數估計(parameter estimation)。為了方便計算,我們將引數表示為向量的形式,令 \(\hat w = (w; b)\),將資料集 \(d\) 表示為乙個 \(m \times (d+1)\) 的矩陣,也就是 m 行 d+1 列,前 \(m \times d\) 列對應 m 個樣本,最後一列全為 1,為了和 b 進行計算,也就是

將標記也表示為向量的形式 \(y = (y_1;y_2;\dots;y_m)\),則均方誤差 \(e_\) 可以寫為:

\[e_ = (y-x \hat w)^t(y-x \hat w)

\]為了求 \(e_\) 的最小值,可以求 \(e_\) 對 \(\hat w\) 的導數:

\[\frac} = 2 x^t(x\hat w-y)

\]令上式為 0,如果 \((x^tx)\) 是滿秩矩陣,就可以求得解析解 \(\hat w^ = (x^tx)^x^ty\),其中,\((x^tx)^\) 是 \((x^tx)\) 的逆矩陣。則最終求解的模型為:

\[f(x_i) = w^*x_i+b^*

\]上面公式的具體的求解步驟可以參考這裡。

如果 \((x^tx)\) 不是滿秩矩陣,例如樣本的數量小於單個樣本的屬性數,則存在多個解析解,它們均能使均方誤差最小化。具體選擇哪個解析解,由演算法的偏好決定,常見的做法是引入正則化(regularization)項:

\[(y-x \hat w)^t(y-x \hat w) + \lambda||\hat w||_1

\]其中,\(\lambda>0\) 為正則化係數,調整正則化項與均方誤差的比例。

\[(y-x \hat w)^t(y-x \hat w) + \lambda||\hat w||_2^2

\]其中,\(\lambda>0\) 為正則化係數,調整正則化項與均方誤差的比例。

\[(y-x \hat w)^t(y-x \hat w) + \lambda \rho ||\hat w||_1 + \frac||\hat w||_2^2

\]其中,\(\lambda>0\) 為正則化係數,調整正則化項與均方誤差的比例;\(\rho \in [0,1]\) 用來控制 \(l_1\) 正則化和 \(l_2\) 正則化之間的比例。

\[y_i = g^(w^tx_i+b)

\]這樣得到的模型稱為廣義線性模型,其中函式 \(g(\cdot)\) 被稱為聯絡函式(link function)。對數回歸函式就是廣義線性模型在 \(g(\cdot)=ln(\cdot)\) 時的特例。

線性回歸是用來求回歸問題的,如果要求分類問題,例如二分類,\(y\in \\)。我們需要將線性回歸模型的輸出連續值 \(z = w^tx+b\) 轉化為離散的 0/1 值。

一種方法是使用單位階躍函式(unit-step function),如果 \(z>0\) 就判為正例,小於 0 就判為 反例,等於 0 可任意判別。如下圖中紅色線段表示的函式:

單位階躍函式有乙個缺點,就是它不連續,不能用作廣義線性模型中的 \(g(\cdot)\)。於是,我們希望找到找到在一定程度上能近似單位階躍函式的替代函式,並希望它單調可微。對數機率函式(logistic function)就是這樣的乙個常用的替代函式:

\[y = \frac}

\]對數機率函式的形狀就是上面圖 3.2 中的黑色曲線。對數機率函式是乙個sigmoid函式(s型函式),它將 \(z\) 轉化為乙個接近 0 或 1 的 y 值,並且在 z = 0 的附近變化很陡。將對數機率函式作為廣義線性模型中的 \(g^(\cdot)\),可以得到

\[y = \frac} = \frac}}

\]由上式可以得到

\[1-y = \frac}

\]從而,有

\[\frac = e^

\]兩邊取對數,有

\[\ln \frac = w^tx+b

\]若將 \(y\) 視為 \(x\) 作為正例的可能性,則 \(1-y\) 就是 \(x\) 作為反例的可能性,兩者的比值 \(\frac\) 稱為機率(odds),反映了 \(x\) 作為正例的相對可能性。對機率取對數則得到對數機率(log odds,亦稱logits)

\[\ln \frac

\]由此可以看到,我們實際上在尋找乙個模型 \(f(x_i)=w^tx_i+b\),使得 \(f(x_i)\) 逼近真實標記的對數機率,所以這種方法對應的模型就叫做對數機率回歸(logistic regression,logit regression),又稱邏輯斯蒂回歸。需要注意的是,雖然邏輯斯蒂回歸名稱中有「回歸」二字,但它實際上是一種分類模型。

令\[p(y=1|x) = \pi(x) = \frac} = \frac}} \\

p(y=0|x) = 1-\pi(x) = \frac}

\]我們可以通過** 極大似然法(maximum likelihood method)**來估計 \(w\) 和 \(b\)。在這裡,似然函式

\[\prod_^m [\pi(x_i)]^[1-\pi(x_i)]^

\]為了計算方便,我們對似然函式取對數,得到對數似然函式 \(l(w)\):

\[\begin

l(w) &= \sum_^m(y_i\log\pi(x_i)+(1-y_i)\log(1-\pi(x_i))) \\

&= \sum_^m(y_i\log\pi(x_i)+\log(1-\pi(x_i))-y_i\log(1-\pi(x_i))) \\

&= \sum_^m(y_i \log \frac+log(1-\pi(x_i))) \\

&= \sum_^m(y_i (w^tx_i+b)-log(1+e^)) \\

&= \sum_^m(y_i \beta^t \hat x_i - log(1+e^)) \\

\end

\]其中,\(\beta = (w;b),\hat x_i = (x_i; 1)\),則 \(\beta^t \hat x_i = w^tx_i + b\)。這樣,問題就變成了以對數似然函式為目標函式的最優化問題(最大化),可以通過梯度下降法或者擬牛頓法等求解。最大化 \(l(w)\) 也就是最小化 \(l(\beta) = \sum_^m(-y_i \beta^t \hat x_i + log(1+e^))\). \(l(\beta)\) 對 \(\beta\) 的導數如下:

\[\begin

\frac}} &= \sum_^m(-y_i \hat x_i + \frac}}) \\

&= -\sum_^m \hat x_i(y_i-\pi(\hat x_i))

\end

\]所以,引數 \(\beta\) 的更新方式為:

\[\begin

\beta &= \beta - \alpha \frac}} \\

&= \beta + \alpha(\sum_^m \hat x_i(y_i-\pi(\hat x_i)))

\end

\]其實,也可以直接使用梯度上公升來求 \(l(w)\) 的最大值,這樣引數的更新方式是一樣的。

1、周志華《機器學習》

2、李航《統計學習方法》

3、統計學習/chapters/1_linear.html

機器學習之線性模型

一 基本形式 定義 給定由d個屬性描述的示例x x1 x2 xd 其中xi是x在第i個屬性上的取值,線性模型試圖學得乙個通過屬性的線性組合來進行 的函式,即 f x w1x1 w2x2 wdxd b 一般用向量形式寫成 其中二 典型的線性模型簡介 1 線性回歸 給定資料集d 如果將上面的屬性關係更加...

機器學習筆記 線性模型

寫在前面的一些廢話 伴隨課程以及自習,學得既算系統也算零散。學校多統計,演算法講解幾近寥寥。自古以來,統計系的教授多半樂於指摘機器學習與人工智慧,但學科總又不得不與之掛鉤密切,且多隨其發展潮起潮落。內部糾紛,不足為外人道已。只有深受其紛雜概念困擾的學習者,感觸頗深。不隨時總結,建立知識庫,實在容易迷...

機器學習 03 線性模型

談及線性模型,其實我們很早就已經與它打過交道,還記得高中數學必修3課本中那個頑皮的 最小二乘法 嗎?這就是線性模型的經典演算法之一 根據給定的 x,y 點對,求出一條與這些點擬合效果最好的直線y ax b,之前我們利用下面的公式便可以計算出擬合直線的係數a,b 3.1中給出了具體的計算過程 從而對於...