# VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 論文筆記 [論文PDF](https://arxiv.org/pdf/1409.1556.pdf) [Submitted on 4 Sep 2014 (v1), last revised 10 Apr 2015 (this version, v6)] [Karen Simonyan](https://arxiv.org/search/cs?searchtype=author&query=Simonyan%2C+K), [Andrew Zisserman](https://arxiv.org/search/cs?searchtype=author&query=Zisserman%2C+A) 被引用 45894 次 ### ABSTRACT 在這篇文章中我們研究 convolutional network depth 在辨別大圖項數據集的效果。 * 發現使用小的 3x3卷積核,用在深度在16-19的網路上,對比現有技術有顯著的提升。 * 我們對 localisation 和 classification 很有把握 * 我們公開了做得最好的兩個 ConvNet ,促進 deep visual representations in computer vision * object localization:辨認物體並框出圖片中的物體位置 示意圖: ![](https://i.imgur.com/2MS7qto.jpg) ### 介紹 ConvNets 最近在 large-scale 圖片和影像上取得成功,是因為大量的公開影像資料還有好的計算系統(e.g.GPU) * ILSVRC: ImageNet Large-Scale Visual Recognition Challenge * ILSVRC 被視為是從 high-dimensional shallow feature encodings 到 deep ConvNets 的測試平台 自從 ConvNet 被視為是有用的東西,大家都想要改善原始 [Krizhevsky el al](https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf) 的架構,舉例來說,在 2013 表現最好的模型,利用了小的 window size 和小的 step ,再來的改善則是 (Sermanet et al 2014) 在這篇論文中,我們定位了另一個重要的架構設計-深度,最後我們調整架構的一些參數,還有增加一些卷積層,因為增加的是小的 3x3 卷積層,所以這樣做是合理的。 結果,我們開始了重大的高準確度的卷積層架構,不僅在 ILSVRC classification and localisation 達到好表現,也在其他只使用部分 relatively simple pipelines(e.g. deep features classified by a linear SVM without fine-tuning)圖像辨識資料集中達到好表現。 ### 2.CONVNET CONFIGURATIONS 為了確保增加深度可以改善準確度,我們要用公平的設定,所以我們的 ConvNet layer 設定都是相同的準則 #### 2.1 ARCHITECTURE input: fixed-size 224 x 224 RGB image filter: 3 x 3 也有使用 1 x 1 filter 可以視為是對輸入進行線性轉換。 FC lauer: 4096 FC lauer: 4096 FC lauer: 1000 1000 就是最後的要的 classification 數,最後一層 layer 是 soft-max layer ,全連接層的設定跟其他網路都一樣。 全部 hidden layer 都是用 RELU ### 3.CLASSIFICATION FRAMEWORK #### 3.1 TRAINING * Training 的細節: * mini-batch gradient descent with momentum * batch size = 256 * mometum = 0.9 * learning = 0.01 * initialisation of the network weights is important * 不然會讓 deep nets 的 gradient 停滯不前 * multi-scale training,scale 過的圖用 S 代表 #### 3.2 TESTING * 前面 rescaled 的圖片在測試時也會有 rescaled 的圖片,用 Q 代表 * 但後面可以展示 Q 的比例不一定要跟 S 一樣 * no need to sample multiple crops at test time, which is less efficient as it requires network re-computation for each crop. At same time, using a large set of crops, as doneby Szegedy et al, can lead to improved accuracy. #### IMPLEMENTATION DETAILS 使用 C++ Caffe toolbox, 在單系統中使用多 GPU,在訓練 full-size images at multiple scales 表現很好 ### 4.CLASSIFICATION EXPERIMENTS 使用 ILSVRC-2012 資料集 #### 4.1 SINGLE SCALE EVALUATION ![](https://i.imgur.com/zVwYsaw.png) #### 4.2 MULTI-SCALE EVALUATION ![](https://i.imgur.com/M46mxVK.png) #### 4.3 MULTI-CROP EVALUATION * multi-crop 需要裁減大量圖片,會增加計算負擔 * crop 稍微比 dense evaluation 好一點 ![](https://i.imgur.com/VfqN7M6.png) #### 4.4 CONVNET FUSION * 融合 ![](https://i.imgur.com/li8kf5N.png) #### 4.5 COMPARISION WITH THE STATE OF THE ART * 和目前最好的比較 ![](https://i.imgur.com/FEMEPTZ.png) ### 結論 在這篇論文中展現了非常深的 convolutional networks(up to 19 weight layers)的價值,證實了==深度==對分類的正確性是有幫助的。 也展示出對大範圍的任務和資料集的良好表現,表現得比沒那麼深的模型好,結果再次證實了在視覺上深度的重要性。 --- :::info ### CSDN 用卷积层代替全连接层(具体理解可参考FCN网络,讲的十分详细),这种策略不限制输入图片的大小,最终输出结果是一个w*h*n的score map。其中,w和h与输入图片大小有关,而n与所需类别数相同。而将w*h个值进行sum pool(对每一个channel进行求和),即可得到在某一类上的概率。这种方法叫做dense evaluation。另一种策略就是经常使用的卷积层+全连接层。通过将测试图片缩放到不同大小Q,Q可以不等于S(训练时图片大小)。在Q*Q图片上裁剪出多个S*S的图像块,将这些图像块进行测试,得到多个1*n维的向量。通过对这些向量每一纬求平均,得到在某一类上的概率。这种方法叫做multi-crop。 2.输入为224*224(训练固定输入大小)的时候,VGG网络正常计算(像训练过程那样计算就好),如果对x*y(x>=224,y>=224)图像做dense的时候,可以把VGG网络看成一个“大滤波器”在测试输入图像上“扫”,步长就是offset值。3.在测试阶段,VGG论文中解释dense操作的时候有说到FC层替换成1*1卷积层的操作,有人疑问替换之后n*n*m(n*n是上一层feature map的大小,m是其通道数)卷积核的参数如何确定呢? 其实caffe等框架在实现FC层的时候,往往是直接用n*n*m卷积核来实现的(其实替换之后参数数量上一致、计算过程也一致,二者完全等效。可以思考下这是为什么)。所以,有没有“把卷积出来的feature map平铺成一长列作为FC层”并不重要,重要的是在计算上等价。所以,文中说的替换,其实已经自然实现好了。 作者:刘高亮 链接:https://www.zhihu.com/question/270988169/answer/407731947 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 ::: ###### tags: `uscc論文`