在機器學習領域中,經常會聽到“shuffling"這個術語。那么,shuffling到底是什么意思呢。
通常,shuffling指的是在SGD怎樣依賴訓練數據輸入順序的算法中,將訓練數據隨機打亂,達到讓SGD這樣的算法得到與Batch算法類似結果的方法。
如上圖所示,如果訓練數據按1,2,3,...,10,11的順序輸入,采用sgd訓練,得到的模型可能一開始是綠線,然后轉為紅線。而batch算法得到的模型是在紅綠之間的一條直線。
那么,是不是所有的算法shuffling都是有效的呢?答案是否定的。
1. 對於batch算法,shuffling無效
2. 對於online算法,有時候我們就是想捕捉趨勢的變化,這是,shuffling就是反向效果了。