Coursera機器學習week10 筆記

2022-03-02 13:06:14 字數 1687 閱讀 1784

如果我們有乙個低方差的模型,增加資料集的規模可以幫助你獲得更好的結果。我們應該怎樣應對乙個有 100 萬條記錄的訓練集?

以線性回歸模型為例,每一次梯度下降迭代,我們都需要計算訓練集的誤差的平方和,如果我們的學習演算法需要有 20 次迭代,這便已經是非常大的計算代價。

首先應該做的事是去檢查乙個這麼大規模的訓練集是否真的必要,也許我們只用 1000 個訓練集也能獲得較好的效果,我們可以繪製學習曲線來幫助判斷。

如果我們一定需要乙個大規模的訓練集,我們可以嘗試使用隨機梯度下降法來代替批量梯度下降法。

在隨機梯度下降法中,我們定義代價函式為乙個單一訓練例項的代價:

隨機梯度下降演算法為:首先對訓練集隨機「洗牌」,然後: 

演算法雖然會逐漸走向全域性最小值的位置,但是可能無法站到那個最小值的那一點,而是在最小值點附近徘徊。

微型批量梯度下降演算法是介於批量梯度下降演算法和隨機梯度下降演算法之間的演算法,每計算常數 b 次訓練例項,便更新一次引數 θ。

通常我們會令 b 在 2-100 之間。這樣做的好處在於,我們可以用向量化的方式來迴圈 b 個訓練例項,如果我們用的線性代數函式庫比較好,能夠支援平行處理,那麼演算法的總體

表現將不受影響(與隨機梯度下降相同)。

在隨機梯度下降中,我們在每一次更新 θ 之前都計算一次代價,然後每 x 次迭代後,求出這 x 次對訓練例項計算代價的平均值,然後繪製這些平均值與 x 次迭代的次數之間的

函式圖表。

對映化簡和資料並行對於大規模機器學習問題而言是非常重要的概念。之前提到,如果我們用批量梯度下降演算法來求解大規模資料集的最優解,我們需要對整個訓練集進行迴圈,

計算偏導數和代價,再求和,計算代價非常大。如果我們能夠將我們的資料集分配給不多台計算機,讓每一台計算機處理資料集的乙個子集,然後我們將計所的結果彙總在求和。這樣的方法叫做對映簡化。

很多高階的線性代數函式庫已經能夠利用多核 cpu 的多個核心來並行地處理矩陣運算,這也是演算法的向量化實現如此重要的緣故(比呼叫迴圈快)。

機器學習入門 Coursera

1.解決方法 無論你是mac還是windows還是linux系統,系統中都會有乙個hosts檔案。這個檔案在各系統中的位址如下。1.mac系統 private etc hosts 2.linux系統 etc hosts 3.windows系統 c windows system32 drivers e...

機器學習Coursera學習總結

coursera上andrew ng的機器學習實在是太火了,最近有時間花費了20來天的時間 每天3小時左右 終於學習完了全部的課程,總結如下 1 適合入門,講的比較基礎,andrew講的很棒 2 裡面的習題相對比較容易,不過要認真揣摩每個英語單詞,不然容易犯錯 3 我是用matlab提交的程式設計作...

Coursera 機器學習筆記(六)

主要為第八周內容 聚類 clustering 降維 聚類是非監督學習中的重要的一類演算法。相比之前監督學習中的有標籤資料,非監督學習中的是無標籤資料。非監督學習的任務是對這些無標籤資料根據特徵找到內在結構。聚類就是通過演算法把資料分成不同的簇 點集 k均值演算法是其中一種重要的聚類演算法。k均值演算...