close
課程Outline
1. 多特性問題(Multiple features)
2. 參數調整(Parameter scaling)
3. 學習速率(Learning rate)
4. 多項式迴歸模型(Features and polynomial regression)
5. 正規方程式(Normal equation)
多特性問題(Multiple Features)
machine learning model 多半考量到的特性不會只有一個, 下圖為以房價問題為範例,考量多特性下的問題
圖 2. 1 多特性房價問題
如圖 2. 1 所考量到多種特性, 包括坪數()、房間數()、樓層數()、屋齡(),最後一項則是價格()
會用到的一些符號如下:
以房價問題為例
圖 2. 2 符號範例
我們可以將模型改為多特性模型, 如下圖 2. 3
圖 2. 3 多特性模型
加上 =1 的條件下, 可進一步將模型轉成矩陣形式, 在某些程式中使用矩陣運算會較比重覆運算(while do、for loop 等)快(matlab、Octave 等等), 如圖 2. 4
圖 2. 4 矩陣形式多特性模型
此時多特性在使用梯度下降法時, 在特性更新部分公式將更改如下:
圖 2. 5 多特性模型特性更新公式
多特性考量下的代價函式也將變成圖 2. 6 的形式
或
圖 2. 6 多特性代價函式
參數調整(Feature Scaling)
考量問題中, 參數的範圍及單位通常較不一致, 如房價問題中的坪數(size)與房數(number of bedrooms)的範圍就有相當大的差別, 此時會得到像圖 2. 7(左)一樣相當狹長, 利用此種比例進行求解時, 由於 的更新不能太快, 會使得 更新過慢, 導致 Gradient Descent 收斂過慢。
圖 2. 7 參數縮放範例
在透過 Feature Scaling 調整後的變數, 如圖 2. 7(右)所有變數皆除以自己的最大值, 改以比例做為變數, 使變數之間的落差不會太大, 以提升 Gradient Scaling 的效率
最適當的是將參數調整到
圖 2. 8 最佳參數縮放範圍
標準化(Mean Normalization)
透過標準化公式 使原來求解變數更貼近 0, 在此代表總範圍, 亦能以標準差帶之
假設現有 , 其範圍在 100 ~ 2000之間, 平均值為 1000
則標準化後即為
圖 2. 9 變數正規化調整
學習速率(Learning Rate)
在 week 1 我們曾提到學習速率 會影響到 Feature ()是否進行正確的更新(是否使得代價函式收斂), 收斂速度是否太慢
1. 是否正確更新?(代價函式值是否收斂?)
在探討學習速率設定前, 我們必須先探討關於 Gradient Descent 的收斂條件,, 常用以代價函式小於門檻值 做為收斂條件(通常設定為 )
圖 2. 10 代價函式與迭代次數相關圖
以圖 2. 10 為例, 代價函式值(y 軸)隨著迭代次數(x 軸)的增加而逐漸降低, 表示 所訂定的値確實能使代價函式收斂, 而當代價函式值收斂至小於 (), 則表示以得到最佳模型
2. 收斂速度
可以透過代價函式與迭代次數所繪製的相關圖來做判斷,以圖 2. 11 為例:
假設初始 為相同的情況下, 14
圖 A 能以較少的迭代次數即使代價函式收斂, 數值屬於較佳的學習速率
圖 B 相較於圖 A 必需消耗掉較多的迭代次數才能緩緩的收斂,有 更新過慢的情況,此時 過小
圖 C 可以輕易看出隨著迭代次數的增加,代價函式值會逐漸上升,表示 值過大使代價函式發散
圖 2. 11 代價函式與迭代次數相關圖(例)
為何會使代價函式發散呢?
以圖 2. 12 為例,左邊兩張圖皆為發散的情況,亦即在每次 更新時,由於 過大導致更新幅度過大而跳過了頭,讓代價函式越來越發散,此時必須要適當的調小 數值。
圖 2. 12 代價函式與迭代次數相關圖(左) 代價函式與特性相關圖
如何選擇 值呢?
可以透過逐步倍數增加的 值來做測試
像是 0.001 -> 0.003 -> 0.01 -> 0.03 -> 0.1 ...逐步 3 倍的調高 值,使得收斂快又不會使代價函式發散。
多項式迴歸模型 (Features and Polynomial Regression)
有些 training data 在生成模型時,以多項式迴歸模型可能會產生更適切的模型
圖 2. 13 多項式迴歸模型
以圖 2. 13 而言,紅色叉叉為 training data
當加入二次項至模型中時(如藍色線), 模型卻時會較貼近 training data 而得到較佳的模型
但我們可以發現在後段時藍色線段會往下, 但怎麼可能房子越大, 價錢反而越低呢...
為了使模型能更貼近實際情況,可以透過加入三次項以將模型進行修正(如綠色線), 但必須注意到這些多次方變數會使得範圍擴大, 必須使用 Feature Scaling 來調整範圍。
另一種可行的調整方式, 如圖 2. 14中所示, 透過次方項開根號能使平方項影響縮小使其逐漸往上
圖 2. 14 多項式迴歸模型
正規方程式(Normal Equation)
與 Gradient Descent 以迭代漸進求解的方式不同, 正規方程式透過解析法(analytically)的方式一次求解
首先必須先知道什麼是 Design Matrix(X)與反應變數( ) 矩陣
以圖 2. 15 為例
圖 2. 15 正規方程式(例)
在圖表中有包含兩個變數()以及反應變數(), 在構成 Design Matrix 前必須先加上常數項的變數(), 並令其值皆為 1
接著將所有 training data 數值以矩陣形式填入值, 即為 Design Matrix, 而反應變數矩陣顧名思義就是反應變數()所構成的矩陣
以此方式可以得到 Design Matrix 與反應變數矩陣如下:
圖 2. 16 Design Matrix 與反應變數矩陣
正規方程式求解最佳 值的公式為
課程中不證明此公式
以正規方程式進行 值運算時,不需要先對變數做 Feature Scaling。
梯度下降法與正規方程式的比較:
假設現在有 m 個 training data 及 n 種特性
梯度下降法 | 正規方程式 |
優點 | 優點 |
即使 n 大時依然可以運行的很好 | 不必選擇 值 |
不必做迭代運算 | |
缺點 | 缺點 |
需要選擇 值 | 需要計算 |
需要進行迭代運算 | n 大時會非常慢() |
正規方程式額外探討
Non-invertible(不可逆)
何時會有 Non-invertible 的情形呢?
- 當問題中有兩個特性之間存在相關性過大, 會導致退化(Degenerate)而造成不可逆現象, 比方說房價問題中, 有一特性為坪數(呎), 另一特性為坪數(公尺)由於 1 公尺 = 3.28 呎, 兩特性間存在極大的相關性(能夠以其中一特性值推導出另一特性值)
- 問題考量太多特性, 當 m < n 時, 可以刪掉一些特性不考量, 或是只用 正規化(Regularization), 在第三週將會提到
內容大部分擷取自 Coursera online courses - Machine Learning by Prof. Andrew Ng
僅供學習交流,如有任何侵權問題,煩請不吝告知,將立即移除
有任何問題歡迎留言交流,感謝
By Lach
文章標籤
全站熱搜
留言列表