天天看點

【機器學習基石】線性回歸(九)

目錄

    • 寫在前面
    • 1. 線性回歸問題
    • 2. 求解最小的 E i n ( w ) E_{in}(w) Ein​(w) 對應的 w w w
    • 3. 泛化問題
    • 4. 與線性分類的對比

寫在前面

本節主要介紹了線性回歸原理以及它的可行性,最後與前面學過的線性分類進行了對比分析。

1. 線性回歸問題

∙ \bullet ∙

引入

:我們假設現在有些使用者已經申請到了信用卡,但是銀行決定給他們發放多少錢。此時傳回的結果就是一個實數區間。

∙ \bullet ∙

實作

▹ \triangleright ▹ 現在我們有使用者的資訊,包括以下内容:年齡、年收入、工作年齡、目前負債。

▹ \triangleright ▹ 我們還是像(二)中感覺機模型提到的一樣,為每一個次元配置設定一個權重,然後求得總和,最後在減去一個偏差(門檻值)。為了優化,把這個偏差放到了第0次元。(具體實作看機器學習基石二中第一塊内容)

是以當有d個次元時,自變量 x = ( x 0 , x 1 , . . . x d ) x=(x_{0},x_{1},...x_{d}) x=(x0​,x1​,...xd​),傳回值 y ≈ ∑ i = 0 d w i x i y≈\sum_{i=0}^{d}w_{i}x_{i} y≈i=0∑d​wi​xi​

線性回歸假設: h ( x ) = w T x h(x)=w^{T}x h(x)=wTx

(它很像感覺機模型,但是感覺機模型最終求的是符号)

▹ \triangleright ▹ 當 x x x 隻有一個次元或者兩個次元時,做出來的直線如下:

【機器學習基石】線性回歸(九)

對于一維、二維的 x x x 來說,線性回歸最終要找到的就是誤差最小的直線以及平面。每個點到直線或者平面的豎直距離就是該點的誤差。

▹ \triangleright ▹ 計算誤差的方法:最小二乘法。我們求解誤差的平方和對應的權重,對于單點來說就是:

e r r ( y ^ , y ) = ( y ^ − y ) 2 err(\hat{y},y )=(\hat{y}-y)^{2} err(y^​,y)=(y^​−y)2

對于樣本資料來說,計算方法為(選擇對應誤差最小的一組權重值):

E i n ( w ) = 1 N ∑ n = 1 N ( w T x n − y n ) 2 E_{in}(w)=\frac{1}{N} \sum_{n=1}^{N}(w^{T}x_{n}-y_{n})^{2} Ein​(w)=N1​n=1∑N​(wTxn​−yn​)2

對于整體資料來說,計算方法為(整體資料對應的誤差結果):

E o u t ( w ) = ε ( x , y ) ∼ P ( w T x − y ) 2 E_{out}(w)= \underset{(x,y)\sim P}{\varepsilon} (w^{T}x-y)^{2} Eout​(w)=(x,y)∼Pε​(wTx−y)2

我們接下來需要實作的就是如何找到較小的 E i n ( w ) E_{in}(w) Ein​(w)。

2. 求解最小的 E i n ( w ) E_{in}(w) Ein​(w) 對應的 w w w

∙ \bullet ∙上面我們已經得到了 E i n ( w ) E_{in}(w) Ein​(w) 的計算方法,接着我們對其進行轉換:

E i n ( w ) = 1 N ∑ n = 1 N ( w T x n − y n ) 2 = 1 N ∑ n = 1 N ( x n T w − y n ) 2 = 1 N ∥ x 1 T w − y 1 x 2 T w − y 2 . . . x n T w − y n ∥ 2 = 1 N ∥ [ − x 1 T − − x 2 T − − . . . − − x N T − ] w − [ y 1 y 2 . . . y N ] ∥ 2 = 1 N ∥ X ⏟ N × d + 1 w ⏟ d + 1 × 1 − y ⏟ N × 1 ∥ \begin{matrix} E_{in}(w)&= &\frac{1}{N} \sum_{n=1}^{N}(w^{T}x_{n}-y_{n})^{2}= &\frac{1}{N} \sum_{n=1}^{N}(x_{n}^{T}w-y_{n})^{2} \\ & = & \frac{1}{N}\begin{Vmatrix} x_{1}^{T}w-y_{1} \\ x_{2}^{T}w-y_{2}\\ ...\\ x_{n}^{T}w-y_{n} \end{Vmatrix}^{2} & \\ & = &\frac{1}{N}\begin{Vmatrix} \begin{bmatrix} -& x_{1}^{T} & -\\ -& x_{2}^{T} & - \\ -& ... & -\\ -& x_{N}^{T} & - \end{bmatrix}w-\begin{bmatrix} y_{1}\\ y_{2} \\ ...\\ y_{N} \end{bmatrix} \end{Vmatrix}^{2} & \\ & = & \frac{1}{N}\left \| \underset{N×d+1}{\underbrace{X} } \underset{d+1×1}{\underbrace{w} } -\underset{N×1}{\underbrace{y} } \right \| & \end{matrix} Ein​(w)​====​N1​∑n=1N​(wTxn​−yn​)2=N1​∥∥∥∥∥∥∥∥​x1T​w−y1​x2T​w−y2​...xnT​w−yn​​∥∥∥∥∥∥∥∥​2N1​∥∥∥∥∥∥∥∥​⎣⎢⎢⎡​−−−−​x1T​x2T​...xNT​​−−−−​⎦⎥⎥⎤​w−⎣⎢⎢⎡​y1​y2​...yN​​⎦⎥⎥⎤​​∥∥∥∥∥∥∥∥​2N1​∥∥∥∥∥∥​N×d+1

X​​d+1×1

w​​−N×1

y​​∥∥∥∥∥∥​​N1​∑n=1N​(xnT​w−yn​)2​

我們将其展開為矩陣形式,最後得到的表達式中有矩陣 X X X,它是樣本資料矩陣,它有 N N N 個樣本資料,每個樣本資料有 d d d 維,再加上第0維,一共 d + 1 d+1 d+1 維;向量 w w w 為權重向量,本來是 d d d 維,再加上第0維,一共 d + 1 d+1 d+1 維;向量 y y y 為線性回歸直線上對應的值,為 N N N 行1列。

∙ \bullet ∙ 那麼先在要求的就是: m i n w   E i n ( w ) = 1 N ∥ X w − y ∥ 2 \underset{w}{min} \ E_{in}(w)=\frac{1}{N} \left \| Xw-y\right \|^{2} wmin​ Ein​(w)=N1​∥Xw−y∥2

其中矩陣 X X X 和向量 y y y 都是已知的,那麼我們現在做出 w w w 與 E i n ( w ) E_{in}(w) Ein​(w) 的坐标圖:

【機器學習基石】線性回歸(九)

我們要尋找 w w w 的值,使得 E i n E_{in} Ein​ 的函數值最小,表現在梯度為0上。

【機器學習基石】線性回歸(九)

∙ \bullet ∙ 将上式展開可得:

E i n ( w ) = 1 N ( w T X T X ⏟ A w − 2 w T X T y ⏟ b + y T y ⏟ c ) E_{in}(w)=\frac{1}{N}(w^{T} \underset{A}{\underbrace{X^{T}X}}w-2w^{T} \underset{b}{\underbrace{X^{T}y}}+\underset{c}{\underbrace{y^{T}y}}) Ein​(w)=N1​(wTA

XTX​​w−2wTb

XTy​​+c

yTy​​)

它的梯度為:

∇ E i n ( w ) = 2 N ( X T X w − X T y ) \nabla E_{in}(w)=\frac{2}{N}(X^{T}Xw-X^{T}y) ∇Ein​(w)=N2​(XTXw−XTy)

令偏導等于0,可以得到解為(最終權重向量):

w L I N = ( X T X ) − 1 X T y w_{LIN}=(X^{T}X)^{-1}X^{T}y wLIN​=(XTX)−1XTy

我們把 ( X T X ) − 1 X T (X^{T}X)^{-1}X^{T} (XTX)−1XT 叫做僞逆矩陣(pseudo-inverse),記作 X † X^{\dagger} X†,是以有:

w L I N = X † y w_{LIN}=X^{\dagger}y wLIN​=X†y

當 N N N 遠大于 d + 1 d+1 d+1時,可以求得僞逆矩陣。當我們得到 w L I N w_{LIN} wLIN​ 以後,那麼線性回歸直線就為:

y ^ = w L I N T x n = X X † y \hat{y}=w_{LIN}^{T}x_{n}=XX^{\dagger}y y^​=wLINT​xn​=XX†y

3. 泛化問題

∙ \bullet ∙ 通過上面推出來的公式我們可以直接得到 w L I N w_{LIN} wLIN​,感覺就沒有機器自己學習進步的過程,那麼是不是就以為着此類方法不屬于機器學習呢?

其實在實作的過程中也對 E i n E_{in} Ein​ 和 E o u t E_{out} Eout​ 進行了最小化的求解,從結果來看,确實屬于機器學習。

∙ \bullet ∙ 下面通過一種方法來證明線性回歸可以得到較好的 E i n E_{in} Ein​ 和 E o u t E_{out} Eout​。

E i n ( w L I N ) = 1 N ∥ y − y ^ ∥ 2 = 1 N ∥ y − X X † y ∥ 2 = 1 N ∥ ( I − X X † ) y ∥ E_{in}(w_{LIN}) = \frac{1}{N} \left \| y-\hat{y} \right \|^{2} = \frac{1}{N}\left \| y-XX^{\dagger}y \right \|^{2} =\frac{1}{N} \left \| (I-XX^{\dagger})y \right \| Ein​(wLIN​)=N1​∥y−y^​∥2=N1​∥∥​y−XX†y∥∥​2=N1​∥∥​(I−XX†)y∥∥​

我們把 X X † XX^{\dagger} XX† 叫做帽子矩陣(hat matrix) H H H,下面具體來具體 H H H 的具體含義(在N維執行個體中):

【機器學習基石】線性回歸(九)

▹ \triangleright ▹ y ^ = X w L I N \hat{y}=Xw_{LIN} y^​=XwLIN​ 位于 d + 1 d+1 d+1 維平面的一條直線。

▹ \triangleright ▹ 那麼 y − y ^ y-\hat{y} y−y^​ 就是将y向量投影在 y ^ \hat{y} y^​ 平面時結果最小。

▹ \triangleright ▹ 機器學習就是想找到最接近y的直線 y ^ \hat{y} y^​。記錄 t r a c e ( I − H ) = N − ( d + 1 ) trace(I-H)=N-(d+1) trace(I−H)=N−(d+1), t r a c e ( I − H ) trace(I-H) trace(I−H) 為 I − H I-H I−H 的迹。

當存在 n o i s e noise noise 時,發生改變:

【機器學習基石】線性回歸(九)

E i n ( ) w L I N = 1 N ∥ ( I − H ) n o i s e ∥ 2 = 1 N ( N − ( d + 1 ) ) ∥ n o i s e ∥ 2 E_{in}()w_{LIN}=\frac{1}{N} \left \| (I-H)noise \right \|^{2}=\frac{1}{N}(N-(d+1))\left \| noise \right \|^{2} Ein​()wLIN​=N1​∥(I−H)noise∥2=N1​(N−(d+1))∥noise∥2

最後可以分别求得 E i n ˉ \bar{E_{in}} Ein​ˉ​ 和 E o u t ˉ \bar{E_{out}} Eout​ˉ​:

E i n ˉ = n o i s e   l e v e l ⋅ ( 1 − d + 1 N ) \bar{E_{in}}=noise \ level \cdot (1-\frac{d+1}{N}) Ein​ˉ​=noise level⋅(1−Nd+1​) E o u t ˉ = n o i s e   l e v e l ⋅ ( 1 + d + 1 N ) \bar{E_{out}}=noise \ level \cdot (1+\frac{d+1}{N}) Eout​ˉ​=noise level⋅(1+Nd+1​)

将它們畫出來如下:

【機器學習基石】線性回歸(九)

其中 σ 2 \sigma ^{2} σ2 就是 n o i s e   l e v e l noise \ level noise level,當 N N N 趨于無窮大時,我們可以看到 E i n ˉ \bar{E_{in}} Ein​ˉ​ 和 E o u t ˉ \bar{E_{out}} Eout​ˉ​ 逐漸接近 n o i s e   l e v e l noise \ level noise level,也證明了這種方式時可以進行機器學習的。

4. 與線性分類的對比

可以發現它們的結果 y y y 定義域不同,線性分類隻能為-1或+1,線性回歸為整個實數域; h ( x ) h(x) h(x) 也不同,線性分類隻要符号,線性回歸需要具體的值;它們計算誤差的方法也不同。

【機器學習基石】線性回歸(九)

下面給出了兩種錯誤的比較:

【機器學習基石】線性回歸(九)

可以發現無論在什麼情況下,線性分類的誤差都不大于線性回歸的誤差。而且線性回歸的方法同樣也可以求解線性分類的問題。

繼續閱讀