梯度下降法綜述

2021-07-25 21:24:44 字數 2118 閱讀 9236

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 次 前言 這個系列主要想能夠用數學去描述機器學習,想要學好機器學習,首先得去理解其中的數學意義,不一定要到能夠輕鬆自如的推導中間的公式,不過至少得認識這些 式子吧,不然看一些相關...