神經網路優化 學習率

2021-08-20 21:01:35 字數 741 閱讀 2369

本文將介紹通過指數衰減的方法設定梯度下降演算法中的學習率,通過指數衰減學習率既可以讓模型的前期快速接近較優解,又可以保證模型在訓練後期不會有太大的波動,從而更加接近區域性最優。

在神經網路中需要設定學習率來控制引數更新的速度,如果幅度過大,那麼有可能導致引數在極優值的兩側來回移動,如果學習率過小,雖然能保證收斂性,但是這會大大降低優化速度。tensorflow中提供一種靈活的學習率的設定方法-指數衰減法,tf.train.exponential_decay函式來實現指數衰減學習率,使得模型在訓練後期更加穩定,該函式將會指數級的減少學習率,它的功能如下:

decay_learning_rate = learning_rate * decay_rate ^ (global_step / decay_step)

decay_learning_rate為每一輪優化時使用的學習率,learning_rate是事先設定的初始學習率,decay_rate是衰減係數,decay_step是衰減速度,而且tf.train.exponential_decay函式可以通過設定引數staircase選擇不同的衰減方式,預設值為false。在這樣的設定下,decay_steps通常代表的是完整的使用一遍資料所需要的迭代次數,這個迭代次數就是總訓練樣本數除以每乙個batch中的訓練樣本數。這種設定的場景每次訓練完整的資料,學習率就減小一次,這可以保證訓練集的相等性。下面通過**來實現此學習率。

神經網路優化 學習率

學習率 learning rate 表示了每次引數更新的幅度大小。學習率過大,會導致待優化的引數在最小值附近波動,不收斂 學習率過小,會導致待優化的引數收斂緩慢。在訓練過程中,引數的更新向著損失函式梯度下降的方向。引數的更新公式為 假設損失函式為 梯度是損失函式loss的導數為2w 2。如引數初值為...

神經網路優化

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data 載入資料集 mnist input data.read data sets mnist data one hot true 每個批次的...

神經網路優化(一)

使用反向傳播演算法和梯度下降演算法調整神經 網路中引數的取值。神經網路的優化過程分為兩個階段 1.1第一階段 先通過前向傳播演算法計算得到 值,並將 值和真實值做對比得出兩者之間的差距。1.2第二階段 通過反向傳播演算法計算損失函式對每乙個引數的梯度,再根據梯度和學習率使用梯度下降演算法更新每乙個引...