說完,成文飛重新看向白板。
白板左側寫著“語音識別”,右側則是何愷明剛剛畫出的網路結構。
十幾層卷積模組一層層往上疊,訓練曲線卻在十五層以後開始下滑。
成文飛指著曲線:“我的模型加深到十五層以後,訓練集準確率不升反降。ReLU、BN、Dropout都用上了,還是解決不了。”
“深度網路不是越深越好。”何愷明說。
“這話已經聽過很多次了。”
“但是問題不一定出在深度本身。”
何愷明拿起筆,在白板上寫下一個H。
“傳統網路每一組卷積層,都在學習完整變換H(x)。輸入是x,輸出目標是H(x)。如果網路繼續加深,後面的層就必須重新學習一套完整特徵。”
成文飛看著公式,沒有打斷。
何愷明又在旁邊寫下:
F(x)=H(x)-x
“那我們換一個目標,不讓這幾層直接學習H(x),只學習殘差F(x),最後輸出F(x)+x。”
“加一條捷徑。”成文飛說。
“對。”何愷明在圖上畫了一條從輸入繞到輸出的線,“原始輸入x不再被迫經過所有卷積層,而是直接跨過去,和卷積模組的輸出相加。”
成文飛盯著那條線:“這會破壞特徵提取鏈路。”
“成教授,我們做個思想實驗。”何愷明轉過身,“一個二十層網路已經能工作,我在後面再加三十六層。如果這三十六層什麼都不做,只把輸入原樣傳下去,那麼五十六層網路至少不應該比二十層更差。”
“但是直接堆疊以後,它反而會變差。”
“這說明網路很難學會恆等對映。殘差結構把最簡單的答案直接留給它。如果新增層沒有價值,就把F(x)學成零,原始訊號直接透過。新增層有價值,就只補充需要修正的特徵。”
成文飛看著白板,許久沒有說話。
他過去的認知很明確,神經網路每一層都應當完成一次特徵提取,資訊必須經過連續變換才能逐層抽象。
讓輸入跨過中間層,在他看來像是給網路偷懶。
“這在前向傳播上說得通。”成文飛拿起筆,“但反向傳播呢?梯度經過加法結構,會不會出現新的不穩定?”
“我也在算這個。”
何愷明把白板擦出一塊空白,寫下損失函式和輸出表達式。
“假設y=F(x)+x,反向傳播時,損失對x的梯度不只經過F這一條路徑,還會多一條直接傳遞的路徑。只要加法結構沒有被破壞,梯度就能沿著捷徑回到淺層。”
成文飛接過筆,在公式旁邊補了一行。
兩個人很快投入推導。
。來過了圍也員究研的邊旁,音聲的板白過劃尖筆下剩只裡室驗實
。式示表改修斷不明愷何,題問出提斷不飛文
。筆下放飛文,後時小個一
”。答回會料資次一跑,適普是不是它斷判別先,授教“
”。驗實備準,好那“,圖構結的上板白著看飛文
”?在現“
”。在現“
”。註標全完沒還料語“








