在機器學習中,我們會將數據集分成很多個批次來訓練。每次拋出一個批次的數據來計算損失函數,再根據損失函數計算參數的梯度。
再根據梯度來更新參數。然后數據加載器會接着拋出下一個批次的數據來計算損失函數,。。。
如下圖所示,起初隨機選擇一個參數的初值theta0。損失函數L1是參數theta0的表達式,根據第一個批次的數據計算L1,並對theta0求導求出梯度g,
根據梯度更新theta0,更新后的參數是theta1。損失函數L2現在是theta1的表達式,根據第二個批次的數據計算L2,並對theta1求導計算出梯度g后
再更新參數。不斷這樣的執行下去。直至所有的批次都被計算完。
所有的批次的數據都遍歷一遍叫做一個epoch。shuffle是洗牌的意思,它就是說在一個epoch之后,對所有的數據隨機打亂,再按照設定好的每個批次
的大小划分批次。