定義: 梯度 下降法是用 來配對 出使 cost function值最小 的 θ,公式如圖 2,α為Learning rate(學習率),一開始我們會設置一個θ初始值,並且求出此θ值時,cost function的斜率方向,若斜率為正,則θ需變小(減去斜率值),斜率為負,θ則變大,如圖3,目的是找到使cost function斜率為0的θ值(cost function到x軸的距離為cost誤差值,找誤差值最小之點),此值稱為local optima,但不一定可以使的cost function值最小,只是較小的解。而θ為干若個變數,在gradient descent裡面,變數們需要同時更新(simultaneous update),如圖2下面所示,不可更新完一個變數θ0,在算下一個變數θ1,避免同一時間變數的改變互相影響。
圖2
Learning rate(學習率),一開始我們會設置 一個 θ初始值 ,並且求出 此 θ值時, cost function的斜率方向 ,若斜率為正 ,則 θ需變小(減去 斜率 值),斜率 為負,θ則變大,如圖 3,目的 是找到使 cost function斜率 為 0的 θ值(cost function到 x軸的距離 為 cost誤差值, 找誤差值 最小之點 ),此值稱為 local optima,但不一 定可以使的 cost function值最小,只是較小的解。而 θ為干若個變數 ,在 gradient descent裡面, 變數 們需要同時 更新(simultaneous update),如圖 2下面 所示,不可更新完一個變數 θ0,在算下一個變數 θ1,避免 同一時間變數的改變 互相影響。
圖3. Gradient descent更新示意 圖, 左圖斜率 為正, 右圖 斜率 為負
gradient descent之偏微分 部分 來看, 計算 為圖 4。
圖4. gradient descent之偏微分 之偏微分 計算 ,假設變數 為 θ0、θ1
討論: 若是 θ已經 在 cost function的 local minimal之點 上,此時斜率 (slope)為零 ,從公式 可看出,他將不再改變 θ值(不再 繼續 尋找 新的 θ)。當越靠近最佳 解,斜率 就越 小,相當於 θ改變量漸漸變小,因此當 learning rate值合適 ,即使 不把 learning rate的值變小,gradient descent也會漸 收斂。
機器學習中有一個術語 為”batch” gradient descent,表示資料式一批批進行 計算, 一次計算 為一個 總和(如公式所示, 一批樣本 cost function值總和)。也就 是說其實 機器學習中並不 是對整 個訓練及一 次做計算, 而是 將訓練 及分為 幾個 小子集, 分開計算 。batch大小可由自己決定,有時若是設備記憶體不足一 大小可由自己決定,有時若是設備記憶體不足一 次跑 較小的 batch。
Reference
1. Deep Learning – Coursera
2. 《Tensorflow實戰 google深度學習架構》