文章目錄
- 多變量線性迴歸(Linear Regression with Multiple Variables)
- 1.多特徵(Multiple Features)
- 2.多變量梯度下降(Gradient Descent for Multiple Variable)
- 3.特徵值縮放(Gradient Descent in Practice I - Feature Scaling)
- 4.學習速率(Gradient Descent in Practice II - Learning Rate)
- 5.特徵處理和多項式迴歸(Features and Polynomial Regression)
- 6.正規方程(Normal Equation)
- 7.不可逆性正規方程(Normal Equation Noninvertibility)
- 8.week2編程思路
- 附錄
- 思路整理
多變量線性迴歸(Linear Regression with Multiple Variables)
1.多特徵(Multiple Features)
對於一個要度量的對象,一般來說會有不同維度的多個特徵。比如之前的房屋價格預測例子中,除了房屋的面積大小,可能還有房屋的年限、房屋的層數等等其他特徵
多變量假設函數表示爲:=+++…+
這裏由於特徵不再只有一個,引入一些新的記號
:特徵的總數
: 代表樣本矩陣中第 行,也就是第 個訓練實例。
代表樣本矩陣中第 行的第 列,也就是第 個訓練實例的第 個特徵。
其中參數向量的維度是+1,給特徵向量添加,其維度也變成+1維,則假設函數可以用矩陣表達爲:
:矩陣的轉置
:某個樣本的特徵向量。n+1維
:假設=1
2.多變量梯度下降(Gradient Descent for Multiple Variable)
多變量代價函數類似與單變量代價函數,即
= ,其中
梯度下降對於最小化代價函數的通用性,則多變量梯度下降公式即
解出偏導得:
可展開爲:
…
同單變量梯度下降一樣,計算時需要同時更新所有參數。
3.特徵值縮放(Gradient Descent in Practice I - Feature Scaling)
在應用梯度下降算法實踐時,由於各特徵值的取值範圍不同,可能會影響代價函數收斂速度。
以房價預測問題爲例,這裏選取房屋面積大小和房間數量這兩個特徵。
下圖中,左圖是以原始數據繪製的代價函數輪廓圖,右圖爲採用特徵縮放(都除以最大值)後圖像。左圖中呈現的圖像較扁震盪較大,相對於使用特徵縮放方法的右圖,梯度下降算法需要更多次的迭代。
爲了加快梯度下降的收斂速度,採用特徵縮放的方式,使得特徵值的範圍儘量一致。
方法主要有2種特徵縮放(feature scaling) and 均值歸一化(mean normalization)
特徵縮放:每個訓練實例的特徵值都除以該特徵值中最大的數;
均值歸一化:
另外注意,一旦採用特徵縮放,我們就需對所有的輸入採用特徵縮放,包括訓練集、測試集、預測輸入等。
4.學習速率(Gradient Descent in Practice II - Learning Rate)
通常,有兩種方法來確定函數是否收斂
-
多次迭代收斂法
無法確定需要多少次迭代
較易繪製關於迭代次數的圖像
根據圖像易預測所需的迭代次數
-
自動化測試收斂法(比較閾值)
不易選取閾值
代價函數近乎直線時無法確定收斂情況
因爲自動化測試收斂法需要預判代價函數的的參考值,但對於每個項目並不相同,選取參考值很困難。因此一般藉助圖形發現代價函數的趨勢,調整學習速率,隨着曲線的下降,每次取更小的學習速率,逐漸逼近最小值。
對於學習速率,一般上圖展現的爲適中情況下圖中,左圖可能表明過大,代價函數在跳躍,無法收斂;右圖可能表明過小,代價函數收斂的太慢。代價函數在迭代會增加影響效率。在實際使用時,可以不斷改變值,繪製並觀察圖像,並以此來確定合適的學習速率。
5.特徵處理和多項式迴歸(Features and Polynomial Regression)
5.1特徵處理
在特徵選取時,我們也可以自己歸納總結,定義一個新的特徵,用來取代或拆分舊的一個或多個特徵。比如,對於房屋面積特徵來說,我們可以將其拆分爲長度和寬度兩個特徵,反之,我們也可以合併長度和寬度這兩個特徵爲面積這一個特徵。如能減少相關性很高特徵就能減少計算梯度下降時候的運算,提高效率。
5.2多項式迴歸
對比week1單變量線性擬合
線性迴歸只能以直線來對數據進行擬合,有時候需要使用曲線來對數據進行擬合,即多項式迴歸(Polynomial Regression)。下面以單變量爲例說明多項式擬合曲線的問題
在使用多項式迴歸時,要記住非常有必要進行特徵縮放,比如 的範圍爲 1-1000,那麼 的範圍則爲 1- 1000000,不適用特徵縮放的話,範圍更有不一致,也更易影響效率。還需要注意多項式如果項數太多雖然擬合效果更好了,但是增加了計算量。
6.正規方程(Normal Equation)
對於一些線性迴歸問題來說,正規方程法給出了一個更好的解決問題的方式。
正規方程法,即令 ,通過解析函數的方式直接計算得出參數向量的值 ,
比較正規方程法和梯度下降算法
條件 | 梯度下降 | 正規方程 |
---|---|---|
是否需要選取學習速率 | 需要 | 不需要 |
是否需要迭代運算 | 需要 | 不需要 |
特徵量較多時 | 使用, | 不適用,複雜度 |
適用範圍 | 各種模型 | 只適用線性模型且需要矩陣可逆 |
適用特徵數 | 1w以下 | 1以上 |
7.不可逆性正規方程(Normal Equation Noninvertibility)
造成正規方程不可逆的原因有:
- 特徵線性相關
- 特徵數量大於訓練集的數量
不可逆的處理辦法:
- 合併冗餘項
- 增加訓練集數量
- 使用正則化
在Octave中,不可逆時強制求解逆函數使用pinv()函數,可逆函數使用inv()函數。
8.week2編程思路
- 目的:建模求一組參數,能使預測函數輸出值最接近真實值;
- 描述接近程度的函數:代價函數
其中預測函數: - 代價函數越小,表示預測越準確;求代價函數的最小值,轉爲求對的偏導數,同時求多個參數的偏導數,機器學習中稱爲 批量梯度下降算法(batch gradient descent algorithm)
- 爲:
在迭代次數內執行該計算,並且需要同時更新 的值。 - 將迭代次數與代價函數圖形化,直觀判斷優化過程,針對性修改學習參數和迭代次數;
附錄
- 【Katex常用函數1】https://katex.org/docs/support_table.html#symbols
- 【Katex常用函數2】https://my.oschina.net/davelet/blog/1831306
- 【Latex常用希臘字母】https://blog.csdn.net/xxzhangx/article/details/52778539
思路整理
對模型進行優化處理目前看是從兩個方面入手:特徵+數據擬合方式,分別整理一下。
-
特徵
可以取代和拆分,目的減少冗餘計算;
特徵值縮放{兩種方式:除以固定值、均值歸一化},目的加快梯度下降的收斂速度; -
數據擬合方式
直線->單變量 線性迴歸 使用正規方程和梯度下降求解
曲線->多變量 多項式迴歸 梯度下降算法求解最優解ps:使用正規方程需要實例矩陣需要可逆即特徵和訓練集實例數一致