摘要: 繼Ian Goodfellow的推特小課堂之後,特斯拉的人工智能研究負責人、李飛飛斯坦福高徒Andrej Karpathy也在twitter上分享了他對神經網絡的一些研究技巧。
繼Ian Goodfellow的推特小課堂之後,特斯拉的人工智能研究負責人、李飛飛斯坦福高徒Andrej Karpathy也在twitter上分享了他對神經網絡的一些研究技巧。
昨晚,他連發幾條twitter,細數了六種神經網絡研究中的常見錯誤。引發了一波研究者們對於自己入過坑的吐槽。
image
來看一下Ian Goodfellow讓你當心的這六個坑吧:
最常見的神經網絡錯誤:
沒有先試過所有數據一批處理
忘了爲網絡切換訓練/評估模式
忘了在.backward()之前.zero_grad()(在pytorch中)
將softmaxed輸出傳遞給預期原始logits的損失
使用BatchNorm時,您沒有對線性/ 二維卷積層使用bias = False,或者反過來忘記將其包含在輸出層中。 這個倒不會讓你失敗,但它們是虛假的參數
以爲view()和permute()是一樣的事情(不正確地使用view)
之後,在評論區,也有讀者針對“對數據初始化”展開了討論。
對此,Ian也進一步詳細解釋:
是的,有幾次我重新打開數據,得到的損失值卻一致,而且如果這樣做會產生一個漂亮的損失曲線,這表明對數據初始化並不是明智的做法。我有時喜歡調整最後一層偏差,使之接近基礎分佈。
我喜歡先從最簡單的開始,例如,先對所有未處理的數據進行訓練,看看基本輸出分佈的表現如何,然後逐增加輸入和擴大網絡,確保每次都比以前的表現更好。請添加鏈接描述