【卷積神經網絡】04-1VGG網絡結構詳解與原理分析

2021-03-06 AI與區塊鏈技術

VGG將所有的卷積核都換成了3×3,極個別使用1×1。

我們要考慮這三個問題:

1、首先我們來看第一個問題,能不能換?

我們看最初的兩個卷積神經網絡LeNet和AlexNet,他們都是將一個n×n×c的圖像最終變成了1×1×k的矩陣。其中n表示的是輸入圖像的尺寸(行與列),c表示圖像的通道數(深度),取值為1或3,k表示的是最終分類的個數。

也就是說我們可以把卷積神經網絡的操作理解為:通過一系列操作,將一個圖像的像素數據經過運算得到不同類別的分數(置信度)。我們只要能得到正確的分類分數即可,具體的操作細節,可以有所調整。所以說,我們是可以更換卷積核的大小的。

2、知道可以換,怎麼換呢?

既然要達到上面的要求,我們就可以改動參數層,即卷積層和全連接層,卷積層的主要目的是提取特徵,全連接層的主要目的是特徵融合。卷積層一般都會跟著激活層,使得模型可以非線性分類;幾個卷積層後面會跟著池化層,為了降低算法的運算量。

所有我們可以基於上面的去進行改動參數層,然後要保證,卷積操作要能夠遍歷到所有的像素,運算不能越界。這樣我們就可以對網絡進行修改。

3、那為什麼要換呢?

既然要換,肯定是因為換完之後,能夠帶來好處。

首先好處就是小卷積核參數量更少,論文中提到,兩個3×3的卷積核就可以替換一個5×5的卷積核,兩個3×3的卷積核,如果深度為d,那麼參數的個數就為2*3*3*d = 18d,但一個5×5的卷積核的參數為5*5*d = 25d,參數減少了將近1/3。我們也可以推導出,按照這種替換方式,越小的卷積核,卷積參數數量就越少,卷積運算就越少。1×1無法獲取上下文像素的聯繫,也就沒法很好地提取特徵,所以就幾乎全方面使用3×3代替。在配置C中,採用了一些1×1的卷積核,後面我們會專門講1×1卷積核的作用。

其次,使用小卷積核代替大卷積核,可以引入更多非線性,分類效果更好。比如一個5×5的卷積核,只進行一次非線性變換,而兩個3×3的卷積核,則經過兩次非線性變換。

其次一個好處,大家看後面的內容會發現,VGGNet的結構非常簡潔,整個網絡都使用了同樣大小的卷積核尺寸,這樣我們就可以讓定義的模型更加規範化,也可以將卷積神經網絡更加模塊化。這在我們以後的代碼中也會體現出來。

相關焦點

  • VGG網絡詳解
    在卷積神經網絡中,決定某一層輸出結果中一個元素所對應的輸入層的區域大小,被稱為感受野(receptive field)。通俗的解釋是,輸出feature map上的一個單元對應輸入層上的區域大小。下面使用深度學習框架pytorch搭建VGG網絡,IDE環境為Pycharm2020.2.3,Pytorch1.7.1,python3.6.8。
  • 卷積神經網絡概念與原理
    近年來卷積神經網絡在多個方向持續發力,在語音識別、人臉識別、通用物體識別、運動分析、自然語言處理甚至腦電波分析方面均有突破。       卷積神經網絡與普通神經網絡的區別在於,卷積神經網絡包含了一個由卷積層和子採樣層構成的特徵抽取器。在卷積神經網絡的卷積層中,一個神經元只與部分鄰層神經元連接。
  • 圖像分類-卷積網絡閱讀筆記(二)VGG
    ,主要的貢獻是通過使用具有非常小的卷積核的網絡結構以增加網絡的深度,當權值層增加到16-19層使網絡的性能有了明顯的提升。1. Introduction隨著卷積神經網絡在計算機視覺領域越來越通用,為取得更好的精度,已經有很多人嘗試改變AlexNet原始的結構,例如在第一個卷積層中使用更小的感受窗口和更小的步長。
  • CNN卷積神經網絡層級結構
    在傳統的神經網絡中,比如多層感知機(MLP),其輸入通常是一個特徵向量:需要人工設計特徵,然後將這些特徵計算的值組成特徵向量,在過去幾十年的經驗來看,人工找到的特徵並不是怎麼好用,特徵有時多了(需要PCA降維),特徵有時少了(容易過擬合),有時選擇的特徵根本就不起作用(真正起作用的特徵在浩瀚的未知裡面)。這就是為什麼在過去卷積神經網絡一直被SVM等完虐的原因。
  • 深度學習、圖像分類入門,從VGG16卷積神經網絡開始
    ,不知道從何入手,我覺得應該有一個進階的過程,也就是說,理應有一些基本概念作為奠基石,讓你有底氣去完全理解一個龐大的卷積神經網絡:本文思路:一、我認為學習卷積神經網絡必須知道的幾個概念:1、卷積過程:  我們經常說卷積神經網絡卷積神經網絡,到底什麼才是卷積?網絡層卷積過程到底怎麼實現?
  • 卷積神經網絡CNN:卷積的來源和原理
    卷積神經網絡(Convolutional Neural Network,簡稱為CNN或ConvNet)是一種具有
  • TensorFlowNews五大經典卷積神經網絡介紹:LeNet / AlexNet / GoogLeNet / VGGNet/
    前言:這個系列文章將會從經典的卷積神經網絡歷史開始,然後逐個講解卷積神經網絡結構,代碼實現和優化方向。(以下內容來翻譯自史丹福大學課程:http://cs231n.github.io/convolutional-networks/)在卷積網絡領域有幾個有名字的體系結構。
  • CNN卷積神經網絡— LeNet(二)
    一般神經網絡VS卷積神經網絡:相同點:卷積神經網絡也使用一種反向傳播算法(BP)來進行訓練不同點:網絡結構不同。卷積神經網絡的網絡連接具有局部連接、參數共享的特點。局部連接:是相對於普通神經網絡的全連接而言的,是指這一層的某個節點只與上一層的部分節點相連。參數共享:是指一層中多個節點的連接共享相同的一組參數。
  • VGG:使用基礎卷積塊的網絡
    雖然AlexNet指明了深度卷積神經網絡有出色的表現,但並沒有提供簡單的規則以指導後來的研究者如何設計新的網絡。VGG網絡是Oxford的Visual Geometry Group組提出的,VGG網絡是實驗室名字的縮寫。
  • 卷積神經網絡學習路線(五)| 卷積神經網絡參數設置,提高泛化能力?
    很多情況下我們拿到手的數據都存在類別不均勻的情況,模型這個時候過多的擬合某類數量多的數據導致其輸出結果偏向於該類數據,此時如果我們過採樣其他類別的數據,使得數據量比較均衡可以一定程度提高泛化能力。數據增強。數據增強是指在數據有限的情況通過一些幾何操作對圖像進行變換,使得同類數據的表現形式更加豐富,以此提高模型的泛化能力。
  • 卷積神經網絡學習路線(八)| 經典網絡回顧之ZFNet和VGGNet
    開篇的這張圖代表ILSVRC歷年的Top-5錯誤率,我會按照以上經典網絡出現的時間順序對他們進行介紹,同時穿插一些其他的經典CNN網絡。前言這是卷積神經網絡學習路線的第八篇文章,我們來回顧一下經典網絡中的ZF-Net和VGGNet。
  • 卷積神經網絡(CNN,ConvNet)及其原理詳解
    卷積神經網絡(CNN,有時被稱為 ConvNet)是很吸引人的。
  • 【深度學習系列】卷積神經網絡詳解(二)——自己手寫一個卷積神經網絡
    博客專欄:https://www.cnblogs.com/charlotte77/前文傳送門:【好書推薦&學習階段】三個月教你從零入門深度學習【深度學習系列】PaddlePaddle之手寫數字識別【深度學習系列】卷積神經網絡CNN原理詳解(一)——基本原理上篇文章中我們講解了卷積神經網絡的基本原理,包括幾個基本層的定義
  • 論文推薦 | 謝志文:城市擴展元胞自動機多結構卷積神經網絡模型
    武漢大學地理信息系統教育部重點實驗室, 湖北 武漢 430079收稿日期:2019-04-22;修回日期:2019-10-21基金項目:國家自然科學基金(41571384)第一作者簡介:謝志文(1995—), 男, 碩士生, 研究方向為複雜地理時空過程分析和模擬, 深度學習。
  • 【深度學習系列】卷積神經網絡CNN原理詳解(一)——基本原理
    有的同學表示不是很理解原理,為什麼傳統的機器學習算法,簡單的神經網絡(如多層感知機)都可以識別手寫數字,我們要採用卷積神經網絡CNN來進行別呢?CNN到底是怎麼識別的?用CNN有哪些優勢呢?我們下面就來簡單分析一下。在講CNN之前,為避免完全零基礎的人看不懂後面的講解,我們先簡單回顧一下傳統的神經網絡的基本知識。
  • 卷積神經網絡之 - VGGNet
    Networks for Large-Scale Image Recognition》論文中,作者給出了 6 個 VGG 模型,對應不同的網絡結構和深度,具體結構如下:不同的網絡結構這樣的連接方式使得網絡參數量更小,而且多層的激活函數令網絡對特徵的學習能力更強。多個 3*3 的卷積核比一個較大尺寸的卷積核有更多層的非線性函數,增加了非線性表達,使判決函數更具有判決性。結合 1×1 卷積層是增加決策函數非線性而不影響卷積層感受野的一種方式。訓練設置:批量大小設為 256,動量為 0.9。
  • 卷積神經網絡 AlexNet
    1.介紹LeNet 是最早推動深度學習領域發展的卷積神經網絡之一。這項由 Yann LeCun 完成的開創性工作自 1988 年以來多次成功迭代之後被命名為 LeNet5。AlexNet 可以說是具有歷史意義的一個網絡結構,在此之前,深度學習已經沉寂了很長時間,自 2012 年 AlexNet 誕生之後,後面的 ImageNet 冠軍都是用卷積神經網絡(CNN)來做的,並且層次越來越深,使得CNN成為在圖像識別分類的核心算法模型,帶來了深度學習的大爆發。本文將詳細講解 AlexNet 模型及其使用 Keras 實現過程。開始之前,先介紹一下卷積神經網絡。
  • 卷積神經網絡數學原理解析
    事實上,我們每天都在使用計算機視覺——當我們用面部解鎖手機或在社交媒體上發照片前使用自動修圖。卷積神經網絡可能是這一巨大成功背後最關鍵的構建模塊。這一次,我們將加深理解神經網絡如何工作於CNNs。出於建議,這篇文章將包括相當複雜的數學方程,如果你不習慣線性代數和微分,請不要氣餒。我的目標不是讓你們記住這些公式,而是讓你們對下面發生的事情有一個直觀的認識。
  • CNN(卷積神經網絡)、RNN(循環神經網絡)、DNN(深度神經網絡)的內部網絡結構有什麼區別?
    這裡的「深度」並沒有固定的定義——在語音識別中4層網絡就能夠被認為是「較深的」,而在圖像識別中20層以上的網絡屢見不鮮。為了克服梯度消失,ReLU、maxout等傳輸函數代替了sigmoid,形成了如今DNN的基本形式。單從結構上來說,全連接的DNN和圖1的多層感知機是沒有任何區別的。
  • 了解卷積神經網絡的原理與基本結構
    受Hubel和Wiesel對貓視覺皮層電生理研究啟發,有人提出卷積神經網絡(CNN),Yann Lecun 最早將CNN用於手寫數字識別並一直保持了其在該問題的霸主地位。近年來卷積神經網絡在多個方向持續發力,在語音識別、人臉識別、通用物體識別、運動分析、自然語言處理甚至腦電波分析方面均有突破。