Re: [問題] batch size過大時,為什麼容易overfittin

看板DataScience作者 (如果狗狗飛上天)時間5年前 (2018/12/02 10:32), 編輯推噓7(709)
留言16則, 10人參與, 5年前最新討論串2/3 (看更多)
想像一個極端的情況,你在做梯度修正時,如果每次都是拿所有數據餵進去,然後再做修正,這意味著你每次送進去的數據都是一樣的,沒有任何隨機性,所以你在N維空間中走向優化解的路徑會是一條確定的路徑,不存在隨機性。 深度學習的優化解本身是個非凸問題,本質上是NP hard,你能做的是盡可能走遍歷個空間來尋找相對最優解,所以如果你使用GD(即,使用全數據做修正),你對空間的探索性就等於0,你的模型會直直的奔向最靠近起始值的local min,所以除非你運氣很好,不然你自然很容易會陷入局域最優出不來。 另一個極端是,你每次只用一個sample來做修正,每次取那個sample做修正是隨機的,這好處是你會引入最多的隨機性,所以你可以想像成系統走向最優解的過程是類似布朗運動,大方向是往local min走,但是整個過程是搖搖晃晃的,如同醉漢走路,所以你比較有機會探索到較大的空間,這就是隨機梯度下降法,SGD。 事實上在沒有GPU的時代,大家都是用SGD的,但是GPU出來以後,為了盡可能利用GPU的優勢,大家才開始引入mini batch GD,犧牲掉一些隨機性換取效率。 至於batch size該用多少?目前的文獻大致的說法是,在訓練初期最好選擇2-32之間,透過較大的隨機性,讓系統盡可能搜索較大的空間,等系統開始傾向收斂,我們就不希望隨機性這麼大,免得模型又跳出去,變得很難收斂,所以會把batch size調大,降低隨機性,從數百到一兩千都是可接受的,看你的數據量而定。 其實透過隨機性來增加模型的泛化能力是深度學習裡常見的做法,例如添加noise layer,例如dropout,甚至引入L1, L2正規化某方面也可視為引入噪音,SGD自然也是在這個體系下的做法之一。 但說歸說,在真的數據量大的時候,為了加速訓練,在訓練初期就把batch size用上好幾千的文獻也不少,只是這樣做通常需要搭配其他精巧的設計來避免上述問題。 ----- Sent from JPTT on my Asus ASUS_Z017DA. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 67.161.8.79 ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1543717965.A.62A.html

12/02 12:29, 5年前 , 1F
長知識
12/02 12:29, 1F

12/02 13:17, 5年前 , 2F
推比喻
12/02 13:17, 2F

12/02 13:33, 5年前 , 3F
12/02 13:33, 3F

12/02 15:26, 5年前 , 4F
L1, L2 regularization跟引入noise的關係該怎麼理解?
12/02 15:26, 4F

12/02 15:28, 5年前 , 5F
我的理解是 regularization可以使得學習的機制分散在各
12/02 15:28, 5F

12/02 15:29, 5年前 , 6F
neuron 不會押寶特定neuron 所以不容易被noise影響
12/02 15:29, 6F

12/03 01:58, 5年前 , 7F
12/03 01:58, 7F

12/10 02:11, 5年前 , 8F
優文 推
12/10 02:11, 8F

12/10 23:38, 5年前 , 9F
12/10 23:38, 9F

12/14 11:15, 5年前 , 10F
local min會很容易遇到嗎?之前聽過一個說法是在high dimen-
12/14 11:15, 10F

12/14 11:16, 5年前 , 11F
sion下,要遇到local min的機率好像不高
12/14 11:16, 11F

12/15 16:59, 5年前 , 12F
@kiazo,如果這個說法成立,意味著高維問題就不用處理過擬
12/15 16:59, 12F

12/15 17:00, 5年前 , 13F
合了,我想簡單的試試看幾個數據集就知道答案了.
12/15 17:00, 13F

12/15 17:06, 5年前 , 14F
非凸優化為何可行還是個謎,說法太多,很多說法聽聽就好.
12/15 17:06, 14F

12/15 17:07, 5年前 , 15F
但對於訓練初期不要使用大batch,我認為學界應該算有共識.
12/15 17:07, 15F

08/22 18:51, 5年前 , 16F
08/22 18:51, 16F
文章代碼(AID): #1S0qHDOg (DataScience)
文章代碼(AID): #1S0qHDOg (DataScience)