深度學習中的epochs,batch_size,iterations詳解---對這三個概念說的比較清楚
深度學習框架中涉及很多引數,如果一些基本的引數如果不瞭解,那麼你去看任何一個深度學習框架是都會覺得很困難,下面介紹幾個新手常問的幾個引數。
batch
深度學習的優化演算法,說白了就是梯度下降。每次的引數更新有兩種方式。
第一種,遍歷全部資料集算一次損失函式,然後算函式對各個引數的梯度,更新梯度。這種方法每更新一次引數都要把資料集裡的所有樣本都看一遍,計算量開銷大,計算速度慢,不支援線上學習,這稱為Batch gradient descent,批梯度下降。
另一種,每看一個資料就算一下損失函式,然後求梯度更新引數,這個稱為隨機梯度下降,stochastic gradient descent。這個方法速度比較快,但是收斂效能不太好,可能在最優點附近晃來晃去,hit不到最優點。兩次引數的更新也有可能互相抵消掉,造成目標函式震盪的比較劇烈。
為了克服兩種方法的缺點,現在一般採用的是一種折中手段,mini-batch gradient decent,小批的梯度下降,這種方法把資料分為若干個批,按批來更新引數,這樣,一個批中的一組資料共同決定了本次梯度的方向,下降起來就不容易跑偏,減少了隨機性。另一方面因為批的樣本數與整個資料集相比小了很多,計算量也不是很大。
基本上現在的梯度下降都是基於mini-batch的,所以深度學習框架的函式中經常會出現batch_size,就是指這個。
關於如何將訓練樣本轉換從batch_size的格式可以參考訓練樣本的batch_size資料的準備。
iterations
iterations(迭代):每一次迭代都是一次權重更新,每一次權重更新需要batch_size個資料進行Forward運算得到損失函式,再BP演算法更新引數。1個iteration等於使用batchsize個樣本訓練一次。
epochs
epochs被定義為向前和向後傳播中所有批次的單次訓練迭代。這意味著1個週期是整個輸入資料的單次向前和向後傳遞。簡單說,epochs指的就是訓練過程中資料將被“輪”多少次,就這樣。
舉個例子
訓練集有1000個樣本,batchsize=10,那麼:
訓練完整個樣本集需要:
100次iteration,1次epoch。
具體的計算公式為:
one epoch = numbers of iterations = N = 訓練樣本的數量/batch_size
注:
在LSTM中我們還會遇到一個seq_length,其實
batch_size = num_steps * seq_length
相關文章
- 深度學習當中的三個概念:Epoch, Batch, Iteration深度學習BAT
- 對mysql explain講的比較清楚的MySqlAI
- Java中對HashMap的深度分析與比較JavaHashMap
- Java中對HashMap的深度分析與比較(轉)JavaHashMap
- PHP比較運算子的詳細學習PHP
- 深度學習入門必須理解這25個概念深度學習
- 深度學習概念深度學習
- 【詳解】FPGA:深度學習的未來?FPGA深度學習
- 前端:說說工作中解決過的印象比較深刻的問題前端
- 這是一篇比較詳盡的核心編譯說明(轉)編譯
- 在表格中基於樹的模型與深度學習優劣對比模型深度學習
- [譯] 深度學習能力的三個等級深度學習
- 這才是深度學習的本源深度學習
- 卷積操作的概念及其在深度學習中的應用卷積深度學習
- 開源深度學習庫對比總結深度學習
- 深度學習並非萬能:你需要避免這三個坑深度學習
- 對深度學習的認識深度學習
- 深度學習中的Dropout深度學習
- 學習java多執行緒,這必須搞懂的這幾個概念Java執行緒
- 深度學習-卷積神經網路-演算法比較深度學習卷積神經網路演算法
- 【深度學習】深度解讀:深度學習在IoT大資料和流分析中的應用深度學習大資料
- 哪個品牌的雲資料庫比較好?重點關注這三個方面資料庫
- TensorFlow和Caffe、MXNet、Keras等深度學習框架的對比Keras深度學習框架
- 學習asp.net比較完整的流程ASP.NET
- 深度學習中tensorflow框架的學習深度學習框架
- 【深度學習篇】---CNN和RNN結合與對比,例項講解深度學習CNNRNN
- MYSQL學習(三) --索引詳解MySql索引
- 學習Linux哪個比較好?入門學習LinuxLinux
- Python 中 NaN 和 None 的詳細比較PythonNaNNone
- 三個流行MySQL分支的對比MySql
- 深度學習中的Normalization模型深度學習ORM模型
- 監督學習or無監督學習?這個問題必須搞清楚
- sql server中對日期欄位值的比較SQLServer
- Hive學習之三 《Hive的表的詳解和應用案例詳解》Hive
- 機器學習和深度學習概念入門機器學習深度學習
- 深度學習基本概念簡介深度學習
- Seq2Seq那些事:詳解深度學習中的“注意力機制”深度學習
- 深度學習的可解釋性研究(一):讓模型「說人話」深度學習模型