相同點(diǎn)
在GD和SGD中,都會在每次迭代中更新模型的參數(shù),使得代價函數(shù)變小背零。
不同點(diǎn)
GD
在GD中,每次迭代都要用到全部訓(xùn)練數(shù)據(jù)扯躺。
假設(shè)線性模型
θ是參數(shù)
代價函數(shù) :
那么每次GD的更新算法為:
由此算法可知捉兴,在對代價函數(shù)求偏導(dǎo)時,是需要用到全部的訓(xùn)練數(shù)據(jù)的录语。
SGD
在SGD中倍啥,每次迭代可以只用一個訓(xùn)練數(shù)據(jù)來更新參數(shù)。
回到GD的更新算法澎埠,假設(shè)此時我們此時訓(xùn)練數(shù)據(jù)就只有一條(x,y)虽缕,
所以此時的更新參數(shù)的算法變?yōu)椋?/p>
此時更新的算法,只用到了一個樣本蒲稳。
其實(shí)具象的理解下氮趋,就是來了一條訓(xùn)練數(shù)據(jù),算下此時根據(jù)模型算出的值和實(shí)際值的差距江耀,如果差距大剩胁,那么參數(shù)更新的幅度大,反之則小祥国。
總結(jié)
當(dāng)訓(xùn)練數(shù)據(jù)過大時昵观,用GD可能造成內(nèi)存不夠用晾腔,那么就可以用SGD了,SGD其實(shí)可以算作是一種online-learning啊犬。另外SGD收斂會比GD快灼擂,但是對于代價函數(shù)求最小值還是GD做的比較好,不過SGD也夠用了觉至。