Machine Learning - Andrew Ng on Coursera (Week 2)
本篇文章將分享Coursera上Andrew Ng的Machine Learning第二周的課程,主要內容有如下,詳細內容可以參考文末附件:
- 設置作業環境
- 多變量線性回歸
- 參數的解析算法
- Octave簡介
設置作業環境
因為本課程涉及到在Octave或者Matlab提交作業,所以這一節講了在各種不同的系統中如何安裝Octave或者Matlab。安裝比較簡單,就不在此贅述。需要注意的有如下幾點,如有其他疑問可私信或郵件討論:
多變量線性回歸
上周課程主要針對的是單變量的線性回歸問題,但往往實際問題并不僅僅有一個相關的變量,所以引入了多變量的線性回歸問題。多變量問題中,表示變量數量,[Math Processing Error]表示第[Math Processing Error]個訓練樣本,[Math Processing Error]則表示第[Math Processing Error]個訓練樣本中第[Math Processing Error]個變量的值。此時線性回歸問題假設變成如下形式:
[Math Processing Error]
其中[Math Processing Error]是常數項,因此可以設為1。轉化為向量后,
[Math Processing Error]
代價函數可以相應的變為:
[Math Processing Error]
梯度下降中參數更新可以寫成向量的形式:
[Math Processing Error]
因為各變量的取值范圍會存在較大的差異,然而學習速度對于所有變量都是一致的,即不能取得太大以防止不收斂,又不能取得太小使收斂速度過慢,所以需要將變量取值范圍進行統一(Feature Scaling),使各變量取值范圍盡量在-1到1之間,同時,也盡量避免過于集中在[Math Processing Error]甚至更小的區間內。通常采用mean normalization的方式,即:
[Math Processing Error]
有時需要使用多項式來擬合回歸,且可以采用不同的方式。如課程中的例子,訓練數據中價格與面積明顯存在著非線性的關系,但用面積的二次方去擬合時,會出現達到一定面積后價格反而下降的現象,這在現實生活中幾乎是不存在的。因此,可以添加面積的三次方項,或者平方根項來改變該情況,使價格一直隨面積的增長而增長。當變量之間存在一定關系時,如變量1為面積,變量2為面積的平方時,相應的變量取值范圍也要除以各自的取值范圍,如課程中Andrew舉的例子那樣,除以面積范圍,面積范圍的平方,以及面積范圍的3次方。
還總結了學習速率[Math Processing Error]取值的問題,要確保每一次迭代[Math Processing Error]的值都在不斷減小,可以預先定義如果迭代一次的下降差值在10e-3的范圍內,就認為成本函數已經收斂并停止迭代。如果[Math Processing Error]的值在上下波動或者不斷增大,則說明[Math Processing Error]取值過大,可以適當降低學習速率。
參數的解析算法
梯度下降是求解線性回歸中一種比較直觀的解法,但同時,對于參數[Math Processing Error]的求解也存在解析方法。以一維中最簡單的線性回歸成本函數為例,[Math Processing Error],在坐標軸中呈現為倒U型曲線,那么必然在[Math Processing Error]處可取得成本函數的最小值,那么解得上式中[Math Processing Error]的值就可以得到其全局最小值。
同樣,將該方法推廣到多變量的線性回歸問題時,[Math Processing Error]可解如下公式求得:
[Math Processing Error]
課程中給出了房價的例子及解析解公式如下,但并未給出具體的推導過程:
[Math Processing Error]
以及相應的Octave命令:
pinv(X’*X)*X’*y
最后簡單總結了梯度下降及解析算法的優缺點,其中比較重要我認為有兩點:
Octave簡介
Andrew從以下方面介紹了Octave的一些基本命令,有興趣的同學可以跟著課程視頻都做一遍并完成課程作業:
- 基本的數學運算、邏輯運算、變量賦值和顯示方法;
- 矩陣的賦值,各種矩陣的生成命令;
- 求矩陣的大小和基本的環境命令,如果進入目錄,查看變量等;
- 截取矩陣中的數據,合并多個矩陣;
- 數據的計算方法,比如最大、最小值,求和,連乘等;
- 畫圖的基本命令;
- for, while, if控制語句,以及函數的格式;
- 如何將循環計算向量化;
- Normal Equation不可逆性,通常可能由于線性相關的變量以及變量冗余引起的,需要去掉相應的變量再進行嘗試。
附本次分享演示文檔:ML-Coursera-Week2
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Machine Learning - Andrew Ng on Coursera (Week 2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Machine Learning - A
- 下一篇: Machine Learning - A