1. 程式人生 > >梯度下降演算法中的Adagrad和Adadelta

梯度下降演算法中的Adagrad和Adadelta

Adagrad

與梯度下降不同的是,更新規則中,對於學習率不在設定固定的值,每次迭代過程中,每個引數優化時使用不同的學習率。 
假設 某次迭代時刻t,gt,i=θJ(θi)是目標函式對引數的梯度,普通的隨機梯度下降演算法,對於所有的θi都使用相同的學習率,因此迭代到第t次時,某一個引數向量θi的變化過程如下: 

θt+1,i=θt,iηgt,i
而在Adagrad的更新規則中,學習率 η 會隨著每次迭代而根據歷史梯度的變化而變化。 
θt+1,i=θt,iηGt+ϵgt,i
GtRd×d是一個對角矩陣,每個對角線位置i,i的值累加到t次迭代的對應引數 
θi 梯度平方和。ϵ是平滑項,防止除零操作,一般取值1e8。為什麼分母要進行平方根的原因是去掉平方根操作演算法的表現會大打折扣。

Adadelta

為了避免前文提到的問題,削弱單調猛烈下降的減少學習率,Adadelta產生了1。Adadelta限制把歷史梯度累積視窗限制到固定的尺寸w,而不是累加所有的梯度平方和。 
Adagrad的一大優勢時可以避免手動調節學習率,比如設定初始的預設學習率為0.01,然後就不管它,另其在學習的過程中自己變化。當然它也有缺點,就是它計算時要在分母上計算梯度平方的和,由於所有的引數平法必為正數,這樣就造成在訓練的過程中,分母累積的和會越來越大。這樣學習到後來的階段,網路的更新能力會越來越弱,能學到的更多知識的能力也越來越弱,因為學習率會變得極其小,為了解決這樣的問題又提出了Adadelta演算法。 
梯度和是遞迴的定義成歷史梯度平方的衰減平均值。動態平均值E

[g2]t僅僅取決於當前的梯度值與上一時刻的平均值:

E[g2]t=γE[g2]t1+(1γ)g2t
γ類似於衝量項,大約在0.9附近。需要說明的是,現在將SGD更新的引數變化向量

相關推薦

梯度下降演算法AdagradAdadelta

Adagrad 與梯度下降不同的是,更新規則中,對於學習率不在設定固定的值,每次迭代過程中,每個引數優化時使用不同的學習率。  假設 某次迭代時刻t,gt,i=∇θJ(θi)是目標函式對引數的梯度,普通的隨機梯度下降演算法,對於所有的θi都使用相同的學習率,因

梯度下降演算法的理解實現

# 對梯度下降演算法的理解和實現 ​ 梯度下降演算法是機器學習程式中非常常見的一種引數搜尋演算法。其他常用的引數搜尋方法還有:牛頓法、座標上升法等。 ## 以線性迴歸為背景 ​ 當我們給定一組資料集合 $D=\{(\mathbf{x^{(0)}},y^{(0)}),(\mathbf{x^{(1)}},y

優化梯度下降演算法 Momentum、RMSProp(Root mean square propagation)Adam( Adaptive Moment Estimation)

https://blog.csdn.net/To_be_to_thought/article/details/81780397闡釋Batch Gradient Descent、Stochastic Gradient Descent、MiniBatch Gradient Descent具體原理。

梯度下降、線性迴歸演算法梯度下降、為什麼要用梯度下降演算法

梯度 梯度是一個向量。 函式上某點的梯度的方向:導數最大的方向。梯度的大小(梯度的模):該點的導數的大小。 梯度下降 對於一般二次函式而言: 由於梯度的方向是導數最大的方向,順著梯度方向走,函式值就變大的最快,順著梯度的反方向,那麼函式值減小最快的方向,導數也慢慢減小。當導數減為

邏輯迴歸如何應用梯度下降演算法與損失函式

前面一篇部落格介紹了關於梯度下降演算法來由以及說明了為什麼梯度的負方向就是梯度下降最快方向,本文將會在上文的知識下簡述在邏輯迴歸(Logistic Regression)中為什麼可以使用以及如何使用梯度下降演算法。 梯度下降演算法是個比較簡單容易理解的演算法,就像吳老師或很

機器學習3 邏輯斯提回歸梯度下降演算法

引言 上節我們介紹了很多線性迴歸模型,如何用線性模型做分類任務呢?是不是可以將線性迴歸模型的預測值和到分類任務的標記聯絡起來呢? 邏輯斯提回歸 對於一個二分類任務,輸出標記y為{0,1},而線性迴歸模型產生的預測值z為全體實數,我們想把z轉換成0/1值。我們首先想到是“單位階躍函式”。

斯坦福cs231n學習筆記(11)------神經網路訓練細節(梯度下降演算法大總結/SGD/Momentum/AdaGrad/RMSProp/Adam/牛頓法)

神經網路訓練細節系列筆記: 通過學習,我們知道,因為訓練神經網路有個過程: <1>Sample 獲得一批資料; <2>Forward 通過計算圖前向傳播,獲得loss; <3>Backprop 反向傳播計算梯度,這

吳恩達機器學習 學習筆記 之 二 :代價函式梯度下降演算法

二、 2-1 Model Representation 我們學習的第一個演算法是線性迴歸,接下來會講什麼樣的模型更重要,監督學習的過程是什麼樣子。 首先舉一個需要做預測的例子:住房價格上漲,預測房價,我們擁有某一城市的住房價格資料。基於這些資料,繪製圖形。 在已有房價資

斯坦福CS229機器學習課程筆記一:線性迴歸與梯度下降演算法

機器學習三要素 機器學習的三要素為:模型、策略、演算法。 模型:就是所要學習的條件概率分佈或決策函式。線性迴歸模型 策略:按照什麼樣的準則學習或選擇最優的模型。最小化均方誤差,即所謂的 least-squares(在spss裡線性迴歸對應的模組就叫OLS即Ordinary Least Squares):

梯度下降演算法過程詳細解讀

  看了很多博文,一談到梯度下降,大多都在畫圖,類比“下山”。對於一開始想要了解“梯度下降”是個什麼玩意兒時,這種類比法是非常有助於理解的。但是,當我大概知道了梯度下降是什麼東西之後,我就好奇了,梯度下降究竟是怎樣尋找到模型的最優引數的?不能一想到梯度下降,腦海中就只有“下山”的畫面,“下山”不是目的,目的在

吳恩達機器學習課程筆記02——處理房價預測問題(梯度下降演算法詳解)

  建議記住的實用符號 符號 含義 m 樣本數目 x 輸入變數 y 輸出變數/目標變數

機器學習之--梯度下降演算法

貌似機器學習最繞不過去的演算法,是梯度下降演算法。這裡專門捋一下。 1. 什麼是梯度 有知乎大神已經解釋的很不錯,這裡轉載並稍作修改,加上自己的看法。先給出連結,畢竟轉載要說明出處嘛。為什麼梯度反方向是函式值區域性下降最快的方向? 因為高等數學都忘光了,先從導數/偏倒數/方向

線性迴歸 梯度下降演算法 overshot the minimun現象

在梯度下降演算法中,理論上有一個步長steep需要我們設定。steep的設定非常重要,如果設定不當,我們的梯度下降演算法可能就得不到我們想要的結果。 一:步長不當導致的問題 如果步長太短,很顯然我們訓練集訓練的時間就會加長。如果訓練集比較多,這也是致命的。 如果步長太長,可能出現Oversho

gradient descent梯度下降演算法的優化

cost function優化 最原始更新由此 相應的難點程式碼: self.weights = [w-(eta/len(mini_batch))*nw for w, nw in zip(self.weights, nabla_w)] self.bi

監督學習-梯度下降演算法

公式不太好上傳,所以就截圖了,效果不太好,大家想看原件,請下載:https://download.csdn.net/download/qq_24369689/10811686 監督學習-梯度下降演算法 如果你還沒有接觸過梯度下降演算法,你在看下面內容之前可以先看一下,吳恩達的梯度下降的視訊:

訓練過程--梯度下降演算法(SGD、adam等)

SGD系列 1)Batch gradient descent(批量梯度下降)   在整個資料集上   每更新一次權重,要遍歷所有的樣本,由於樣本集過大,無法儲存在記憶體中,無法線上更新模型。對於損失函式的凸曲面,可以收斂到全域性最小值,對於非凸曲面,收斂到區域性最小值。   隨機梯度

梯度下降演算法(1) - Python實現

演算法介紹:梯度下降演算法是一種利用一次導數資訊求取目標函式極值的方法,也是目前應用最為廣泛的區域性優化演算法之一。其具有實現簡單、容易遷移、收斂速度較快的特徵。在求解過程中,從預設的種子點開始,根據梯度資訊逐步迭代更新,使得種子點逐漸向目標函式的極小值點移動,最終到達目標函式的極小值點。注意,沿梯度正

一系列梯度下降演算法

梯度下降演算法是優化神經網路最常見的方式,這裡我們會接觸梯度下降法的不同變種以及多種梯度下降優化演算法。 梯度下降變種 batch gradient descent 缺點:一次引數更新需要使用整個資料集,因此十分慢,並且記憶體不夠的話很難應付。 優點:保證收斂到全域性最小值或者區

梯度下降 隨機梯度下降 演算法

一、一維梯度下降 演算法思想: 我們要找到一個函式的谷底,可以通過不斷求導,不斷逼近,找到一個函式求導後為0,我們就引入了一個概念 學習率(也可以叫作步長),因為是不斷逼近某個x,所以學習率過大會導致超過最優解,而學習率過小,會導致收斂速度過慢。 二、多維梯度下降

梯度下降演算法原理介紹

  梯度下降法   1、梯度:   在微積分裡面,對多元函式引數求偏導數,把求的各引數的偏導數以向量的形式寫出來,就是梯度。   梯度向量從幾何意義上講,就是函式變化增加最快的地方,沿著梯度向量的方向更容易找到函式的最大值,沿著向量相反的方向,梯度減小最快,更容易找