神經網路訓練的三個基本概念Epoch, Batch, Iteration
深度神經網路的最佳化都是基本都是基於梯度下降的,梯度下降的過程就是尋找函式值下降速度最快的方向,沿著該方向迭代,快速到達區域性最優解的過程。
梯度下降更新引數的方式最常見的有三種:
1. 批次梯度下降(Batch Gradient Descent)
每一次迭代時使用整個訓練集的資料計算Cost Function來進行梯度更新。
由於每一次引數更新都用到所有的訓練集資料,當樣本數量很大的時候,計算開銷大,速度慢。
2.隨機梯度下降(Stochastic Gradient Descent)
每一次迭代時,針對單個樣本計算Loss Function,然後計算梯度更新引數。這種方法速度比較快,但是收斂效能不好,可能造成目標函式劇烈震盪,並且大資料集的相似樣本會造成梯度的冗餘計算。
3.小批次梯度下降(Mini-Batch Gradient Descent)
每次迭代時,採用一小批樣本,一方面這樣可以降低引數更新時的方差,收斂更加穩定,另一方面可以充分利用深度學習庫中的高度最佳化的矩陣操作進行有效的梯度計算。
Mini-Batch Gradient Descent並不能保證很好的收斂性,Learning Rate 如果選擇的太小,收斂速度會很慢;如果選擇的太大,Loss Function可能在區域性最優解附近不停地震盪甚至偏離。有一種措施是先設定大一點的學習率,當兩次迭代之間的變化低於某個閾值後,就減小Learning Rate。
在大規模的神經網路訓練中,一般採用小批次梯度下降的方式。 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 神經網路常見引數解釋:epoch、batch、batch size、step、iteration神經網路BAT
- 神經網路 深度學習 專業術語解釋(Step, Batch Size, Iteration,Epoch)神經網路深度學習BAT
- batch、epoch、iteration的區別BAT
- 深度學習當中的三個概念:Epoch, Batch, Iteration深度學習BAT
- Batch Normalization: 如何更快地訓練深度神經網路BATORM神經網路
- 訓練神經網路時如何確定batch size?神經網路BAT
- 3.3 神經網路的訓練神經網路
- 谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!谷歌神經網路BAT
- 訓練自己的Android TensorFlow神經網路Android神經網路
- 用神經網路測量訓練集的半衰期神經網路
- 如何應對訓練的神經網路不工作?神經網路
- 關於深度學習上的一些術語: Epoch, Batch Size, Iteration深度學習BAT
- 使用tf.estimator.Estimator訓練神經網路神經網路
- umich cv-5-1 神經網路訓練1神經網路
- umich cv-5-2 神經網路訓練2神經網路
- 從零開始:教你如何訓練神經網路神經網路
- 機器學習之訓練神經網路:最佳做法機器學習神經網路
- 【python實現卷積神經網路】開始訓練Python卷積神經網路
- 送你9個快速使用Pytorch訓練解決神經網路的技巧(附程式碼)PyTorch神經網路
- 如何入門Pytorch之四:搭建神經網路訓練MNISTPyTorch神經網路
- 面向統一的AI神經網路架構和預訓練方法AI神經網路架構
- 深度學習與CV教程(6) | 神經網路訓練技巧 (上)深度學習神經網路
- 迴圈神經網路之embedding,padding,模型構建與訓練神經網路padding模型
- 神經網路之反向傳播訓練(8行程式碼)神經網路反向傳播行程
- Yelp訓練了一個神經網路來debug,然後就被這個AI刪庫了神經網路AI
- 關於訓練神經網路的諸多技巧Tricks(完全總結版)神經網路
- 三、淺層神經網路神經網路
- 使用人工神經網路訓練手寫數字識別模型神經網路模型
- 在Python中使用OpenCV訓練神經網路來檢測手勢!PythonOpenCV神經網路
- composer:2-4倍加速神經網路訓練的演算法庫神經網路演算法
- 深度神經網路的分散式訓練概述:常用方法和技巧全面總結神經網路分散式
- 使用 PyTorch 構建和訓練一個卷積神經網路進行影像分類任務PyTorch卷積神經網路
- ICLR 2024 Oral|用巧妙的「傳送」技巧,讓神經網路的訓練更加高效ICLR神經網路
- 迴圈神經網路設計同樣可以使用預訓練詞“嵌入”神經網路
- 谷歌開源Neural Tangents:簡單快速訓練無限寬度神經網路谷歌神經網路
- 神經網路:numpy實現神經網路框架神經網路框架
- 神經網路不收斂的 11 個原因神經網路
- 神經網路神經網路