吳恩達的機器學習課程中,用矩陣實現的梯度下降是批梯度下降演算法還是隨機梯度下降演算法還是與這兩個都不同?

時間 2021-11-02 21:28:01

1樓:「已登出」

剛好前幾天我研究了批量梯度下降、隨機梯度下降和小批量梯度下降的不同,關鍵是要看你用什麼值來更新你的引數。

就隨機梯度下降而言,你用矩陣求出每乙個樣本所對應的各個偏導值之後,用每個樣本對應的偏導值依次對引數進行更新,就是說每次更新引數都只用到乙個樣本所對應的全部偏導值,這就是隨機梯度下降。他的優點是:每次更新只需要乙個樣本,更新起來比較快。

他的缺點是:它的每一步並不是準確的下降到最優解,但是整體上還是向著最優解前進,最終他的結果會在最優解附近徘徊。

批量梯度下降指的是每次更新引數都要用到全部樣本所計算出的偏導值,批量梯度下降中用來更新theta的偏導值是所有樣本求出的對應偏導值的平均值(這個結論可以根據代價jval函式自己求導得到)。他的優點是每一步都朝著最優解前進,他得出的結果會無限接近最優解。缺點是每更新一次都要用到全部的樣本資料,所以更新起來特別慢。

小批量梯度下降指的是每次更新引數用到部分樣本所計算得出的偏導值,比如一共有200個樣本,每次取20個(隨機取),計算出這二十個樣本對應的各個偏導值,然後取他們的平均值來更新樣本;之後再在剩下的180個樣本中隨機取二十個樣本,重複上述步驟直到收斂。他的優點是:比隨機梯度下降更為精確,卻沒批量梯度下降精確;比批量梯度下降速度更快,卻沒隨機梯度下降快。

我自己也用的吳恩達的教程,個人感覺講的淺顯是淺顯,但是沒那麼講清,很多具體實現沒有講,自己動手起來比較困難。建議看一些機器學習的具體實現,網上找別人寫的文章,比如CSDN部落格,部落格園之類,看了很有幫助。

為什麼要學習吳恩達的機器學習?

入門的時候也看過Ng大神的課,感覺講課風格不是很討喜,總覺得很木訥,就是讀講義抄講義。後來下了講義來一看,我擦,講義寫得這麼美哪用人講啊 其實沒必要看他的課,學過點兒微積分和線性代數的話看李航博士的小藍書是最好最快的入門方式。個人覺得,沒有之一!另外,並不推薦從深度學習入門,因為,見慣了深度學習的簡...

吳恩達老師的深度學習課程需要哪些前置知識呢

陳麒宇 個人以為,Andrew的DL課前置要求不高,機器學習幾個名詞知道意思就行了,沒必要特地回去看老版的機器學習課,線性代數和微積分的要求也就和高數水平差不多,甚至低乙個級別,中國的高中生都能上手,程式設計大概要懂一些,至少用過NumPy,不然作業比較累 嗷嗚來了 首先需要了解線性代數,神經網路操...

如何評價吳恩達開設的 Deep Learning Specialization 課程?

CKLSniper 1.繼承了ML課程的風格,對新手非常的友好,即使不是科班出身學習也不會有大問題。2.講了很多任務程上面的細節,比如第三門課的東西在教科書裡面似乎不會怎麼提到,但對自己訓練大型神經網路會很有幫助。3.基本沒有很數學的東西,想繼續提高的話可以自學Goodfellow那本書。 Andr...