reference:
1.learning rate很難選擇,太小了收斂很慢,太大了容易在local minimum周圍晃動,甚至發散
2.在訓練時當loss一直在某個範圍擺動時,這時候應該減小learning rate,但是這個trick受資料集屬性或者模型的capacity等因素的影響較大,需要認為的精調
3.所用的引數更新都是基於同乙個learning rate的,但是當資料集很稀疏,或者features出現的頻率有很大不同,這時候我們會希望用較大的learning rate來更新rarely出現的feature,即希望實現feature-wise的learning rate的調整
4.還有乙個問題時saddle points 的問題,如下圖:
下文在sgd指的是mini-batch gradient descent,其實在其他很多地方也是這樣
newton』s method.對於高維問題infeasible,所以下面不討論vt
藍色箭頭是momentum:首先計算當前梯度(短箭頭),然後再加上上一步的梯度(長箭頭);棕色箭頭是j(
θ−γv
t−1)
的梯度,即預判,然後再做出修正(綠色箭頭)θt
+1,i
=θt,
i−ηg
t,ii
+ϵ√⋅
gt,i
, gt
∈rd×
d 是乙個對角矩陣,每個對角元素i,i等於前t個timesteps的關於θi
的梯度的平方的總和,
ϵ (一般設定為1e
−8)用於smoothing,以防分子為0
向量化之後: θt
梯度下降法和隨機梯度下降法
批量梯度下降法 batch gradient descent 在更新引數時使用所有的樣本來進行更新 隨機梯度下降法 stochastic gradient descent 求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度。小批量梯度下降法 mini batch gradient d...
梯度下降法
梯度下降法 是乙個一階 最優化演算法 通常也稱為 最速下降法 我之前也沒有關注過這類演算法。最近,聽史丹福大學的機器學習課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。我們知道,函式的曲線如下 程式設計實現 c code cpp view pl...
梯度下降法
回歸 regression 梯度下降 gradient descent 發表於332 天前 技術,科研 被圍觀 1152 次 前言 這個系列主要想能夠用數學去描述機器學習,想要學好機器學習,首先得去理解其中的數學意義,不一定要到能夠輕鬆自如的推導中間的公式,不過至少得認識這些 式子吧,不然看一些相關...