Stochastic Gradient Descent (SGD)
2019.03.22 SSU

SGD -隨機梯度下降 是以最單純的gradient decent 方法,找出參數的梯度(利用微分的方法),順著梯度去更新參數 (weight)。是一個在梯度下降優化方法中,最小化目標函數的隨機逼近方法。 [1] [2]

Gradient Descent (梯度下降)
not found
圖片來源:http://www.ycc.idv.tw/ml-course-foundations_3.html

GD 是一次用全部訓練集的數據去計算損失函數的梯度就更新一次參數。
SGD 則是一次跑一個樣本或是小批次 (mini-batch) 樣本然後算出一次梯度或是小批次梯度的平均後就更新一次,那這個樣本或是小批次的樣本是隨機抽取的,所以才會稱為隨機梯度下降法。 [3]

SGD參數意義:
learning rate 每次偵測降低的步伐,太小→要花很多時間到低點,甚至卡在非最低點;太大→可能更新不到低點,甚至往高處跑 【最難調的】
Batch size 所選取之隨機抽取的小樣本數
Epochs 小樣本進行訓練的次數

舉個例:有一位登山客,在爬一座由Ein所決定的高山,目標是去這座山最低的山谷找村莊,也就是Ein最小的地方,但他沒有地圖,那就一直下坡就是了,已知道村莊在山谷裡,一路下山應該就可以找到。朝著下降最多的方向前進,就是Gradient Descent (梯度下降法)。 [4]