目錄
-
- 寫在前面
- 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∑dwixi
線性回歸假設: 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)=N1n=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∥∥∥∥∥∥∥∥x1Tw−y1x2Tw−y2...xnTw−yn∥∥∥∥∥∥∥∥2N1∥∥∥∥∥∥∥∥⎣⎢⎢⎡−−−−x1Tx2T...xNT−−−−⎦⎥⎥⎤w−⎣⎢⎢⎡y1y2...yN⎦⎥⎥⎤∥∥∥∥∥∥∥∥2N1∥∥∥∥∥∥N×d+1
Xd+1×1
w−N×1
y∥∥∥∥∥∥N1∑n=1N(xnTw−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
XTXw−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^=wLINTxn=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) 也不同,線性分類隻要符号,線性回歸需要具體的值;它們計算誤差的方法也不同。
下面給出了兩種錯誤的比較:
可以發現無論在什麼情況下,線性分類的誤差都不大于線性回歸的誤差。而且線性回歸的方法同樣也可以求解線性分類的問題。