一組圖詮釋CNN及RNN的區別

李博Garvin發表於2017-10-27

CNN和RNN是深度學習中運用最多的兩種深度學習網路結構,可能有些同學還不太清楚這兩種網路的區別,今天剛好看到了一張圖可以比較清楚的解釋CNN及RNN的區別。  


首先,CNN對於輸入資料的維度約束是比較嚴重的,比如用CNN訓練一個影象識別的model,訓練的圖片畫素是48*48的,那麼在預測的時候,也需要把所有的預測圖片轉成48*48。這個約束在影象識別方面可能表現的並不是那麼明顯,人們可以說:大不了預測的時候我做個圖片大小轉換不就得了?我們再思考另一個場景,比如用CNN去做一個智慧問答系統,CNN會需要所有的問答資料都是固定的長度,這就很可怕了,這種模型會讓問答變成對對子,必須每句話長短固定。而RNN沒有這種約束。


另外,RNN更多的考慮了神經元之間的聯絡,比如我們訓練一個翻譯系統,那麼對於一個短語的翻譯一定要考慮前因後果,這就需要模型對於資料輸入的前後因素都要考慮,CNN並不具備這樣的特點。


現在再用一張圖表示CNN和RNN的具體應用:


one to one:表示的是CNN網路的場景,從固定的輸入到固定的輸出

one to many:RNN的場景,序列輸出,有點像看圖說話,例如固定了輸入的圖片,然後輸出一段序列描述這個圖的意義

many to one:RNN的場景,序列輸入,比如我們做語義情感分析,輸入一串不定長度的話,返回情緒

many to many:RNN的場景,常見的sequence to sequence,比如之前的一個文章到的,通過周杰倫的歌詞資料,模仿寫出一首周杰倫風格的歌詞,這種場景的輸入和輸出的長度都是不定的。


作者微信公眾號:凡人機器學習


相關文章