日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Machine Learning - Andrew Ng on Coursera (Week 2)

發(fā)布時(shí)間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Machine Learning - Andrew Ng on Coursera (Week 2) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

  • 設(shè)置作業(yè)環(huán)境
  • 多變量線性回歸
  • 參數(shù)的解析算法
  • Octave簡(jiǎn)介

設(shè)置作業(yè)環(huán)境

因?yàn)楸菊n程涉及到在Octave或者M(jìn)atlab提交作業(yè),所以這一節(jié)講了在各種不同的系統(tǒng)中如何安裝Octave或者M(jìn)atlab。安裝比較簡(jiǎn)單,就不在此贅述。需要注意的有如下幾點(diǎn),如有其他疑問(wèn)可私信或郵件討論:

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

    上周課程主要針對(duì)的是單變量的線性回歸問(wèn)題,但往往實(shí)際問(wèn)題并不僅僅有一個(gè)相關(guān)的變量,所以引入了多變量的線性回歸問(wèn)題。多變量問(wèn)題中,表示變量數(shù)量,[Math Processing Error]表示第[Math Processing Error]個(gè)訓(xùn)練樣本,[Math Processing Error]則表示第[Math Processing Error]個(gè)訓(xùn)練樣本中第[Math Processing Error]個(gè)變量的值。此時(shí)線性回歸問(wèn)題假設(shè)變成如下形式:

    [Math Processing Error]

    其中[Math Processing Error]是常數(shù)項(xiàng),因此可以設(shè)為1。轉(zhuǎn)化為向量后,

    [Math Processing Error]

    代價(jià)函數(shù)可以相應(yīng)的變?yōu)?#xff1a;

    [Math Processing Error]

    梯度下降中參數(shù)更新可以寫成向量的形式:

    [Math Processing Error]

    因?yàn)楦髯兞康娜≈捣秶鷷?huì)存在較大的差異,然而學(xué)習(xí)速度對(duì)于所有變量都是一致的,即不能取得太大以防止不收斂,又不能取得太小使收斂速度過(guò)慢,所以需要將變量取值范圍進(jìn)行統(tǒng)一(Feature Scaling),使各變量取值范圍盡量在-1到1之間,同時(shí),也盡量避免過(guò)于集中在[Math Processing Error]甚至更小的區(qū)間內(nèi)。通常采用mean normalization的方式,即:

    [Math Processing Error]

    有時(shí)需要使用多項(xiàng)式來(lái)擬合回歸,且可以采用不同的方式。如課程中的例子,訓(xùn)練數(shù)據(jù)中價(jià)格與面積明顯存在著非線性的關(guān)系,但用面積的二次方去擬合時(shí),會(huì)出現(xiàn)達(dá)到一定面積后價(jià)格反而下降的現(xiàn)象,這在現(xiàn)實(shí)生活中幾乎是不存在的。因此,可以添加面積的三次方項(xiàng),或者平方根項(xiàng)來(lái)改變?cè)撉闆r,使價(jià)格一直隨面積的增長(zhǎng)而增長(zhǎng)。當(dāng)變量之間存在一定關(guān)系時(shí),如變量1為面積,變量2為面積的平方時(shí),相應(yīng)的變量取值范圍也要除以各自的取值范圍,如課程中Andrew舉的例子那樣,除以面積范圍,面積范圍的平方,以及面積范圍的3次方。

    還總結(jié)了學(xué)習(xí)速率[Math Processing Error]取值的問(wèn)題,要確保每一次迭代[Math Processing Error]的值都在不斷減小,可以預(yù)先定義如果迭代一次的下降差值在10e-3的范圍內(nèi),就認(rèn)為成本函數(shù)已經(jīng)收斂并停止迭代。如果[Math Processing Error]的值在上下波動(dòng)或者不斷增大,則說(shuō)明[Math Processing Error]取值過(guò)大,可以適當(dāng)降低學(xué)習(xí)速率。

    參數(shù)的解析算法

    梯度下降是求解線性回歸中一種比較直觀的解法,但同時(shí),對(duì)于參數(shù)[Math Processing Error]的求解也存在解析方法。以一維中最簡(jiǎn)單的線性回歸成本函數(shù)為例,[Math Processing Error],在坐標(biāo)軸中呈現(xiàn)為倒U型曲線,那么必然在[Math Processing Error]處可取得成本函數(shù)的最小值,那么解得上式中[Math Processing Error]的值就可以得到其全局最小值。

    同樣,將該方法推廣到多變量的線性回歸問(wèn)題時(shí),[Math Processing Error]可解如下公式求得:

    [Math Processing Error]

    課程中給出了房?jī)r(jià)的例子及解析解公式如下,但并未給出具體的推導(dǎo)過(guò)程:

    [Math Processing Error]

    以及相應(yīng)的Octave命令:

    pinv(X’*X)*X’*y

    最后簡(jiǎn)單總結(jié)了梯度下降及解析算法的優(yōu)缺點(diǎn),其中比較重要我認(rèn)為有兩點(diǎn):

  • 梯度下降算法在變量特別多的情況下也能順利求解,但對(duì)于解析算法來(lái)說(shuō),如果變量過(guò)多可能會(huì)導(dǎo)致求解速度非常慢,主要是因?yàn)樯婕暗角蠼?span id="ozvdkddzhkzd" class="MathJax_Preview" style="border:0px; font-family:inherit; font-style:inherit; font-weight:inherit; margin:0px; outline:0px; padding:0px; vertical-align:baseline; color:inherit">[Math Processing Error]矩陣的逆。對(duì)于不同的計(jì)算機(jī)和不同的要求,變量的數(shù)量沒有絕對(duì)的多和少,Andrew只給出了一般衡量標(biāo)準(zhǔn),即[Math Processing Error]時(shí)可以考慮采用梯度下降的算法,這在quiz中可能會(huì)涉及到這個(gè)判定范圍。
  • 同樣,因?yàn)榻馕鏊惴ㄉ婕暗角蠼?span id="ozvdkddzhkzd" class="MathJax_Preview" style="border:0px; font-family:inherit; font-style:inherit; font-weight:inherit; margin:0px; outline:0px; padding:0px; vertical-align:baseline; color:inherit">[Math Processing Error]矩陣的逆,所以在某些情況下可能無(wú)法求得,而不得不采用梯度下降的算法進(jìn)行求解。當(dāng)然,在一般情況下,解析算法由于不用設(shè)置學(xué)習(xí)速度和運(yùn)算速度較快而被經(jīng)常使用。
  • Octave簡(jiǎn)介

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

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

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

    ?

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

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。