均方偏差是迴歸任務中最經常使用的性能度量指標。所以,其損失函數爲:函數
\[ J(a,b)=\frac{1}{2m}\sum_{i=1}^{m}(y^{'(i)}-y^{(i)})^2=\frac{1}{2m}\sum_{i=1}^{m}(a+bx^{(i)}-y^{(i)})^2 \]性能
其中,\(y'\)爲預測值,\(y\)爲實際值。學習
\(J(a,b)\)中,\(x^{(i)}\)和\(y^{(i)}\)是常量參數(爲\(m\)個樣本各自的\(x\)和\(y\)值),而\(a\)和\(b\)是自變量。咱們要作的,就是找到最好的\(a\)和\(b\),使得\(J(a,b)\)取值最小。spa
通用線性迴歸模型:利用線性函數對一個或多個自變量(\(x\)或\((x_1,x_2,\cdots,x_k)\))和因變量\(y\)之間的關係進行擬合的模型。code
其函數形式爲:
\[ f(x_1,x_2,\cdots,x_k)=a+b_1x_1+b_2x_2+\cdots + b_kx_k \]
\(b\)直觀表達了各屬性在預測中的重要性。所以,線性模型有很好的可解釋性(comprehensibility)。資源
對離散屬性,若屬性值間存在序關係,可經過連續化將其轉化爲連續值。例如,二值屬性「高」、「矮」可轉化爲\(\{1.0,\ 0.0\}\)。三值屬性「高」、「中」、「低」可轉化爲\(\{1.0,\ 0.5,\ 0.0\}\)。it
若屬性值間不存在序關係,假定有\(k\)個屬性值,則一般可轉化爲\(k\)維向量。如「西瓜」、「南瓜」、「黃瓜」可轉化爲\((0,0,1),\ (0,1,0),\ (1,0,0)\)。若將無序屬性連續化,則會不恰當地引入序關係。io
設\(x_1=x^2\),\(x_2=x\),有:function
\[ f(x_1,x_2)=a+b_1x^2+b_2x=a+b_1x_1+b_2x_2 \]
這時,就至關於擬合了一條二階多項式對應的曲線。
梯度降低法:從任意點開始,在該點對目標函數求導,沿着導數方向走一個給定步長,如此循環迭代,直至走到導數爲0的位置,則達到極小值。
函數\(J\)分別對自變量\(a\)和\(b\)取偏微分:
\[ \frac{\partial J(a,b)}{\partial a}=\frac{1}{m}\sum_{i=1}^{m}((a+bx^{(i)})-y^{(i)}) \]
\[ \frac{\partial J(a,b)}{\partial b}=\frac{1}{m}\sum_{i=1}^{m}x^{(i)}((a+bx^{(i)})-y^{(i)}) \]
上述僞代碼又可表示爲:
\[ repeat\ until\ convergence \{ \\ sumA = 0, \\ sumB = 0,\\ for i = 1 to m \{ \\ sumA = sumA + (a+bx^{(i)}-y^{(i)}), \\ sumB = sumB + x^{(i)}(a+bx^{(i)}-y^{(i)}) \}\\ a = a - \alpha \frac{sumA}{m},\\ b = b - \alpha \frac{sumB}{m} \} \]
用\(\theta_0\)來替代\(a\),用\(\theta_1\)到\(\theta_n\)來代替\(b_1\)到\(b_n\),則線性迴歸模型變爲:
\[ f(1,x_1,x_2,\cdots,x_n)=\theta_0 + \theta_1x_1+\theta_2x_2+\cdots + \theta_nx_n \]
對應的目標函數爲:
\[ J(\theta_0,\theta_1,\cdots,\theta_n)=\frac{1}{2m}\sum_{i=1}^{m}(y'^{(i)}-y^{(i)})^2 \]
梯度降低的實現過程爲:
\[ repeat\ until\ convergence \{ \Theta = \Theta - \alpha \frac{\partial J(\theta)}{\partial \theta} \} \]
令\(B=(b;a)\),將數據集表示爲一個\(m\times (k+1)\)大小的矩陣\(X\),其中每一行對應一個示例。每行的前\(k\)個元素對應示例的屬性值,最後一個元素恆爲1。則有:
\[ J(B) = (Y-XB)^T(Y-XB) \]
對\(B\)求導,得:
\[ \frac{\partial J}{\partial B}=2X^T(XB-Y) \]
當\(X^TX\)爲滿秩矩陣時,令上式爲零,可得:
\[ B^*=(X^TX)^{-1}X^TY \]
而在現實中,\(X^TX\)常常不是滿秩的,此時可解出多個\(B\),都能使均方偏差最小化。選擇哪個解做爲輸出,將由學習算法的概括偏好決定,如引入正則化(regularization)項。
找一個單調可微函數將分類任務的真實標記\(y\)與線性迴歸模型的預測值聯繫起來。引入對數概率函數(logistic function)
\[h=\frac{1}{1+e^{-z}}\]
可獲得:\[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\)所限定,所以,
\[ P(y=1|x)=h(x); \\ P(y=0|x)=1-h(x) \]
根據二項分佈公式,可得:
\[ P(y|x)=h(x)^y(1-h(x))^{(1-y)} \]
假設訓練集有\(m\)個數據,那麼其聯合機率爲:
\[ L(\theta)=\prod_{i=1}^mP(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^m(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{(1-y^{(i)})} \]
求取\(\theta\)的值,就是讓\(L(\theta)\)達到最大。
求對數,獲得對數似然函數:
\[ l(\theta)=log(L(\theta))=\sum_{i=1}^m[y^{(i)}log(h_{\theta}(x^{(i)}))+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))] \]
求出讓\(l(\theta)\)最大值的\(\theta\)。
因爲,咱們須要的是目標函數具備最小值,所以,設定:
\[ J(\theta)=-l(\theta) \]
\(J(\theta)\)爲負對數似然函數,爲LR的目標函數。
把二分類問題分紅屢次來作。
假設一共有\(n\)個類別,就構造\(n\)個LR分類模型。第一個模型用來區分label_1
和non-label_1
;第二個模型用來區分label-2
和non-label_2
;第\(n\)個模型用來區分label_n
和non_label_n
。
使用時,每一個輸入數據都被這\(n\)個模型同時預測。最後,哪一個模型得出了Positive結果,且預測值最大,就是該數據最終的結果。