Machine Learning學習日記 — Coursera篇 (Week 3.4):The Problem of Overfitting, Cost Function, Regularized Linear Regression, Regularized Logistic Regression
Regularization
回目錄:Coursera章節
下一篇:Motivations
大綱
- The Problem of Overfitting
- Cost Function
- Regularized Linear Regression
- Regularized Logistic Regression
1. The Problem of Overfitting
What is “overfitting” ?
(1) Overfitting的意思就是太過追求參數完美預測出訓練數據的結果,反而導致實際預測效果不佳
high variance可以理解為其有著過多的 variable
(2) 跟overfit相反的狀況:underfit,代表在訓練數據中也有著高預測誤差的問題
high bias可以理解為其會過度依賴其截距(θ0)
(3) 比較適當的Hypothesis會長的像:
上述都是以Linear Regression為例,下面將以Logistic Regression為例:
Underfit:
Overfit:
而比較剛好的狀況會是
Andrew以一段話談論Overfitting:
If we have too many features, the learned hypothesis may fit the training set very well (J(θ)=0), but fail to generalize to new examples(Predictions on new examples)
那我們要怎麼解決Overfitting的問題呢?
有幾種做法:
1. 降低features的數量:人工選擇、model selection algorithm
2. Regularization:維持現有的features,但是降低部分不重要feature的影響力。這對於有著許多feature的hypothesis很有幫助
隨堂練習
Ans:
2. Cost Function
下面的例子:左方為適當的模型,右方為Overfitting
我們可以發現主要的問題是在加了θ3跟θ4之後出現了overfitting的問題
那假設我們將θ3跟θ4的影響降到最低呢(讓其逼近於0)?
就像是我們改寫J(θ),多加上1000*(θ3²)和1000*(θ4²)
上述的1000可以隨時替換成一個極大的數值。
而模型自然會為了將J(θ)降到最低,而使θ3跟θ4降至最低,形成下面的粉紅色線構成的模型
以下將舉例說明如何使用Regularization來改善Overfitting的問題
假設我們要預測房價,其包含了很多個features
而我們要做的就是在J(θ)後面加上一個多項式:
這個 λ 其實跟上面例子的數字1000是一樣的意思,它正式的名稱是regularization parameter
按照慣例,這個多項式不會加上截距項θ0
這會大幅改善overfitting的問題
可能會有人好奇 λ 到底代表什麼意思?
λ代表的其實是我們對於預測誤差跟正規項的取捨
當今天 λ越大,模型會比較不重視預測落差反而是極力地想要壓低所有θ值的大小
就像是我們如果把 λ 設成10¹⁰的話,所有θ值都會趨近於0,最後形成一條直線的hypothesis
而若是 λ 越小甚至趨近於0,可能對改善overfitting就沒什麼太大的幫助了
我在學習正規化的時候,對於為什麼只是加上個正規多項式就可以改善overfitting感到非常疑惑
畢竟我們根本不知道要降低哪一個 θ值(feature)的影響力啊
就這樣直接一視同仁的一起打壓所有的θ值到底為什麼會有效?
這是我想到的答案(沒有證實過):的確是一視同仁的打壓所有的 θ值,但是若是今天θ值只要設定到某幾個數字的話可以使預測誤差降到非常低的話,那麼模型如果為了貪小便宜的將那幾個 θ值給壓低反而造成了預測誤差的大幅上升,使得J(θ)不降反升的反效果的話,會非常得不償失,因此模型將會斟酌不要降低那些重要的 θ值
上述的假設都建立在今天 λ 設立得宜的情況以及有足夠的資料來support預測落差的下降,說服模型不要把重要的 θ值降低
隨堂練習
Ans:
3. Regularized Linear Regression
在先前的文章中,要完成Regularized Linear Regression有兩種做法:
- Gradient Descent
- Normalization
1.Gradient Descent
J(θ):
Gradient Descent 針對J(θ)作各個θ的偏微分,除了θ0之外:
而將這些經過Regularized(第二行θj的等式)的項目略微整理後,會發現一個有趣的現象:
這代表θ(除θ0外)在前面多乘了一個多項式:( 1 — α*(λ/m) )
而這個項目通常是一個實際的數字,且可能只略小於 1,像是:0.99
這就達成了前面所提到的降低θ值的影響力(數值大小)的目的
2.Normalization
Andrew提到,Regularization同時會解決先前我們在Normalization中提到的不可逆矩陣的問題(證明超出課程範圍)
隨堂練習
Ans:
4. Regularized Logistic Regression
以Overfitting為例:
原本的J(θ)
J(θ)加上Regularization項目:
經過Regularized的項目不包含θ0
Gradient Descent with Regularization
注意這邊hθ(x)是跟Linear Regression的hθ(x)截然不同的
隨堂練習
Ans: