1. 程式人生 > >深度學習之GoogLeNet解讀

深度學習之GoogLeNet解讀

提出背景

 始於LeNet-5,一個有著標準的堆疊式卷積層冰帶有一個或多個全連線層的結構的卷積神經網路。通常使用dropout來針對過擬合問題。
 為了提出一個更深的網路,GoogLeNet做到了22層,利用inception結構,這個結構很好地利用了網路中的計算資源,並且在不增加計算負載的情況下,增加網路的寬度和深度。同時,為了優化網路質量,採用了Hebbian原理和多尺度處理。GoogLeNet在分類和檢測上都取得了不錯的效果。
 最近深度學習的發展,大多來源於新的想法,演算法以及網路結構的改善,而不是依賴於硬體,新的資料集,更深的網路,並且深度學習的研究不應該完全專注於精確度的問題上,而更應該關注與網路結構的改善方面的工作。

相關工作

 GoogLeNet參考Robust object recognition with cortex-like mechanisms.中利用固定的多個Gabor濾波器來進行多尺度處理的方法,對inception結構中的所有濾波器都進行學習,並運用至整個22層網路。
 GoogLeNet參考Network in network.中對1x1卷積的使用來增加網路深度的做法,GoogLeNet也利用了1x1卷積來進行降維和限制網路尺寸的作用。
 GoogLeNet參考Rich feature hierarchies for accurate object detection and semantic segmentation.即R-CNN將整個檢測任務分為兩個子問題的做法,即首先利用底層特徵如顏色,文字等來進行提取與類別無關的proposals,然後將這些proposals放入CNN中進行訓練來確定類別資訊的做法。GoogLeNet也借鑑這種方式,並對兩個階段都進行了改進,第一個階段使用多邊框預測,第二個階段則是使用更好的CNN網路結構。

基本思想及過程

 GoogLeNet提出最直接提升深度神經網路的方法就是增加網路的尺寸,包括寬度和深度。深度也就是網路中的層數,寬度指每層中所用到的神經元的個數。但是這種簡單直接的解決方式存在的兩個重大的缺點。
(1) 網路尺寸的增加也意味著引數的增加,也就使得網路更加容易過擬合
(2) 計算資源的增加。
 因此想到將全連線的方式改為稀疏連線來解決這兩個問題。由Provable bounds for learning some deep representations.提到資料集的概率分佈由大又稀疏的深度神經網路表達時,網路拓撲結構可由逐層分析與輸出高度相關的上一層的啟用值和聚類神經元的相關統計資訊來優化。但是這有非常多的限制條件。因此提出運用Hebbian原理

,它可以使得上述想法在少量限制條件下就變得實際可行。
 通常全連線是為了更好的優化平行計算,而稀疏連線是為了打破對稱來改善學習,傳統常常利用卷積來利用空間域上的稀疏性,但卷積在網路的早期層中的與patches的連線也是稠密連線,因此考慮到能不能在濾波器層面上利用稀疏性,而不是神經元上。但是在非均勻稀疏資料結構上進行數值計算效率很低,並且查詢和快取未定義的開銷很大,而且對計算的基礎設施要求過高,因此考慮到將稀疏矩陣聚類成相對稠密子空間來傾向於對稀疏矩陣的計算優化。因此提出了inception結構。

這裡寫圖片描述

 inception結構的主要思想在於卷積視覺網路中一個優化的區域性稀疏結構怎麼樣能由一系列易獲得的稠密子結構來近似和覆蓋。上面提到網路拓撲結構是由逐層分析上一層的相關統計資訊並聚集到一個高度相關的單元組中,這些簇(單元組)表達下一層的單元(神經元)並與之前的單元相連線,而靠近輸入影象的底層相關的單元在一塊區域性區域聚集,這就意味著我們可以在一塊單一區域上聚集簇來結尾,並且他們能在下一層由一層1x1的卷積層覆蓋,也即利用更少的數量在更大空間擴散的簇可由更大patches上的卷積來覆蓋,也將減少越來越大的區域上patches的數量。
 為了避免patch對齊問題,因此限制了inception結構中濾波器的大小為1x1,3x3,5x5。由於inception結構中都是互相堆疊的,因此輸出相關統計資訊一定不同:為了在高層能提取更抽象的特徵,就要減少其空間聚集性,因此通過增加高層inception結構中的3x3,5x5卷積數量,捕獲更大面積的特徵。
 在上述inception結構中,由於濾波器數量的增加,加上池化操作使得5x5大小的濾波器的計算開銷非常大,池化層輸出與卷積層輸出的合併增加了輸出值的數量,並且可能覆蓋優化稀疏結構,處理十分低效,引起計算爆炸。因此引出下面這個inception結構。
這裡寫圖片描述

 inception結構中有很多巢狀,低維巢狀包含了大量的圖片patch資訊,且這種巢狀表達了一個稠密且壓縮的資訊的形式,但我們想要表達的更加稀疏,並且只在大量聚集的時候才對訊號進行壓縮,因此考慮利用在3x3和5x5卷積操作前進行1x1卷積來進行降維處理,1x1不僅降維,而且還引入了ReLU非線性啟用。實際發現,只在高層中使用inception結構對整個網路更加有利。
 inception結構的好處在於在沒有計算複雜度不受控制的計算爆炸時,可以增加每個階段的單元個數,也就是網路的寬度,當然還有深度;同時這種結構也類似於影象中多尺度處理之後將處理結果聚集在一起以便於下一個階段能同時提取不同尺寸下的特徵。
 由於稀疏結構的計算量大的問題,所以採用1x1的卷積來減少引數的計算,其中1x1 卷積解釋為:
在3x3和5x5層前,各自增加一個1x1的卷積操作。1x1的卷積(或者網路層中的網路),提供了一個減少維度的方法。比如,我們假設你擁有一個輸入層,體積是100x100x60(這並不定是影象的三個維度,只是網路中每一層的輸入)。增加20個1x1的卷積濾波器,會讓你把輸入的體積減小到100x100x20。這意味著,3x3層和5x5層不需要處理輸入層那麼大的體積。這可以被認為是“池特徵”(pooling of feature),因為我們正在減少體積的高度,這和使用常用的最大池化層(maxpooling layers)減少寬度和長度類似。另一個需要注意的是,這些1x1的卷積層後面跟著的是ReLU 單元,這肯定不會有害。
 有了上面的這種結構形式,叫inception:這個inception模型由一個網路層中的網路、一箇中等大小的過濾卷積、一個大型的過濾卷積、一個操作池(pooling operation)組成。網路卷積層中的網路能夠提取輸入體積中的每一個細節中的資訊,同時5x5的濾波器也能夠覆蓋大部分接受層的的輸入,進而能提起其中的資訊。你也可以進行一個池操作,以減少空間大小,降低過度擬合。在這些層之上,你在每一個卷積層後都有一個ReLU,這能改進網路的非線性特徵。基本上,網路在執行這些基本的功能時,還能同時考慮計算的能力。這篇論文還提供了更高級別的推理,包括的主題有稀疏和緊密聯結。
這裡寫圖片描述

 上圖為GoogLeNet的網路框圖細節,其中“#3x3 reduce”,“#5x5 reduce”代表在3x3,5x5卷積操作之前使用1x1卷積的數量。輸入影象為224x224x3,且都進行了零均值化的預處理操作,所有降維層也都是用了ReLU非線性啟用函式。

這裡寫圖片描述

 如上圖用到了輔助分類器,Inception Net有22層深,除了最後一層的輸出,其中間節點的分類效果也很好。因此在Inception Net中,還使用到了輔助分類節點(auxiliary classifiers),即將中間某一層的輸出用作分類,並按一個較小的權重(0.3)加到最終分類結果中。這樣相當於做了模型融合,同時給網路增加了反向傳播的梯度訊號,也提供了額外的正則化,對於整個Inception Net的訓練很有裨益。
這裡寫圖片描述

相關推薦

深度學習GoogLeNet解讀

提出背景  始於LeNet-5,一個有著標準的堆疊式卷積層冰帶有一個或多個全連線層的結構的卷積神經網路。通常使用dropout來針對過擬合問題。  為了提出一個更深的網路,GoogLeNet做到了22層,利用inception結構,這個結構很好地利用了

深度學習AlexNet解讀

為什麼提出? 提出的背景  目前的目標識別任務基本上全是利用的傳統機器學習的方法,為了提升他們的效能。  由於現實中有成千上萬的可變的圖片,現在帶標籤的資料集相對來說還是太小了,因此簡單的識別任務由於這些資料集的尺寸有限,還是獲得了不

深度學習---yolo,kmeans計算anchor框原始碼解讀

k-means原理 K-means演算法是很典型的基於距離的聚類演算法,採用距離作為相似性的評價指標,即認為兩個物件的距離越近,其相似度就越大。該演算法認為簇是由距離靠近的物件組成的,因此把得到緊湊且獨立的簇作為最終目標。 問題 K-Means演算法主要解決的問題如下圖所示。我們可以看到

深度學習GoogLeNet系列解讀 —— Inception v4

目錄 GoogLeNet系列解讀 Inception v1 Inception v2 Inception v3 Inception v4 簡介 在介紹Inception v4之前,首先說明一下Inception v4沒有使用殘差學習的思想。大部分小夥伴對Inc

深度學習GoogLeNet系列解讀 —— Inception v3

目錄 GoogLeNet系列解讀 Inception v1 Inception v2 Inception v3 Inception v4 Inception v3 Inception v3整體上採用了Inception v2的網路結構,並在優化演算法、正則化等

深度學習GoogLeNet系列解讀 —— Inception v2

目錄 GoogLeNet系列解讀 Inception v1 Inception v2 Inception v3 Inception v4 簡介 GoogLeNet憑藉其優秀的表現,得到了很多研究人員的學習和使用,因此Google又對其進行了改進,產生了Goog

深度學習影象分類模型AlexNet解讀

版權宣告:本文為博主原創文章 https://blog.csdn.net/sunbaigui/article/details/39938097 在imagenet上的影象分類challenge上Alex提出的alexnet網路結構模型贏得了2012屆的冠軍。要研究CNN型別

[caffe]深度學習MSRA影象分類模型Deep Residual Network(深度殘差網路)解讀

一、簡介         MSRA的深度殘差網路在2015年ImageNet和COCO如下共5個領域取得第一名:ImageNet recognition, ImageNet detection, ImageNet localization, COCO detection,

[caffe]深度學習影象分類模型VGG解讀

一、簡介 vgg和googlenet是2014年imagenet競賽的雙雄,這兩類模型結構有一個共同特點是go deeper。跟googlenet不同的是,vgg繼承了lenet以及alexnet的一些框架,尤其是跟alexnet框架非常像,vgg也是5個group的卷積、

論文筆記---深度學習VGG模型解讀

———————————————————————————————————————————————優雅的分割線 如今深度學習發展火熱,但很多優秀的文章都是基於經典文章,經典文章中的一句一詞都值得推敲和分析。此外,深度學習雖然一直被人詬病缺乏足夠令人信服的理論,但不代表我們不

[深度學習CNN] CNN的發展史 LeNet、AlexNet、GoogLeNet、VGG、ResNet

CNN的發展史        上一篇回顧講的是2006年Hinton他們的Science Paper,當時提到,2006年雖然Deep Learning的概念被提出來了,但是學術界的大家還是表示不服。當時有流傳的段子是Hinton的學生在臺上講paper時,臺下的機器學習大牛們不屑一顧,質問你們的東西有理

深度學習解讀VGGNet

為什麼提出 提出的背景  提出目的即為了探究在大規模影象識別任務中,卷積網路深度對模型精確度有何影響。  這個網路的結構用的都是特別小的3x3的卷積模版(stride:1,padding:1),以及5個2x2的池化層(stride:2),

深度學習收斂問題

bat 模擬 訓練 gin i-o 都是 wid 分類 number http://blog.csdn.net/xlbryant/article/details/48470987 1.數據庫太小一般不會帶來不收斂的問題,只要你一直在train總會收斂(rp問題跑飛了不算)。

1.深度學習安裝教程

步驟 install sta tensor lib64 libc 鏈接 lib flow 在centos5下安裝TensorFlow。 步驟: 1.安裝python3.5 2.安裝pip3,同時建立軟鏈接。 3.安裝TensorFlow,pip install --upgr

深度學習tensorflow (一)

spa 計算 put range mst reduce logs 分析 pen 一、TensorFlow簡介 1.TensorFlow定義: tensor :張量,N維數組 Flow : 流,基於數據流圖的計算 TensorFlow : 張量從圖像

深度學習 seq2seq 進行 英文到法文的翻譯

enc super load mark ext pre res drop zeros 深度學習之 seq2seq 進行 英文到法文的翻譯 import os import torch import random source_path = "data/small

深度學習圖片壓縮算法

深度學習、圖片壓縮近年來,深度學習在計算機視覺領域已經占據主導地位,不論是在圖像識別還是超分辨重現上,深度學習已成為圖片研究的重要技術;現在深度學習技術已進入圖片壓縮領域。以圖鴨科技最新研發的圖片壓縮——Tiny Network Graphics (TNG) 為例,其以深度學習卷積神經網絡為內核,在保持相同圖

Tensorflow深度學習十二:基礎圖像處理

fcm 數字 ssi port con tty .net term file Tensorflow深度學習之十二:基礎圖像處理之二 from:https://blog.csdn.net/davincil/article/details/76598474 首先放出

深度學習 GRU 算法例子

深度學習 GRU 算法 例子首先下載代碼:https://github.com/whk6688/rnn 例子1:預測下文 private void train(CharText ctext, double lr) { Map<Integer, String> indexChar

深度學習 TensorFlow(四):卷積神經網絡

padding valid 叠代 val 分析 此外 nbsp drop BE 基礎概念:   卷積神經網絡(CNN):屬於人工神經網絡的一種,它的權值共享的網絡結構顯著降低了模型的復雜度,減少了權值的數量。卷積神經網絡不像傳統的識別算法一樣,需要對數據進行特征提取和數據重