有誰能講解下《Going deeper with convolutions》這篇論文?
01-21
有誰能解釋下《Going deeper with convolutions》這篇論文裡面的Inception module為什麼能在增加網路寬度和深度的情況下保持較低的計算複雜度?
正如文章中所寫,增加網路寬度的好處,來源於不同尺度的卷積核並聯,從而實現了對multi-scale特徵的利用,也就是文章中Figure 2(a),給出的inception module的結構。但是較大尺度卷積核的使用,會帶來網路規模以及計算量的增加。這裡作者提出了採用小卷積核和大卷積核級聯的方法,來壓縮模型的參數量,也就是文中的Figure 2(b)。
按文章中Figure 3所示的網路結構,我們可以算一下:對於一張224*224*3的圖片,過完前三層公用的卷積(7*7-1*1-3*3)之後,feature map的大小是28*28*192。這時如果直接使用128個3*3的卷積核,那麼需要(3*3*192*128)個parameter,而如果按文中所述先用1*1的卷積核把feature map的第三維維數先降下來,再用3*3的卷積,這樣模型的規模就可以小很多,文中用了96個1*1+128個3*3的卷積核級聯,這時parameter的數目變成了(1*1*192*96+3*3*96*128),幾乎只是原來的一半。同理對5*5的卷積,文中用16個1*1+32個5*5卷積核級聯,代替直接使用32個5*5卷積核,parameter數目從(5*5*192*32)下降到(1*1*192*16+5*5*16*32)。後面每層也依次類推。n*m &> n*p + p*m if p &<&< n, m.googlenet的構造在原本n通道和m通道的兩層間加入了一個p通道的層。這個做法不僅降低了參數量和計算量並且符合神經學的Hebbian principle,所以在效果上也有不小的提升。我認為google的inception layer之所以有用一是因為Hebbian principle,二是對圖像尺度的考慮。
其實關於這篇論文一開始我是沒看懂的,後來看了GoogleNet的開源實現有就豁然開朗了。
caffe/train_val.prototxt at master · BVLC/caffe · GitHub
博主我想知道網路寬度和深度指得是什麼?
推薦閱讀:
※壓縮感知和矩陣分解的異同?
※Factor graph 模型的前提知識有哪些?
※如果想去南大周志華教授那裡讀研,應該如何準備呢?
※AIC, BIC 和 L1,L2 等正則化有什麼區別?
※IBM Watson 實習環境如何?
TAG:機器學習 | 計算機視覺 | 神經網路 | 深度學習DeepLearning |