CS229 Lecture 11
課程要點:
Bayesian statistics and regularization
Online Learning
Advice for apply ML Algorithm
貝葉斯統計和正則化
上節課講了如何通過特徵選擇減少特徵數目,進而降低算法出現過擬合的風險,本節會介紹另一種降低過擬合的方法,即正則化,這種方法不會減少特徵的數目。
前面講述過線性迴歸其通過最大似然的方式求解
這種通過極大似然求解實際上是頻率學派的觀點,他們認爲並不是變量,而是確定的。它影響着。我們拿到的一組數據樣本是由控制者與,雖然無法確切的知道是什麼,但並不是變量,因此頻率學派認爲想得到,找到一個使得出現那麼也以最大概率出現,那麼這個就十分貼近了。
貝葉斯學派的觀點認爲是隨機變量,當我們想預測房價的時候,我們會首先猜測的分佈,即基於其一個先驗概率。假設服從均值爲方差爲的高斯分佈。
在給予訓練數據後
計算的後驗概率爲:
可以注意到上式中的和是通過分隔的,這裏表示是個變量。
當由新的數據時,其預測值爲的概率爲:
關於的數學期望爲:
從上面的式子中很容易看出,要真正求解的後驗概率是很難的,是維向量,而且還要做積分。
因此在實際應用中我們會使用一個近似方法替代後驗概率,通常使用MAP(maximum a posteriori)估計:
預測時:
上面式子中前半段實際和極大似然是一致的,後半段多乘以了,通常會選的先驗分佈爲,這樣估計出來的通常會比較小,這就意味着維上有很多參數接近0,那麼就算是多項式,即使也可以儘量的避免過擬合。
極大似然嘗試最小化,我們知道如果數據點較少,用極大似然估計的化很有可能會出現過擬合的情況,而使用貝葉斯由於大多數參數接近於0,擬合出的曲線就無較大波動。使用先驗概率就相當於,式子後面的起懲罰作用,這樣會使得擬合的曲線更爲平滑,即使維度很高。
Online Learning
前面提及的基本都是批量學習,即給予一批(batch)數據,然後我們根據這批數據學習出一個模型來,然後通過這個模型根據去預測。
但是在線學習不同與批量學習,在線學習的數據是不斷過來的,模型需要不斷的學習,比如又一個在線學習的分類學習算法,最開始給一個然後預測是1還是0,你預測出後,告訴你真正的,如果,需要更新模型。,給予預測,預測出的值爲,如果,需要更新模型。給予…,以此類推。不斷預測不斷學習的過程。
現在學習總的在線誤差計算方式爲
例如前面學習的感知器學習算法就是一種在線學習。
其初始化。
其參數的更新策略是
實際上可以通過數學證明,感知器算法的錯誤率實際上是有上界的,而且上界和具體的學習樣本數和特徵維度無關。
詳細證明請參見cs229-notes6
The perceptron and large margin classifiers
應用機器學習算法的建議
- 算法模型bug診斷
- 錯誤分析和消蝕(ablative)分析
- 過早優化
如果有一個反垃圾的算法,測試誤差高達20%,這顯然是不可接受的,那麼如何去分析優化這個問題,那些方向優化纔是正確的呢?
- 找到更多的訓練數據
- 使用更少的特徵
- 用更多的特徵
- 改變郵件提取的特徵
- 運行更多輪的梯度下降
- 使用牛頓方法
- 使用SVM方法
上面有很多方法可選,但是到底要使用那個方法,首先需要分清問題的原因處在何處,而不是着急去嘗試。否則可能會浪費更多的時間。
算法測試誤差高首先分清是高方差導致還是高偏差導致。
上圖表現的是算法存在高方差,訓練誤差和測試誤差隨着樣本變化的情況。可以看到後期隨着樣本數目的增多,測試誤差依然下降,測試誤差和訓練誤差差距較大。那麼可以通過增加樣本數,減少訓練誤差和測試誤差的差距。之所以隨着訓練樣本的增多,訓練誤差會增加,是因爲樣本越多也就越難以擬合。
上圖表現的是算法存在高偏差,訓練誤差和測試誤差隨着樣本變化的情況。可以看到後期隨着樣本數目的增多,測試誤差基本不再下降,且訓練誤差過大,訓練誤差和測試誤差差距較小。就算增加樣本數目也不可能使得訓練誤差下降。(高偏差類似於用一個以此方程去擬合一個二次方程的數據)
通過上面的論述可知,更多的樣本和更小的特徵可以修復高方差問題。而更多的特徵和改變特徵可以修復高偏差問題。
如果說你的學習算法分爲很多步,那麼可以應用錯誤分析和消蝕分析的方法。
錯誤分析主要是假設當前步驟做的不夠好,替換一個更好的解決方案,觀察其是否對準確率有較大提升,進而確定我們重點優化的方向。
消蝕分析就是抽出某部分,觀察其對準確率的影響,同樣可以觀察到某部分對整個算法的重要程度。
一般是快速作出你的算法來,然後再診斷你算法準確率不佳的原因,而不是一開始就小心翼翼的設計特徵的選取等細枝末節。有時候算法不佳問題根本不是出在你認爲的地方,算法構建出來後通過診斷分析其原因漸漸提升其準確率,纔是更爲正確應用機器學習算法的方式。避免過早的優化浪費時間。