【QA】在深度學習中,Batch Size 是甚麼?
訓練深度學習模型時常需要很大的記憶體以及多次的迭代過程,然而硬體設備始終是學習深度學習很大的障礙;而 Batch Size 的出現除了可緩解記憶體不足外,訓練時間也能夠有效減少。那麼 Batch Size 究竟是什麼呢?
回答列表
-
2022/05/29 下午 02:50王健安贊同數:0不贊同數:0留言數:0
![image](http://kwassistfile.cupoy.com/000001810E93F571000000026375706F795F72656C65617365414E53/1653298271024/large) 「Epoch」、「Batch size」、「Iteration」、「Learning rate」這些字眼,在人工智慧這領域很常見,訓練 AI 模型的過程,時常需要調整這些參數來影響模型的準確度。 ## Epoch - 中文直翻的話是「時代」、「時期」的意思,但在神經網路訓練上,比較接近中文「期」的含意,指的是訓練模型過程裡,演算法完整使用過資料集每筆資料的狀態。 - 假設我們有一個資料集,有 1000 筆資料,把它們全丟進神經網路運算完,那就是完成了 1 個 Epoch 的訓練。 ## Batch size - Batch 中文直翻的話意思是「批次」。 - 假設剛剛的 1000 筆資料,每筆數據量都很大,電腦因為記憶體不夠用所以無法一次跑 1000 筆。這時我們只好把 1000 筆資料分批送進神經網路,這裡分批的數量就是 Batch size,今天我一次放 500 筆資料進神經網路運算,那 Batch size 就等於 500。 ## Iteration - Iteration 意思是「迭代」,我們將資料分批送進神經網路的時候,會透過迴圈來執行。 延續剛剛的例子,我們如果一次送 500 筆資料進神經網路,那就要跑 兩 次迴圈才算 1 個 Epoch,這時就稱訓練過程迭代了 兩 次。 - Data set size = Iteration * Batch size (1 Epoch) - 這時換個角度來說,如果開發者決定要用 Batch size = 100 的條件,來訓練 5 個 Epoch,那總共要迭代幾次? - Iteration = (Data set size / Batch size)* Epoch,代入數字就是 1000 / 100 * 5 = 50,總共要迭代 50 次才能完成開發者的期望。