日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

TensorFlow优化器及用法

發(fā)布時間:2023/11/28 生活经验 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow优化器及用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

TensorFlow優(yōu)化器及用法
函數(shù)在一階導(dǎo)數(shù)為零的地方達到其最大值和最小值。梯度下降算法基于相同的原理,即調(diào)整系數(shù)(權(quán)重和偏置)使損失函數(shù)的梯度下降。
在回歸中,使用梯度下降來優(yōu)化損失函數(shù)并獲得系數(shù)。本文將介紹如何使用 TensorFlow 的梯度下降優(yōu)化器及其變體。
按照損失函數(shù)的負梯度成比例地對系數(shù)(W 和 b)進行更新。根據(jù)訓(xùn)練樣本的大小,有三種梯度下降的變體:

  1. Vanilla 梯度下降:在 Vanilla 梯度下降(也稱作批梯度下降)中,在每個循環(huán)中計算整個訓(xùn)練集的損失函數(shù)的梯度。該方法可能很慢并且難以處理非常大的數(shù)據(jù)集。該方法能保證收斂到凸損失函數(shù)的全局最小值,但對于非凸損失函數(shù)可能會穩(wěn)定在局部極小值處。
  2. 隨機梯度下降:在隨機梯度下降中,一次提供一個訓(xùn)練樣本用于更新權(quán)重和偏置,從而使損失函數(shù)的梯度減小,然后再轉(zhuǎn)向下一個訓(xùn)練樣本。整個過程重復(fù)了若干個循環(huán)。由于每次更新一次,所以它比 Vanilla 快,但由于頻繁更新,所以損失函數(shù)值的方差會比較大。
  3. 小批量梯度下降:該方法結(jié)合了前兩者的優(yōu)點,利用一批訓(xùn)練樣本來更新參數(shù)。
    TensorFlow優(yōu)化器的使用
    首先確定想用的優(yōu)化器。TensorFlow提供了各種各樣的優(yōu)化器:
    ? 這里從最流行、最簡單的梯度下降優(yōu)化器開始:

GradientDescentOptimizer 中的 learning_rate 參數(shù)可以是一個常數(shù)或張量。它的值介于 0 和 1 之間。
必須為優(yōu)化器給定要優(yōu)化的函數(shù)。使用它的方法實現(xiàn)最小化。該方法計算梯度并將梯度應(yīng)用于系數(shù)的學習。該函數(shù)在 TensorFlow 文檔中的定義如下:

綜上所述,這里定義計算圖:

饋送給 feed_dict 的 X 和 Y 數(shù)據(jù)可以是 X 和 Y 個點(隨機梯度)、整個訓(xùn)練集(Vanilla)或成批次的。
? 梯度下降中的另一個變化是增加了動量項。為此,使用優(yōu)化器 tf.train.MomentumOptimizer()。它可以把 learning_rate 和 momentum 作為初始化參數(shù):

? 可以使用 tf.train.AdadeltaOptimizer() 來實現(xiàn)一個自適應(yīng)的、單調(diào)遞減的學習率,它使用兩個初始化參數(shù) learning_rate 和衰減因子 rho:

? TensorFlow 也支持 Hinton 的 RMSprop,其工作方式類似于 Adadelta 的 tf.train.RMSpropOptimizer():

Adadelta 和 RMSprop 之間的細微不同可參考 http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf 和 https://arxiv.org/pdf/1212.5701.pdf。
? 另一種 TensorFlow 支持的常用優(yōu)化器是 Adam 優(yōu)化器。該方法利用梯度的一階和二階矩對不同的系數(shù)計算不同的自適應(yīng)學習率:

? 除此之外,TensorFlow 還提供了以下優(yōu)化器:

通常建議從較大學習率開始,并在學習過程中將其降低。這有助于對訓(xùn)練進行微調(diào)。可以使用 TensorFlow 中的 tf.train.exponential_decay 方法來實現(xiàn)這一點。

根據(jù) TensorFlow 文檔,在訓(xùn)練模型時,通常建議在訓(xùn)練過程中降低學習率。該函數(shù)利用指數(shù)衰減函數(shù)初始化學習率。需要一個 global_step 值來計算衰減的學習率。可以傳遞一個在每個訓(xùn)練步驟中遞增的 TensorFlow 變量。函數(shù)返回衰減的學習率。
變量:
? learning_rate:標量float32或float64張量或者Python數(shù)字。初始學習率。
? global_step:標量int32或int64張量或者Python數(shù)字。用于衰減計算的全局步數(shù),非負。
? decay_steps:標量int32或int64張量或者Python數(shù)字。正數(shù),參考之前所述的衰減計算。
? decay_rate:標量float32或float64張量或者Python數(shù)字。衰減率。
? staircase:布爾值。若為真則以離散的間隔衰減學習率。
? name:字符串。可選的操作名。默認為ExponentialDecay。
返回:
? 與learning_rate類型相同的標量張量。衰減的學習率。
實現(xiàn)指數(shù)衰減學習率的代碼如下:

總結(jié)

以上是生活随笔為你收集整理的TensorFlow优化器及用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。