tensorflow各優化器總結

2021-09-01 23:57:43 字數 1386 閱讀 9569

1、rmsprop演算法是一種自適應學習率的優化演算法,其核心思想是通過統計相似梯度的平均值的方式來自動地調整學習率。一般來講,我們會在梯度演算法中引入乙個衰減係數,使每一次衰減都有一定的比例。在tensorflow 中,一般使用tf.train.rmspropoptimizer()方法來建立乙個優化器。

2、momentum演算法也是神經網路的常用優化演算法之一,並且也屬於梯度下降的變形演算法。momentum 演算法的核心在於將梯度學習演算法中加入了動量的概念,當前權值的改變會收到上一次權值的改變的影響,就像小球滾動時候一樣,由於慣性,當前狀態會受到上乙個狀態影響,這樣可以加快速度,使得優化速度會變得更快。在tensorflow 中, 一般使用tf.train.momentumoptimizer() 方法來建立乙個momentum 優化器。普通的梯度下降演算法對於所有的引數所使用的學習率都是相同的,但是同乙個學習率卻不一定適用於所有的引數。

3、相對於梯度下降演算法來講,adagrad演算法最大的特點就是可以自適應地為各個引數設定不同的學習率,對於各個引數,隨著其更新總距離的增加,其學習速率也會隨著變慢。對於常見的資料給予比較小的學習率去調整引數,對於不常見的資料給予比較大的學習率調整引數。它可以自動調節學習率,但迭代次數多的時候,學習率也會下降,在tensorflow 中,一般呼叫tf.train.adagradoptimizer()方法來建立乙個adagrad優化器。

4、adam這個名字**於自適應矩估計(adaptive moment estimation),也是梯度下降演算法的一種變形,但是每次迭代引數的學習率都有一定的範圍,不會因為梯度很大而導致學習率(步長)也變得很大,引數的值相對比較穩定。會把之前衰減的梯度和梯度平方儲存起來,使用rmsprob,adadelta相似的方法更新引數。在tensorflow 中,一般呼叫tf.train.adamoptimizer()方法來建立乙個adam 優化器。

5、nag(nesterov accelerated gradient)與momentum相比,它更為聰明,因為momentum是乙個路痴,它不知道去**,而nag則知道我們的目標在**。也就是nag知道我們下乙個位置大概在**,然後提前計算下乙個位置的梯度。然後應用於當前位置指導下一步行動。

6、rmsprob :採用前t-1次梯度平方的平均值 加上當前梯度的平方 的和再開放作為分母

7、adadelta :不使用學習率

8、標準梯度下降法:彙總所有樣本的總誤差,然後根據總誤差更新權值

9、隨機梯度下降:隨機抽取乙個樣本誤差,然後更新權值 (每個樣本都更新一次權值,可能造成的誤差比較大)

10、批量梯度下降法:相當於前兩種的折中方案,抽取乙個批次的樣本計算總誤差,比如總樣本有10000個,可以抽取1000個作為乙個批次,然後根據該批次的總誤差來更新權值。(常用)

tensorflow(五) 優化器

一 基礎知識 1.損失函式 損失函式是評估特定模型引數和特定輸入時,表達模型輸出的推理值與真實值之間不一致程度的函式。形式化定義如下 其中xi是樣本,是模型引數,f xi 是模型 的值,y i是真實的測試資料。f xi 越接近y i,說明模型擬合越的接近真實值。常見的損失函式有平方損失函式 交叉熵損...

Tensorflow學習 優化器

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data 載入資料集 mnist input data.read data sets mnst data one hot true batch ...

tensorflow的優化器比較

標準梯度下降法 彙總所有樣本的總誤差,然後根據總誤差更新權值 隨機梯度下降 隨機抽取乙個樣本誤差,然後更新權值 每個樣本都更新一次權值,可能造成的誤差比較大 批量梯度下降法 相當於前兩種的折中方案,抽取乙個批次的樣本計算總誤差,比如總樣本有10000個,可以抽取1000個作為乙個批次,然後根據該批次...