線性回歸
- 假設存在線性相關關系:\(y=a+bx\)
均方誤差是回歸任務中最常用的性能度量指標。因此,其損失函數為:
其中,\(y'\)為預測值,\(y\)為實際值。
\(J(a,b)\)中,\(x^{(i)}\)和\(y^{(i)}\)是常量參數(為\(m\)個樣本各自的\(x\)和\(y\)值),而\(a\)和\(b\)是自變量。我們要做的,就是找到最好的\(a\)和\(b\),使得\(J(a,b)\)取值最小。
通用線性回歸模型:利用線性函數對一個或多個自變量(\(x\)或\((x_1,x_2,\cdots,x_k)\))和因變量\(y\)之間的關系進行擬合的模型。
其函數形式為:
\(b\)直觀表達了各屬性在預測中的重要性。因此,線性模型有很好的可解釋性(comprehensibility)。
對離散屬性,若屬性值間存在序關系,可通過連續化將其轉化為連續值。例如,二值屬性“高”、“矮”可轉化為\(\{1.0,\ 0.0\}\)。三值屬性“高”、“中”、“低”可轉化為\(\{1.0,\ 0.5,\ 0.0\}\)。
若屬性值間不存在序關系,假定有\(k\)個屬性值,則通常可轉化為\(k\)維向量。如“西瓜”、“南瓜”、“黃瓜”可轉化為\((0,0,1),\ (0,1,0),\ (1,0,0)\)。若將無序屬性連續化,則會不恰當地引入序關系。
用線性回歸模型擬合非線性關系
設\(x_1=x^2\),\(x_2=x\),有:
這時,就相當於擬合了一條二階多項式對應的曲線。
梯度下降法
梯度下降法:從任意點開始,在該點對目標函數求導,沿着導數方向走一個給定步長,如此循環迭代,直至走到導數為0的位置,則達到極小值。
函數\(J\)分別對自變量\(a\)和\(b\)取偏微分:
- 任意給定\(a\)和\(b\)的初始值。
- 用梯度下降法求解\(a\)和\(b\),偽代碼如下:
當下降的高度小於某個給定的閾值時,則停止下降。
上述偽代碼又可表示為:
- 超參數\(\alpha\):是梯度下降算法中的步長參數,必須人來手工指定。
- 如果訓練程序是通過人工指定迭代次數來確定退出程序,則迭代次數也是一個超參數。
- 如果訓練程序以模型結果與真實結果的整體差值小於某一個閾值為退出條件,則這個閾值就是超參數。
用\(\theta_0\)來替代\(a\),用\(\theta_1\)到\(\theta_n\)來代替\(b_1\)到\(b_n\),則線性回歸模型變為:
對應的目標函數為:
梯度下降的實現過程為:
最小二乘法
令\(B=(b;a)\),將數據集表示為一個\(m\times (k+1)\)大小的矩陣\(X\),其中每一行對應一個示例。每行的前\(k\)個元素對應示例的屬性值,最后一個元素恆為1。則有:
對\(B\)求導,得:
當\(X^TX\)為滿秩矩陣時,令上式為零,可得:
而在現實中,\(X^TX\)經常不是滿秩的,此時可解出多個\(B\),都能使均方誤差最小化。選擇哪一個解作為輸出,將由學習算法的歸納偏好決定,如引入正則化(regularization)項。
線性回歸用於分類(logistic regression,LR)
找一個單調可微函數將分類任務的真實標記\(y\)與線性回歸模型的預測值聯系起來。引入對數幾率函數(logistic function)
可得到:$$h(x)=\frac{1}{1+e^{-w^Tx+b}}$$
- 可直接對分類可能性進行建模,無需事先假設數據分布,這樣就避免了假設分布不准確所帶來的問題。
- 可得到近似概率的預測。
一般而言,當\(y>0.5\)時,\(x\)被歸類為真或陽性;否則,當\(y \leq0.5\)時,\(x\)被歸類為假或陰性。
因此,LR典型的應用於二分類問題上。
該模型函數在\(y=0.5\)附近非常敏感,自變量取值稍有不同,因變量取值就會有很大差異,所有不用擔心出現大量因細微特征差異而被歸錯類的情況。
- 任何事情,上來先做個線性回歸,即使無法得出結論,也不會消耗太多資源。
- 非線性模型對於計算量的需求遠大於線性模型。
目標函數
求解LR目標函數的過程,就是對LR模型函數進行極大似然估計的過程。
\(h(x)\)實際上是\(x\)為陽性的分布概率,所以,才會在\(h(x)>0.5\)時將\(x\)歸於陽性。即\(h(x)=P(y=1)\)。反之,樣例是陰性的概率為:\(P(y=0)=1-h(x)\)。
它們由訓練數據\(x\)所限定,因此,
根據二項分布公式,可得:
假設訓練集有\(m\)個數據,那么其聯合概率為:
求取\(\theta\)的值,就是讓\(L(\theta)\)達到最大。
求對數,得到對數似然函數:
求出讓\(l(\theta)\)最大值的\(\theta\)。
由於,我們需要的是目標函數具有最小值,因此,設定:
\(J(\theta)\)為負對數似然函數,為LR的目標函數。
如何求解\(\theta\)
- 通過對\(J(\theta)\)求導獲得下降方向——\(J'(\theta)\);
- 根據預設的步長\(\alpha\),更新參數\(\theta:=\theta-\alpha J'(\theta)\);
- 重復以上兩步直到逼近最優值,滿足終止條件。
LR處理多分類問題
把二分類問題分成多次來做。
假設一共有\(n\)個類別,就構造\(n\)個LR分類模型。第一個模型用來區分label_1
和non-label_1
;第二個模型用來區分label-2
和non-label_2
;第\(n\)個模型用來區分label_n
和non_label_n
。
使用時,每個輸入數據都被這\(n\)個模型同時預測。最后,哪個模型得出了Positive結果,且預測值最大,就是該數據最終的結果。