VGG論文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition

VGG論文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition -2015

研究背景

大規模圖像識別的深度卷積神經網絡 VGG(牛津大學視覺幾何組)

認識數據集:ImageNet的大規模圖像識別挑戰賽

LSVRC-2014:ImageNet Large Scale Visual Recoanition Challenge(14年的相關比賽)

相關研究借鑒:

AlexNet ZFNet OverFeat

研究成果

  • ILSVRC定位冠軍,分類亞軍

  • 開源VGG16,VGG19

  • 開啟小卷積核,深度卷積模型時代3*3卷積核成為主流模型

LSVRC: ImageNet Large Scale Visual Recognition Challenge 是李飛飛等人于2010年創辦的圖像識別挑戰賽,自2010起連續舉辦8年,極大地推動計算機視覺發展。

比賽項目涵蓋:圖像分類(Classification)、目標定位(Object localization)、目標檢測(Object detection)、視頻目標檢測(Object detection from video)、場景分類(Scene classification)、場景解析(Scene parsing)

競賽中脫穎而出大量經典模型:
alexnet,vgg,googlenet ,resnet,densenet等

  1. AlexNet:ILSVRC-2012分類冠軍,里程碑的CNN模型
  2. ZFNet:ILSVRC-2013分類冠軍方法,對AlexNet改進
  3. OverFeat:ILSVRC-2013定位冠軍,集分類、定位和檢測于一體的卷積網絡方法(即將全連接層替換為1x1的卷積層)

論文精讀

摘要

In this work we investigate the effect of the convolutional network depth on its accuracy in the large-scale image recognition setting. Our main contribution is a thorough evaluation of networks of increasing depth using an architecture with very small (3×3) convolution filters, which shows that a significant improvement on the prior-art configurations can be achieved by pushing the depth to 16–19 weight layers. These findings were the basis of our ImageNet Challenge 2014 submission, where our team secured the first and the second places in the localisation and classification tracks respectively. We also show that our representations
generalise well to other datasets, where they achieve state-of-the-art results. We have made our two best-performing ConvNet models publicly available to facilitate further research on the use of deep visual representations in computer vision.

摘要進行解讀

  1. 本文主題:在大規模圖像識別任務中,探究卷積網絡深度對分類準確率的影響
  2. 主要工作:研究3*3卷積核增加網絡模型深度的卷積網絡的識別性能,同時將模型加深到16-19層
  3. 本文成績:VGG在ILSVRC-2014獲得了定位任務冠軍和分類任務亞軍
  4. 泛化能力:VGG不僅在ILSVRC獲得好成績,在別的數據集中表現依舊優異
  5. 開源貢獻:開源兩個最優模型,以加速計算機視覺中深度特征表示的進一步研究

快速泛讀論文確定小標題的結構

  1. Introduction
  2. ConvNet Configurations
  • 2.1 Architecture
  • 2.2 Configuratoins
  • 2.3 Discussion
  1. Classification Framework
  • 3.1 Training
  • 3.2Testing
  • 3.3ImplementationDetails
  1. Classification Experiments
  • 4.1 Singlescaleevaluation
  • 4.2 Multi-Scale evaluation
  • 4.3 Multi-Cropevaluation
  • 4.4 ConvNetFusion
  • 4.5 Comparison with the state of the art
  1. Conclusion

在這里插入圖片描述

根據圖表結構:論文中提出了A A-LRN B C D E等五種VGG網絡對應的論文結構。

VGG網絡結構

模型結構

During training, the input to our ConvNets is a fixed-size 224 × 224 RGB image. The only preprocessing we do is subtracting the mean RGB value, computed on the training set, from each pixel.
The image is passed through a stack of convolutional (conv.) layers, where we use filters with a very small receptive field: 3 × 3 (which is the smallest size to capture the notion of left/right, up/down,center). In one of the configurations we also utilise 1 × 1 convolution filters, which can be seen as a linear transformation of the input channels (followed by non-linearity). The convolution stride is fixed to 1 pixel; the spatial padding of conv. layer input is such that the spatial resolution is preserved after convolution, i.e. the padding is 1 pixel for 3 × 3 conv. layers. Spatial pooling is carried out by five max-pooling layers, which follow some of the conv. layers (not all the conv. layers are followed by max-pooling). Max-pooling is performed over a 2 × 2 pixel window, with stride 2.
A stack of convolutional layers (which has a different depth in different architectures) is followed by three Fully-Connected (FC) layers: the first two have 4096 channels each, the third performs 1000- way ILSVRC classification and thus contains 1000 channels (one for each class). The final layer is the soft-max layer. The configuration of the fully connected layers is the same in all networks. All hidden layers are equipped with the rectification (ReLU (Krizhevsky et al., 2012)) non-linearity. We note that none of our networks (except for one) contain Local Response Normalisation (LRN) normalisation (Krizhevsky et al., 2012): as will be shown in Sect. 4, such normalisation does not improve the performance on the ILSVRC dataset, but leads to increased memory consumption and computation time. Where applicable, the parameters for the LRN layer are those of (Krizhevsky et al., 2012).

論文的原文中提到了整個VGG網絡的輸入是224 x 224的RGB三通道的彩色圖片。使用了大小為3x3的卷積核(也嘗試的使用了1x1的卷積核)同時使用了2x2的最大池化,步長為2同時不在使用LRN這種方法

11 weight layers in the network A(8 conv. and 3 FC layers) to 19 weight layers in the network E (16 conv. and 3 FC layers).

VGG11由8個卷積層和3個全連接層組成,VGG19由16個卷積層和3個全連接層組成

整個全連接層與AlexNet相同都是4096 x 4096 x1000,最后通過softmax函數完成1000分類、

整個VGG全部采用3x3的卷積

在這里插入圖片描述
對A(VGG11)的過程和共性進行解讀
在這里插入圖片描述

首先論文中使用的是:224x224x3的一個輸入,我們設置的是3x3的卷積核,論文中的作者進行了padding填充(1)保持經過卷積之后的圖片大小不變。(conv-64)因此經過了第一層的卷積之后,得到了224x224x64的輸出。

而最大池化的步驟2x2且步長為2
F o = ? F in? ? k + 2 p s ? + 1 F_{o}=\left\lfloor\frac{F_{\text {in }}-k+2 p}{s}\right\rfloor+1 Fo?=?sFin???k+2p??+1

按照公式進行計算:
(224-2)/2 +1=112 因此輸出是112x112的大小,在512之前,每次的通道數翻倍。

卷積不改變圖片的大小,池化使得圖片的大小減半,通道數翻倍

共性

  1. 5個maxpool
  2. maxpool后,特征圖通道數翻倍直至512
  3. 3個FC層進行分類輸出
  4. maxpool之間采用多個卷積層堆疊,對特征進行提取和抽象

參數計算

在這里插入圖片描述
說明了網絡的層數變化,對參數的變化影響不大

在這里插入圖片描述
F i × ( K s × K s ) × K n + K n F_{i} \times\left(K_{\mathrm{s}} \times K_{\mathrm{s}}\right) \times K_{n}+K_{n} Fi?×(Ks?×Ks?)×Kn?+Kn?

模型演變

A:11層卷積(VGG11)
A-LRN:基于A增加一個LRN
B:第1,2個block中增加1個卷積33卷積
C:第3,4,5個block分別增加1個1
1卷積
表明增加非線性有益于指標提升
D:第3,4,5個block的11卷積替換為33(VGG16)
E:第3,4,5個block再分別增加1個3*3卷積

其中最為常用的結構就是A中的VGG11和D中的VGG16

VGG的特點

  1. 堆疊3x3的卷積核

增大感受野2個33堆疊等價于1個553個33堆疊等價于1個77
在這里插入圖片描述
增加非線性激活函數,增加特征抽象能力
減少訓練參數
可看成7 * 7卷積核的正則化,強迫7 * 7分解為3 * 3

假設輸入,輸出通道均為C個通道
一個77卷積核所需參數量:7 * 7 C * C=49C2
三個33卷積核所需參數量:3(3 * 3* C *C)=27C2
參數減少比:(49-27)/49~44%

之后的數據處理過程和測試過程的相關的內容,放到之后在進行下一次的解讀,通過這一次主要要理解的是VGG的網絡結構

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16812.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16812.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16812.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

485通訊的自動流量控制詳細介紹

485通訊的自動流量控制(Auto Flow Control)是一種簡化流量控制過程的方法,使通信設備能夠自動調整發送速率,以適應接收端的處理能力。它通過內置的算法或硬件特性來實現,不需要額外的硬件控制信號(如RTS/CT…

el-table的懶加載樹形結構

el-table樹形模式,懶加載的數據保存在multipleTableRef.value.store.states.lazyTreeNodeMap._rawValue multipleTableRef.value.store.states.lazyTreeNodeMap._rawValue默認值為 {} , 也就是沒有屬性的對象,每展開一個節點,如展…

linux系統——nohup后臺運行程序

nohup可以將正在執行程序以后臺掛起形式執行,也即為執行結果不打印到終端 具體使用可以,nohup待執行的命令,可以將執行命令結果輸出到當前目錄的nohup.out文件內 nohup也有其他用法

Linux-Web服務搭建面試題-2

31. 描述在Linux上設置和維護分布式監控系統(如Prometheus和Grafana)的過程。 在Linux上設置和維護分布式監控系統(如Prometheus和Grafana)的過程可以分為以下幾個步驟: 安裝和配置Prometheus: 下載并安裝…

MyCat2之分庫分表

原理 一個數據庫由很多表的構成,每個表對應的不同的業務,垂直切分是指按照業務將表進行分類,分不到不同的數據庫上,這樣壓力就分擔到了不同的庫上面。 數據分片 數據分片包括里:垂直分片和水平分片,垂直分…

安裝依賴報-gyp: No Xcode or CLT version detected!

錯誤 > node-gyp rebuild No receipt for com.apple.pkg.CLTools_Executables found at /. No receipt for com.apple.pkg.DeveloperToolsCLILeo found at /. No receipt for com.apple.pkg.DeveloperToolsCLI found at /. gyp: No Xcode or CLT version detected! gyp ERR!…

【Spark加速】加大hive表在HDFS存的分片文件大小

配置參數: spark.hadoop.hive.exec.orc.default.stripe.size78643200 spark.hadoop.orc.stripe.size78643200 spark.hadoopRDD.targetBytesInPartition78643200 spark.hadoop.hive.exec.dynamic.partition.modenonstrict spark.sql.sources.partitionOverwriteModed…

【wiki知識庫】02.wiki知識庫SpringBoot后端的準備

📝個人主頁:哈__ 期待您的關注 目錄 一、🔥今日目標 二、📂打開SpringBoot項目 2.1 導入所需依賴 2.2修改application.yml配置文件 2.3導入MybatisPlus逆向工程工具 2.4創建一個公用的返回值 2.5創建CopyUtil工具類 2.6創建…

科技與心理學的協同舞蹈

在探討盲人如何利用如“蝙蝠避障”這樣的輔助軟件融入日常生活的同時,我們不得不深入觸及盲人教育心理學的核心,這一領域致力于理解盲人在學習與成長過程中獨特的心理需求與挑戰,以及如何通過教育策略激發他們的潛能,促進全面發展…

前端Vue自定義頂部搜索框:實現熱門搜索與歷史搜索功能

前端Vue自定義頂部搜索框:實現熱門搜索與歷史搜索功能 摘要: 隨著前端開發復雜性的增加,組件化開發成為了提高效率和降低維護成本的有效手段。本文介紹了一個基于Vue的前端自定義頂部搜索框組件,該組件不僅具備基本的搜索功能&am…

powershell腳本批量拉取 git倉庫文件

# 定義基礎URL和數據庫列表 $BASE_URL "http://8.8.11.99:8999/yaya/" $DATABASES "common-service", "bi-system", "erp", "gateway", "pdm", "plm", "public-service", "scm"…

Micro SD封裝是什么?

我們了解客戶對于Micro SD封裝的疑問。在這篇文章中,我們將詳細解釋Micro SD封裝是什么,以及其在存儲領域的技術原理和應用情況,幫助客戶更好地理解這一技術。 1. Micro SD封裝的定義 Micro SD封裝是指一種特定尺寸的存儲芯片封裝方式&#x…

windows 11 23H2更新總是失敗解決過程

頻繁更新失敗的困擾 最近一個月以來 windows 11 系統 23H2 更新總是失敗,更新失敗會撤銷更改: 之后會自動重啟系統,但是重啟進不去系統,屏幕有背光但是不顯示任何內容。 這時候只能長按開機鍵強制關機。每次出現這種情況我都沒辦法遠程連接到…

大規模團隊的數據庫開發,如何用OceanBase工具快速建立企業級賬號體系

前言 為了讓數據庫開發的安全性與可靠性得以充分保障,數據庫開發工具的管控能力顯得尤為關鍵。構建一個健全的賬號體系,能夠協助開發團隊實現對數據庫開發工具的全方位管控,從而有效防范各類數據安全隱患,確保數據庫開發的順利進…

【Python】搭建pypi私倉

1. 下載依賴 pip install pypiserver # 命令安裝 pypiserver 庫 pip install passlib # passlib 包來讀取 Apache htpasswd 文件apt-get install -y apache2-utils2. 生成密碼 使用htpasswd庫在指定路徑/path/to/.pypipasswd生成密碼文件 htpasswd -c /path/to/.pypipasswd …

【開源】租房管理系統 JAVA+Vue+SpringBoot+MySQL

目錄 一、系統介紹 租客屋主模塊 房源信息模塊 租客評價模塊 房源訂單模塊 留言板模塊 二、系統截圖 三、核心代碼 一、系統介紹 基于Vue.js和SpringBoot的租房管理系統,分為管理后臺和用戶網頁端,可以給管理員、租客和屋主角色使用&#xff0c…

大模型應用之基于Langchain的測試用例生成

一 用例生成實踐效果 在組內的日常工作安排中,持續優化測試技術、提高測試效率始終是重點任務。近期,我們在探索實踐使用大模型生成測試用例,期望能夠借助其強大的自然語言處理能力,自動化地生成更全面和高質量的測試用例。 當前…

【cocos creator】進度條控制腳本,支持節點進度條,圖片進度條,進度條組件,和進度文字展示

進度條控制腳本,支持節點進度條,圖片進度條,進度條組件,和進度文字展示 const { ccclass, property, menu } cc._decorator;let text_type cc.Enum({"20%": 0,"1/5": 1,"差值": 2,"自定義…

Django結合Manager重寫create、update、delete方法

想要重寫create、update、delete方法我們先要了解一下其他的知識點 Manager 在Django中,Manager是一個非常核心的概念,它負責與數據庫交互,提供了訪問和管理模型實例(即數據庫中的記錄)的方式。每個Django模型類默認…

jupyter lab怎么使用cmd打開

我一般都是用vscode,或者pycharm的終端打開 但是我為了秉承程序員的素養(就是覺得命令行打開很帥) 我試著去直接用一樣的命令,但是不行,顯示不是內部命令之類的。 是因為沒有配置環境變量。 但是我突然發現&#x…