1.梯度下降
1)什么是梯度下降?
因為梯度下降是一種思想,沒有嚴格的定義,所以用一個比喻來解釋什么是梯度下降。

簡單來說,梯度下降就是從山頂找一條最短的路走到山腳最低的地方。但是因為選擇方向的原因,我們找到的的最低點可能不是真正的最低點。如圖所示,黑線標注的路線所指的方向并不是真正的地方。
既然是選擇一個方向下山,那么這個方向怎么選?每次該怎么走?
先說選方向,在算法中是以隨機方式給出的,這也是造成有時候走不到真正最低點的原因。
如果選定了方向,以后每走一步,都是選擇最陡的方向,直到最低點。
總結起來就一句話:隨機選擇一個方向,然后每次邁步都選擇最陡的方向,直到這個方向上能達到的最低點。
2)梯度下降是用來做什么的?
在機器學習算法中,有時候需要對原始的模型構建損失函數,然后通過優化算法對損失函數進行優化,以便尋找到最優的參數,使得損失函數的值最小。而在求解機器學習參數的優化算法中,使用較多的就是基于梯度下降的優化算法(GradientDescent,GD)。
3)優缺點
優點:效率。在梯度下降法的求解過程中,只需求解損失函數的一階導數,計算的代價比較小,可以在很多大規模數據集上應用
缺點:求解的是局部最優值,即由于方向選擇的問題,得到的結果不一定是全局最優
步長選擇,過小使得函數收斂速度慢,過大又容易找不到最優解。
2.梯度下降的變形形式
根據處理的訓練數據的不同,主要有以下三種形式:
1)批量梯度下降法BGD(BatchGradientDescent):
針對的是整個數據集,通過對所有的樣本的計算來求解梯度的方向。
優點:全局最優解;易于并行實現;
缺點:當樣本數據很多時,計算量開銷大,計算速度慢
2)小批量梯度下降法MBGD(mini-batchGradientDescent)
把數據分為若干個批,按批來更新參數,這樣,一個批中的一組數據共同決定了本次梯度的方向,下降起來就不容易跑偏,減少了隨機性
優點:減少了計算的開銷量,降低了隨機性
3)隨機梯度下降法SGD(stochasticgradientdescent)
每個數據都計算算一下損失函數,然后求梯度更新參數。
優點:計算速度快
缺點:收斂性能不好
總結:SGD可以看作是MBGD的一個特例,及batch_size=1的情況。在深度學習及機器學習中,基本上都是使用的MBGD算法。
3.隨機梯度下降
隨機梯度下降(SGD)是一種簡單但非常有效的方法,多用用于支持向量機、邏輯回歸等凸損失函數下的線性分類器的學習。并且SGD已成功應用于文本分類和自然語言處理中經常遇到的大規模和稀疏機器學習問題。
新聞熱點
疑難解答