神經網路訓練的三個基本概念Epoch, Batch, Iteration

dicksonjyl560101發表於2019-05-20


https://www.toutiao.com/a6692677965379011079/


深度神經網路的優化都是基本都是基於梯度下降的,梯度下降的過程就是尋找函式值下降速度最快的方向,沿著該方向迭代,快速到達區域性最優解的過程。

神經網路訓練的三個基本概念Epoch, Batch, Iteration

梯度下降更新引數的方式最常見的有三種:

1. 批量梯度下降(Batch Gradient Descent)

每一次迭代時使用整個訓練集的資料計算Cost Function來進行梯度更新。

神經網路訓練的三個基本概念Epoch, Batch, Iteration

由於每一次引數更新都用到所有的訓練集資料,當樣本數量很大的時候,計算開銷大,速度慢。

2.隨機梯度下降(Stochastic Gradient Descent)

每一次迭代時,針對單個樣本計算Loss Function,然後計算梯度更新引數。這種方法速度比較快,但是收斂效能不好,可能造成目標函式劇烈震盪,並且大資料集的相似樣本會造成梯度的冗餘計算。

神經網路訓練的三個基本概念Epoch, Batch, Iteration

3.小批量梯度下降(Mini-Batch Gradient Descent)

每次迭代時,採用一小批樣本,一方面這樣可以降低引數更新時的方差,收斂更加穩定,另一方面可以充分利用深度學習庫中的高度優化的矩陣操作進行有效的梯度計算。

Mini-Batch Gradient Descent並不能保證很好的收斂性,Learning Rate 如果選擇的太小,收斂速度會很慢;如果選擇的太大,Loss Function可能在區域性最優解附近不停地震盪甚至偏離。有一種措施是先設定大一點的學習率,當兩次迭代之間的變化低於某個閾值後,就減小Learning Rate。

神經網路訓練的三個基本概念Epoch, Batch, Iteration

在大規模的神經網路訓練中,一般採用小批量梯度下降的方式。 Batch Epoch Iteration 就是其中的重要的概念。

1.Batch

每次迭代時使用的一批樣本就叫做一個Batch,樣本的數量稱為Batch Size。Batch大小是一個超引數,用於定義在更新內部模型引數之前要處理的樣本數。深度學習每一次引數的更新的Loss Function並不是由一個樣本得到的,而是由一個Batch的資料加權得到。

2. Iteration

使用Batch Size個樣本訓練一次的過程叫做一個Iteration。

3. Epoch

一個epoch就是使用訓練集中的全部樣本訓練一次。通俗的講,Epoch的值就是整個訓練資料集被反覆使用幾次。

Epoch數是一個超引數,它定義了學習演算法在整個訓練資料集中的工作次數。一個Epoch意味著訓練資料集中的每個樣本都有機會更新內部模型引數。Epoch由一個或多個Batch組成。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2644889/,如需轉載,請註明出處,否則將追究法律責任。

相關文章