week2_多變量線性迴歸

多變量線性迴歸(Linear Regression with Multiple Variables)

1.多特徵(Multiple Features)

對於一個要度量的對象,一般來說會有不同維度的多個特徵。比如之前的房屋價格預測例子中,除了房屋的面積大小,可能還有房屋的年限、房屋的層數等等其他特徵


多變量假設函數hh表示爲:hθh_{\theta}=θ0\theta_0+θ1\theta_1x1x_1+θ2\theta_2x2x_2+…+θn\theta_nxnx_n

這裏由於特徵不再只有一個,引入一些新的記號

nn:特徵的總數
x(i)x^{(i)}: 代表樣本矩陣中第 ii行,也就是第 ii個訓練實例。
xj(i)x^{(i)}_j代表樣本矩陣中第 ii行的第 jj列,也就是第 ii個訓練實例的第 jj個特徵。

其中參數向量的維度是nn+1,給特徵向量添加x0x_0,其維度也變成nn+1維,則假設函數可以用矩陣表達爲:

hθ(x)=[θ0θ1...θn][x0x1...xn]=θTx h_\theta(x)= \begin{bmatrix} \theta_0 & \theta_1 &...&\theta_n \end{bmatrix} \begin{bmatrix} x_0& \\ x_1&\\ ...&\\ x_n& \end{bmatrix} =\theta^Tx

θT\theta^T:θ\theta矩陣的轉置
ss:某個樣本的特徵向量。n+1維
x0x_0:假設x0(i)x^{(i)}_0=1

2.多變量梯度下降(Gradient Descent for Multiple Variable)

多變量代價函數類似與單變量代價函數,即

J(θ0,θ1,...,θn)J(\theta_0,\theta_1,...,\theta_n)= 12m\frac 1 {2m}i=1m(hθ(x(i))y(i))2\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2,其中hθ(x)=θTxh_\theta(x)=\theta^Tx

梯度下降對於最小化代價函數的通用性,則多變量梯度下降公式即
repeatuntilconvergence:{repeat until convergence:\{
θj:=θjαθ1(θ0,θ1,...,θn)\theta_j:=\theta_j-\alpha\frac{\partial }{\partial \theta_1}(\theta_0,\theta_1,...,\theta_n)
}\}
解出偏導得:
repeatuntilconvergence:{repeat until convergence:\{
θj:=θjα1m\theta_j:=\theta_j -\alpha \frac 1 mi=1m(hθ(x(i))y(i))xj(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_j^{(i)} forj:=0,1,2,...nfor \qquad j:=0,1,2,...n
}\}

可展開爲:
repeatuntilconvergence:{repeat until convergence:\{
θ0:=θ0α1m\theta_0:=\theta_0 -\alpha \frac 1 mi=1m(hθ(x(i))y(i))x0(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_0^{(i)}
θ1:=θ1α1m\theta_1:=\theta_1 -\alpha \frac 1 mi=1m(hθ(x(i))y(i))x1(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_1^{(i)}
θ2:=θ2α1m\theta_2:=\theta_2 -\alpha \frac 1 mi=1m(hθ(x(i))y(i))x2(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_2^{(i)}

θn:=θnα1m\theta_n:=\theta_n -\alpha \frac 1 mi=1m(hθ(x(i))y(i))xn(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_n^{(i)}
}\}

同單變量梯度下降一樣,計算時需要同時更新所有參數。

3.特徵值縮放(Gradient Descent in Practice I - Feature Scaling)

在應用梯度下降算法實踐時,由於各特徵值的取值範圍不同,可能會影響代價函數收斂速度
以房價預測問題爲例,這裏選取房屋面積大小和房間數量這兩個特徵。
下圖中,左圖是以原始數據繪製的代價函數輪廓圖,右圖爲採用特徵縮放(都除以最大值)後圖像。左圖中呈現的圖像較扁震盪較大,相對於使用特徵縮放方法的右圖,梯度下降算法需要更多次的迭代。
在這裏插入圖片描述
爲了加快梯度下降的收斂速度,採用特徵縮放的方式,使得特徵值的範圍儘量一致
方法主要有2種特徵縮放(feature scaling) and 均值歸一化(mean normalization)
特徵縮放:每個訓練實例的特徵值都除以該特徵值中最大的數;
均值歸一化
xi=xiaverage(x)maximum(x)minimum(x)x_i=\frac {x_i-average(x)} {maximum(x)-minimum(x)} xi(1,1)\qquad x_i \isin (-1,1)

另外注意,一旦採用特徵縮放,我們就需對所有的輸入採用特徵縮放,包括訓練集、測試集、預測輸入等。

4.學習速率(Gradient Descent in Practice II - Learning Rate)

通常,有兩種方法來確定函數是否收斂

  • 多次迭代收斂法
    無法確定需要多少次迭代
    較易繪製關於迭代次數的圖像
    根據圖像易預測所需的迭代次數
    在這裏插入圖片描述

  • 自動化測試收斂法(比較閾值)
    不易選取閾值
    代價函數近乎直線時無法確定收斂情況

因爲自動化測試收斂法需要預判代價函數的的參考值,但對於每個項目並不相同,選取參考值很困難。因此一般藉助圖形發現代價函數的趨勢,調整學習速率α\alpha,隨着曲線的下降,每次取更小的學習速率,逐漸逼近最小值。

對於學習速率α\alpha,一般上圖展現的爲適中情況下圖中,左圖可能表明α\alpha過大,代價函數在跳躍,無法收斂;右圖可能表明α\alpha過小,代價函數收斂的太慢。代價函數在迭代會增加影響效率。在實際使用時,可以不斷改變α\alpha值,繪製並觀察圖像,並以此來確定合適的學習速率。
在這裏插入圖片描述

5.特徵處理和多項式迴歸(Features and Polynomial Regression)

5.1特徵處理

在特徵選取時,我們也可以自己歸納總結,定義一個新的特徵,用來取代拆分舊的一個或多個特徵。比如,對於房屋面積特徵來說,我們可以將其拆分爲長度和寬度兩個特徵,反之,我們也可以合併長度和寬度這兩個特徵爲面積這一個特徵。如能減少相關性很高特徵就能減少計算梯度下降時候的運算,提高效率。

5.2多項式迴歸

對比week1單變量線性擬合
線性迴歸只能以直線來對數據進行擬合,有時候需要使用曲線來對數據進行擬合,即多項式迴歸(Polynomial Regression)。下面以單變量爲例說明多項式擬合曲線的問題
在這裏插入圖片描述
在使用多項式迴歸時,要記住非常有必要進行特徵縮放,比如 的範圍爲 1-1000,那麼 的範圍則爲 1- 1000000,不適用特徵縮放的話,範圍更有不一致,也更易影響效率。還需要注意多項式如果項數太多雖然擬合效果更好了,但是增加了計算量。

6.正規方程(Normal Equation)

對於一些線性迴歸問題來說,正規方程法給出了一個更好的解決問題的方式。
正規方程法,即令θjJ(θj)=0\frac{\partial }{\partial \theta_j}J(\theta_j)=0 ,通過解析函數的方式直接計算得出參數向量的值 θ=(XTX)1XTy\theta=(X^TX)^{-1}X^Ty
比較正規方程法和梯度下降算法

條件 梯度下降 正規方程
是否需要選取學習速率α\alpha 需要 不需要
是否需要迭代運算 需要 不需要
特徵量較多時 使用,O(kn2)O(kn^2) 不適用,(XTX)1(X^TX)^{-1}複雜度O(n3)O(n^3)
適用範圍 各種模型 只適用線性模型且需要矩陣可逆
適用特徵數 1w以下 1以上

7.不可逆性正規方程(Normal Equation Noninvertibility)

造成正規方程不可逆的原因有:

  • 特徵線性相關
  • 特徵數量nn大於訓練集的數量mm

XTXX^TX不可逆的處理辦法:

  • 合併冗餘項
  • 增加訓練集數量
  • 使用正則化

在Octave中,XTXX^TX不可逆時強制求解逆函數使用pinv()函數,可逆函數使用inv()函數。

8.week2編程思路

  1. 目的:建模求一組參數θ\theta,能使預測函數輸出值最接近真實值;
  2. 描述接近程度的函數:代價函數Jθ=J_\theta= 12m\frac 1 {2m}i=1m(hθ(x(i))y(i))2\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2
    其中預測函數:hθ(x)=θTxh_\theta(x)=\theta^Tx
  3. 代價函數越小,表示預測越準確;求代價函數的最小值,轉爲求θj\theta_jJ(θ)J(\theta)的偏導數,同時求多個參數的偏導數,機器學習中稱爲 批量梯度下降算法(batch gradient descent algorithm)
  4. θj\theta_j 爲:θj:=θjα1m\theta_j:=\theta_j -\alpha \frac 1 mi=1m(hθ(x(i))y(i))xj(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_j^{(i)} forj:=0,1,2,...n\qquad for \quad j:=0,1,2,...n
    在迭代次數內執行該計算,並且需要同時更新 θj\theta_j的值。
  5. 將迭代次數與代價函數圖形化,直觀判斷優化過程,針對性修改學習參數α\alpha和迭代次數;

附錄

思路整理

對模型進行優化處理目前看是從兩個方面入手:特徵+數據擬合方式,分別整理一下。

  • 特徵
    可以取代和拆分,目的減少冗餘計算;
    特徵值縮放{兩種方式:除以固定值、均值歸一化},目的加快梯度下降的收斂速度;

  • 數據擬合方式
    直線->單變量 線性迴歸 使用正規方程和梯度下降求解
    曲線->多變量 多項式迴歸 梯度下降算法求解最優解

    ps:使用正規方程需要實例矩陣需要可逆即特徵和訓練集實例數一致

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章