日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Machine Learning - Andrew Ng on Coursera (Week 2)

發布時間:2025/3/21 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Machine Learning - Andrew Ng on Coursera (Week 2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章將分享Coursera上Andrew Ng的Machine Learning第二周的課程,主要內容有如下,詳細內容可以參考文末附件:

  • 設置作業環境
  • 多變量線性回歸
  • 參數的解析算法
  • Octave簡介

設置作業環境

因為本課程涉及到在Octave或者Matlab提交作業,所以這一節講了在各種不同的系統中如何安裝Octave或者Matlab。安裝比較簡單,就不在此贅述。需要注意的有如下幾點,如有其他疑問可私信或郵件討論:

  • Windows下Octave不支持Https,因此建議使用Matlab;
  • Matlab針對本課程有120天的免費授權,任意系統均可使用;
  • Mac OS X可能需要更改安全與隱私權限才能安裝從非App Store中下載的應用,推薦Octave-CLI(命令行版Octave,更穩定);
  • 多變量線性回歸

    上周課程主要針對的是單變量的線性回歸問題,但往往實際問題并不僅僅有一個相關的變量,所以引入了多變量的線性回歸問題。多變量問題中,表示變量數量,[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

    最后簡單總結了梯度下降及解析算法的優缺點,其中比較重要我認為有兩點:

  • 梯度下降算法在變量特別多的情況下也能順利求解,但對于解析算法來說,如果變量過多可能會導致求解速度非常慢,主要是因為涉及到求解[Math Processing Error]矩陣的逆。對于不同的計算機和不同的要求,變量的數量沒有絕對的多和少,Andrew只給出了一般衡量標準,即[Math Processing Error]時可以考慮采用梯度下降的算法,這在quiz中可能會涉及到這個判定范圍。
  • 同樣,因為解析算法涉及到求解[Math Processing Error]矩陣的逆,所以在某些情況下可能無法求得,而不得不采用梯度下降的算法進行求解。當然,在一般情況下,解析算法由于不用設置學習速度和運算速度較快而被經常使用。
  • Octave簡介

    Andrew從以下方面介紹了Octave的一些基本命令,有興趣的同學可以跟著課程視頻都做一遍并完成課程作業:

    • 基本的數學運算、邏輯運算、變量賦值和顯示方法;
    • 矩陣的賦值,各種矩陣的生成命令;
    • 求矩陣的大小和基本的環境命令,如果進入目錄,查看變量等;
    • 截取矩陣中的數據,合并多個矩陣;
    • 數據的計算方法,比如最大、最小值,求和,連乘等;
    • 畫圖的基本命令;
    • for, while, if控制語句,以及函數的格式;
    • 如何將循環計算向量化;
    • Normal Equation不可逆性,通常可能由于線性相關的變量以及變量冗余引起的,需要去掉相應的變量再進行嘗試。

    附本次分享演示文檔:ML-Coursera-Week2

    ?

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的Machine Learning - Andrew Ng on Coursera (Week 2)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。