深度學習中的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
- 機器學習中比較重要的幾個概念機器學習
- 深度學習入門必須理解這25個概念深度學習
- 前端:說說工作中解決過的印象比較深刻的問題前端
- 在表格中基於樹的模型與深度學習優劣對比模型深度學習
- [譯] 深度學習能力的三個等級深度學習
- Contrastive Learning 對比學習 | RL 學 representation 時的對比學習AST
- 卷積操作的概念及其在深度學習中的應用卷積深度學習
- 學習Linux哪個比較好?入門學習LinuxLinux
- 說好今年交付的這些車,誰比較容易跳票?
- 這才是深度學習的本源深度學習
- 對深度學習的認識深度學習
- 深度學習並非萬能:你需要避免這三個坑深度學習
- 哪個品牌的雲資料庫比較好?重點關注這三個方面資料庫
- 深度學習-卷積神經網路-演算法比較深度學習卷積神經網路演算法
- 學習java多執行緒,這必須搞懂的這幾個概念Java執行緒
- redux connect的淺比較說明Redux
- [pythonskill]Python中NaN和None的詳細比較PythonNaNNone
- 深度學習中的Dropout深度學習
- 【深度學習】深度解讀:深度學習在IoT大資料和流分析中的應用深度學習大資料
- 【深度學習篇】---CNN和RNN結合與對比,例項講解深度學習CNNRNN
- MYSQL學習(三) --索引詳解MySql索引
- [AI開發]一個例子說明機器學習和深度學習的關係AI機器學習深度學習
- 如何理解雅克比矩陣在深度學習中的應用?矩陣深度學習
- 學習AI人工智慧比較快的方法AI人工智慧
- 機器學習常用的分類器比較機器學習
- 機器學習和深度學習概念入門機器學習深度學習
- Go和Python比較的話,哪個比較好?GoPython
- Python中求絕對值的三種方法詳解!Python
- Seq2Seq那些事:詳解深度學習中的“注意力機制”深度學習
- 深度學習的可解釋性研究(一):讓模型「說人話」深度學習模型
- 機器學習和深度學習中值得弄清楚的一些問題機器學習深度學習
- Go 與 C++ 的對比和比較GoC++
- Linux中建立程式常用的三個命令詳解!Linux
- 深度學習中的Normalization模型深度學習ORM模型
- 深度學習基本概念簡介深度學習
- 看完這篇文章你可能就清楚的知道 ZooKeeper的 概念了
- 關於c、c++之前比較模糊的概念C++