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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

吴恩达机器学习笔记十四之大规模机器学习

發(fā)布時間:2025/3/15 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 吴恩达机器学习笔记十四之大规模机器学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本節(jié)目錄

    • 1 大型數(shù)據(jù)集的學(xué)習(xí)
    • 2 隨機梯度下降法
    • 3 小批量梯度下降
    • 4 隨機梯度下降收斂
    • 5 在線學(xué)習(xí)
    • 6 映射化簡和數(shù)據(jù)并行

1 大型數(shù)據(jù)集的學(xué)習(xí)

如果我們有一個低方差的模型,增加數(shù)據(jù)集的規(guī)模可以幫助你獲得更好的結(jié)果。我們應(yīng)該怎樣應(yīng)對一個有 100 萬條記錄的訓(xùn)練集?
以線性回歸模型為例,每一次梯度下降迭代,我們都需要計算訓(xùn)練集的誤差的平方和,
如果我們的學(xué)習(xí)算法需要有 20 次迭代,這便已經(jīng)是非常大的計算代價。
首先應(yīng)該做的事是去檢查一個這么大規(guī)模的訓(xùn)練集是否真的必要,也許我們只用 1000
個訓(xùn)練集也能獲得較好的效果,我們可以繪制學(xué)習(xí)曲線來幫助判斷。

2 隨機梯度下降法


隨機梯度下降算法在每一次計算之后便更新參數(shù) 𝜃 ,而不需要首先將所有的訓(xùn)練集求和,在梯度下降算法還沒有完成一次迭代時,隨機梯度下降算法便已經(jīng)走出了很遠。但是這樣的算法存在的問題是, 不是每一步都是朝著”正確”的方向邁出的。 因此算法雖然會逐漸走向全局最小值的位置,但是可能無法站到那個最小值的那一點,而是在最小值點附近徘徊。

3 小批量梯度下降

小批量梯度下降算法是介于批量梯度下降算法和隨機梯度下降算法之間的算法,每計算常數(shù)𝑏次訓(xùn)練實例,便更新一次參數(shù) 𝜃 。


通常我們會令 𝑏 在 2-100 之間。這樣做的好處在于,我們可以用向量化的方式來循環(huán)𝑏個訓(xùn)練實例,如果我們用的線性代數(shù)函數(shù)庫比較好,能夠支持平行處理,那么算法的總體表現(xiàn)將不受影響(與隨機梯度下降相同)。

4 隨機梯度下降收斂

現(xiàn)在我們介紹隨機梯度下降算法的調(diào)試,以及學(xué)習(xí)率 𝛼 的選取。
在批量梯度下降中,我們可以令代價函數(shù)𝐽為迭代次數(shù)的函數(shù),繪制圖表,根據(jù)圖表來判斷梯度下降是否收斂。但是,在大規(guī)模的訓(xùn)練集的情況下,這是不現(xiàn)實的,因為計算代價太大了。
在隨機梯度下降中,我們在每一次更新 𝜃 之前都計算一次代價,然后每𝑥次迭代后,求出這𝑥次對訓(xùn)練實例計算代價的平均值,然后繪制這些平均值與𝑥次迭代的次數(shù)之間的函數(shù)圖表。

當(dāng)我們繪制這樣的圖表時,可能會得到一個顛簸不平但是不會明顯減少的函數(shù)圖像(如
上面左下圖中藍線所示)。我們可以增加𝛼來使得函數(shù)更加平緩,也許便能看出下降的趨勢
了(如上面左下圖中紅線所示);或者可能函數(shù)圖表仍然是顛簸不平且不下降的(如洋紅色
線所示),那么我們的模型本身可能存在一些錯誤。
如果我們得到的曲線如上面右下方所示,不斷地上升,那么我們可能會需要選擇一個較
小的學(xué)習(xí)率𝛼。
我們也可以令學(xué)習(xí)率隨著迭代次數(shù)的增加而減小,例如令

隨著我們不斷地靠近全局最小值,通過減小學(xué)習(xí)率,我們迫使算法收斂而非在最小值附近徘徊。 但是通常我們不需要這樣做便能有非常好的效果了,對𝛼進行調(diào)整所耗費的計算通常不值得。

這段視頻中,我們介紹了一種方法,近似地監(jiān)測出隨機梯度下降算法在最優(yōu)化代價函數(shù)中的表現(xiàn),這種方法不需要定時地掃描整個訓(xùn)練集,來算出整個樣本集的代價函數(shù),而是只需要每次對最后 1000 個,或者多少個樣本,求一下平均值。應(yīng)用這種方法,你既可以保證隨機梯度下降法正在正常運轉(zhuǎn)和收斂,也可以用它來調(diào)整學(xué)習(xí)速率𝛼的大小。

5 在線學(xué)習(xí)

假定你有一個提供運輸服務(wù)的公司,用戶們來向你詢問把包裹從 A 地運到 B 地的服務(wù),
同時假定你有一個網(wǎng)站,讓用戶們可多次登陸,然后他們告訴你,他們想從哪里寄出包裹,
以及包裹要寄到哪里去,也就是出發(fā)地與目的地,然后你的網(wǎng)站開出運輸包裹的的服務(wù)價格。
比如,我會收取$50 來運輸你的包裹,我會收取$20 之類的,然后根據(jù)你開給用戶的這個價
格,用戶有時會接受這個運輸服務(wù),那么這就是個正樣本,有時他們會走掉,然后他們拒絕
購買你的運輸服務(wù),所以,讓我們假定我們想要一個學(xué)習(xí)算法來幫助我們,優(yōu)化我們想給用
戶開出的價格。
一個算法來從中學(xué)習(xí)的時候來模型化問題在線學(xué)習(xí)算法指的是對數(shù)據(jù)流而非離線的靜
態(tài)數(shù)據(jù)集的學(xué)習(xí)。許多在線網(wǎng)站都有持續(xù)不斷的用戶流,對于每一個用戶,網(wǎng)站希望能在不
將數(shù)據(jù)存儲到數(shù)據(jù)庫中便順利地進行算法學(xué)習(xí)。
假使我們正在經(jīng)營一家物流公司,每當(dāng)一個用戶詢問從地點 A 至地點 B 的快遞費用時,
我們給用戶一個報價,該用戶可能選擇接受( 𝑦 = 1)或不接受( 𝑦 = 0)。
現(xiàn)在,我們希望構(gòu)建一個模型,來預(yù)測用戶接受報價使用我們的物流服務(wù)的可能性。因
此報價 是我們的一個特征,其他特征為距離,起始地點,目標(biāo)地點以及特定的用戶數(shù)據(jù)。
模型的輸出是:𝑝(𝑦 = 1)。
在線學(xué)習(xí)的算法與隨機梯度下降算法有些類似,我們對單一的實例進行學(xué)習(xí),而非對一
個提前定義的訓(xùn)練集進行循環(huán)。


一旦對一個數(shù)據(jù)的學(xué)習(xí)完成了,我們便可以丟棄該數(shù)據(jù),不需要再存儲它了。這種方式
的好處在于,我們的算法可以很好的適應(yīng)用戶的傾向性,算法可以針對用戶的當(dāng)前行為不斷
地更新模型以適應(yīng)該用戶。
這些問題中的任何一個都可以被歸類到標(biāo)準(zhǔn)的,擁有一個固定的樣本集的機器學(xué)習(xí)問題
中。或許,你可以運行一個你自己的網(wǎng)站,嘗試運行幾天,然后保存一個數(shù)據(jù)集,一個固定
的數(shù)據(jù)集,然后對其運行一個學(xué)習(xí)算法。但是這些是實際的問題,在這些問題里,你會看到
大公司會獲取如此多的數(shù)據(jù),真的沒有必要來保存一個固定的數(shù)據(jù)集,取而代之的是你可以
使用一個在線學(xué)習(xí)算法來連續(xù)的學(xué)習(xí),從這些用戶不斷產(chǎn)生的數(shù)據(jù)中來學(xué)習(xí)。這就是在線學(xué)
習(xí)機制,然后就像我們所看到的,我們所使用的這個算法與隨機梯度下降算法非常類似,唯
一的區(qū)別的是,我們不會使用一個固定的數(shù)據(jù)集,我們會做的是獲取一個用戶樣本,從那個
樣本中學(xué)習(xí),然后丟棄那個樣本并繼續(xù)下去,而且如果你對某一種應(yīng)用有一個連續(xù)的數(shù)據(jù)流,
這樣的算法可能會非常值得考慮。當(dāng)然,在線學(xué)習(xí)的一個優(yōu)點就是,如果你有一個變化的用
戶群,又或者你在嘗試預(yù)測的事情,在緩慢變化,就像你的用戶的品味在緩慢變化,這個在
線學(xué)習(xí)算法,可以慢慢地調(diào)試你所學(xué)習(xí)到的假設(shè),將其調(diào)節(jié)更新到最新的用戶行為。

6 映射化簡和數(shù)據(jù)并行

如果我們用批量梯度下降算法來求解大規(guī)模數(shù)據(jù)集的最優(yōu)解,我們需要對整個訓(xùn)練集進行循環(huán),
計算偏導(dǎo)數(shù)和代價,再求和,計算代價非常大。如果我們能夠?qū)⑽覀兊臄?shù)據(jù)集分配給不多臺
計算機,讓每一臺計算機處理數(shù)據(jù)集的一個子集,然后我們將計算的結(jié)果匯總在求和。這樣
的方法叫做映射簡化。
具體而言,如果任何學(xué)習(xí)算法能夠表達為,對訓(xùn)練集的函數(shù)的求和,那么便能將這個任務(wù)分配給多臺計算機(或者同一臺計算機的不同 CPU 核心),以達到加速處理的目的。
例如,我們有 400 個訓(xùn)練實例,我們可以將批量梯度下降的求和任務(wù)分配給 4 臺計算機
進行處理:

很多高級的線性代數(shù)函數(shù)庫已經(jīng)能夠利用多核 CPU 的多個核心來并行地處理矩陣運算,這
也是算法的向量化實現(xiàn)如此重要的緣故(比調(diào)用循環(huán)快)。

總結(jié)

以上是生活随笔為你收集整理的吴恩达机器学习笔记十四之大规模机器学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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