TensorFlowNews五大經典卷積神經網絡介紹:LeNet / AlexNet / GoogLeNet / VGGNet/

2021-02-20 磐創AI

前言:這個系列文章將會從經典的卷積神經網絡歷史開始,然後逐個講解卷積神經網絡結構,代碼實現和優化方向。

(以下內容來翻譯自史丹福大學課程:http://cs231n.github.io/convolutional-networks/)

在卷積網絡領域有幾個有名字的體系結構。最常見的是:

卷積神經網絡的第一批成功應用,是由 Yann LeCun 在 20 世紀 90 年代開發的。其中最著名的是用於識別郵政編碼,數字等的LeNet架構。

首先讓卷積神經網絡在計算機視覺中流行的是由 Alex Krizhevsky,Ilya Sutskever 和 Geoff Hinton 開發的 AlexNet。 AlexNet 於 2012 年應用於 ImageNet ILSVRC 挑戰賽,並且明顯超越亞軍(top 5 錯誤率 16%,對比亞軍有 26%)。該卷積神經網絡與 LeNet 具有非常相似的架構,但是更深,更大,並且具有彼此堆疊的卷積層(之前通常一個卷積層總是緊接著池化層)。

GoogLeNet 是 ILSVRC 2014獲獎者,是來自 Google 由 Szegedy 等人開發的卷積網絡。其主要貢獻是開發了一個 Inception 模塊,該模塊大大減少了網絡中的參數數量(4M,與帶有 60M 的 AlexNet 相比)。另外,這個論文在卷積神經網絡的頂部使用平均池化(Average Pooling)而不是完全連接層(Fully Connected layers),從而消除了大量似乎並不重要的參數。 GoogLeNet 還有幾個後續版本,最近的 Inception-v4。

2014 年 ILSVRC 亞軍是來自 Karen Simonyan和 Andrew Zisserman 的卷積神經網絡,被稱為VGGNet。它的主要貢獻在於表明網絡的深度是良好表現的關鍵組成部分。他們最終的最佳網絡包含16個CONV / FC層,並且極具吸引力的是,這個卷積神經網絡具有非常均勻的架構,從開始到結束只執行 3×3 卷積和 2×2 池化。他們的預訓練模型可直接用於 Caffe。 VGGNet 的缺點是花費更大的代加評估和使用更多的內存和參數(140M)。這些參數中的大部分都位於第一個全連接層中,因為發現這些 FC 層可以在不降低性能的情況下被移除,從而大大減少了必要參數的數量。

殘差網絡(ResNet)由 Kaiming He 等開發。它是 ILSVRC 2015的獲勝者。它具有特殊的跳躍連接和大量的使用批量標準化。該體系結構在網絡末端也沒有完全連接層。讀者還可以參考 Kaiming He 的演講(視頻,幻燈片)以及最近在 Torch 中重現這些網絡的實驗。 ResNets 目前是迄今為止最先進的卷積神經網絡模型,並且是實踐中使用卷積神經網絡的默認選擇(截至2016年5月10日)。特別是,還可以看到更多最新的進展,調整了 Kaiming He 等人的原始架構。深度殘差網絡中的 Identity Mappings(2016年3月發布)。

英文原文:

There are several architectures in the field of Convolutional Networks that have a name. The most common are:

LeNet. The first successful applications of Convolutional Networks were developed by Yann LeCun in 1990’s. Of these, the best known is the LeNet architecture that was used to read zip codes, digits, etc.

AlexNet. The first work that popularized Convolutional Networks in Computer Vision was the AlexNet, developed by Alex Krizhevsky, Ilya Sutskever and Geoff Hinton. The AlexNet was submitted to the ImageNet ILSVRC challenge in 2012 and significantly outperformed the second runner-up (top 5 error of 16% compared to runner-up with 26% error). The Network had a very similar architecture to LeNet, but was deeper, bigger, and featured Convolutional Layers stacked on top of each other (previously it was common to only have a single CONV layer always immediately followed by a POOL layer).

GoogLeNet. The ILSVRC 2014 winner was a Convolutional Network from Szegedy et al. from Google. Its main contribution was the development of an Inception Module that dramatically reduced the number of parameters in the network (4M, compared to AlexNet with 60M). Additionally, this paper uses Average Pooling instead of Fully Connected layers at the top of the ConvNet, eliminating a large amount of parameters that do not seem to matter much. There are also several followup versions to the GoogLeNet, most recently Inception-v4.

VGGNet. The runner-up in ILSVRC 2014 was the network from Karen Simonyan and Andrew Zisserman that became known as the VGGNet. Its main contribution was in showing that the depth of the network is a critical component for good performance. Their final best network contains 16 CONV/FC layers and, appealingly, features an extremely homogeneous architecture that only performs 3×3 convolutions and 2×2 pooling from the beginning to the end. Their pretrained model is available for plug and play use in Caffe. A downside of the VGGNet is that it is more expensive to evaluate and uses a lot more memory and parameters (140M). Most of these parameters are in the first fully connected layer, and it was since found that these FC layers can be removed with no performance downgrade, significantly reducing the number of necessary parameters.

ResNet. Residual Network developed by Kaiming He et al. was the winner of ILSVRC 2015. It features special skip connections and a heavy use of batch normalization. The architecture is also missing fully connected layers at the end of the network. The reader is also referred to Kaiming’s presentation (video, slides), and some recent experimens that reproduce these networks in Torch. ResNets are currently by far state of the art Convolutional Neural Network models and are the

default choice for using ConvNets in practice (as of May 10, 2016). In particular, also see more recent developments that tweak the

original architecture from Kaiming He et al. Identity Mappings in

DeepResidual Networks (published March 2016).

經典卷積神經網絡論文下載:

http://www.tensorflownews.com/wp-content/uploads/2018/04/1409.1556.pdf

http://www.tensorflownews.com/wp-content/uploads/2018/04/1512.03385.pdf

深度殘差網絡不同框架的實現:

作者原版

KaimingHe/deep-residual-networks

Deep Residual Learning for Image Recognition

https://github.com/KaimingHe/deep-residual-networks

TensorFlow 版

ry/tensorflow-resnet

ResNet model in TensorFlow

https://github.com/ry/tensorflow-resnet

Keras 版

raghakot/keras-resnet

Residual networks implementation using Keras-1.0 functional API

https://github.com/raghakot/keras-resnet

Torch 版

facebook/fb.resnet.torch

Torch implementation of ResNet from http://arxiv.org/abs/1512.03385 and training scripts

https://github.com/facebook/fb.resnet.torch

下一篇文章將會是 LeNet 卷積神經網絡結構,代碼實現和優化方向。



相關焦點

  • 【深度學習系列】用PaddlePaddle和Tensorflow實現經典CNN網絡GoogLeNet
    ,熟悉Tensorflow,PaddlePaddle等深度學習框架,負責過多個機器學習落地項目,如垃圾評論自動過濾,用戶分級精準營銷,分布式深度學習平臺搭建等,都取了的不錯的效果。博客專欄:https://www.cnblogs.com/charlotte77/前文傳送門:【好書推薦&學習階段】三個月教你從零入門深度學習【深度學習系列】PaddlePaddle之手寫數字識別【深度學習系列】卷積神經網絡CNN原理詳解(一)——基本原理【深度學習系列】PaddlePaddle之數據預處理
  • 用PaddlePaddle 和 Tensorflow 實現經典 CNN 網絡 GoogLeNet
    (本系列所有代碼均在 github:https://github.com/huxiaoman7/PaddlePaddle_code)關於深度網絡的一些思考  在本系列最開始的幾篇文章我們講到了卷積神經網絡,設計的網絡結構也非常簡單,屬於淺層神經網絡,如三層的卷積神經網絡等,但是在層數比較少的時候,有時候效果往往並沒有那麼好,在實驗過程中發現,當我們嘗試增加網絡的層數
  • 乾貨 TensorFlow之深入理解AlexNet
    如何做到能達到那麼好的成績,好的廢話不多說,來開始看文章這張圖是基本的caffe中alexnet的網絡結構,這裡比較抽象,我用caffe的draw_net把alexnet的網絡結構畫出來了(感謝AnaZou指出上面之前的一些問題) paper裡面也指出了這張圖是在兩個GPU下做的,其中和caffe裡面的alexnet可能還真有點差異,但這可能不是重點,各位在使用的時候,直接參考caffe中的alexnet的網絡結果,每一層都十分詳細,基本的結構理解和上面是一致的。
  • 【深度學習系列】用PaddlePaddle和Tensorflow實現經典CNN網絡AlexNet
    【深度學習系列】卷積神經網絡詳解(二)——自己手寫一個卷積神經網絡  【深度學習系列】用PaddlePaddle和Tensorflow進行圖像分類上周我們用PaddlePaddle和Tensorflow實現了圖像分類,分別用自己手寫的一個簡單的CNN網絡simple_cnn和LeNet-5的CNN網絡識別cifar-10數據集。
  • 乾貨 | TensorFlow的55個經典案例
    開發和訓練一個深度神經網絡分類器。https://github.com/tflearn/tflearn/blob/master/examples/images/vgg_network.pyhttps://github.com/tflearn/tflearn/blob/master/examples/images/vgg_network_finetuning.py
  • TensorFlow 實現流行的機器學習算法的教程匯集
    用於分類 MNIST 數據集的一種卷積神經網絡實現: https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_mnist.py卷積網絡(CIFAR-10)。
  • 經典CNN網絡(Lenet、Alexnet、GooleNet、VGG、ResNet、DenseNet)
    殘差網絡做了相加的操作,inception做了串聯的操作圖:inception v1    Googlenet的核心思想是inception,通過不垂直堆砌層的方法得到更深的網絡(我的理解是變寬且視野範圍種類多,vgg及resnet讓網絡變深,inception讓網絡變寬,在同一層整合不同感受野的信息,並讓模型自己選擇卷積核的大小)      這裡黃色的1*1的卷積核是改進googlenet時添加的(最初沒有這種設計),目的是降低輸入層維度,例如50通道的200*200 Feature map 通過20個1*1卷積核後輸出為20通道的200*200 Feature
  • 【乾貨】TensorFlow的55個經典案例
    用於分類 MNIST 數據集的一種卷積神經網絡實現https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_m...卷積網絡(CIFAR-10)。
  • 深度學習筆記16:CNN經典論文研讀之AlexNet及其Tensorflow實現
    AlexNet 繼承了 LeCun 的 Le-Net5 思想,將卷積神經網絡的發展到很寬很深的網絡當中,相較於 Le-Net5 的六萬個參數,AlexNet 包含了 6 億三千萬條連接,6000 萬個參數和 65 萬個神經元,其網絡結構包括 5 層卷積,其中第一、第二和第五層卷積後面連接了最大池化層,然後是 3 個全連接層。
  • 深度學習100+經典模型TensorFlow與Pytorch代碼實現大集合
    傳統機器學習感知器 Perceptron   [TensorFlow 1: GitHub | Nbviewer]https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1
  • 卷積神經網絡的前世今生
    在前述章節的基礎上,本章將主要介紹訓練卷積神經網絡和深度神經網絡的重要方法與技巧,深度神經網絡的遷移學習策略,以及如何訓練深度神經網絡以解決實際問題等內容。作為人工智慧的核心研究內容,以卷積神經網絡(ConvolutionalNeural Networks, CNNs)為代表的深度學習技術已在計算機視覺應用,如智能監控、智慧醫療及機器人自動駕駛等領域取得突破性進展,而這些應用的成功落地很大程度上依賴於視覺識別模塊。結合前文內容,本章將詳細介紹如何構建並利用CNNs 這一功能強大的深度學習模型解決實際的圖像識別問題。
  • 使用tensorflow layers相關API快速構建卷積神經網絡
    微信公眾號:OpenCV學堂關注獲取更多計算機視覺與深度學習知識覺得文章對你有用,請戳底部廣告支持Layers API介紹tf.layers包中包含了CNN卷積神經網絡的大多數層類型,當前封裝支持的層包括:卷積層均值池化層最大池化層扁平層密集層dropout層BN層轉置卷積層我們將基於卷積層、池化層、扁平層與密集層構建一個簡單網絡模型,實現手寫數字識別mnist數據集的訓練。
  • 深度學習筆記14:CNN經典論文研讀之Le-Net5及其Tensorflow實現
    作者:魯偉一個數據科學踐行者的學習日記。
  • 從零開始深度學習第14講:CNN經典論文研讀之Le-Net5及其TensorFlow實現
    從本次筆記開始,筆者在深度學習筆記中會不定期的對 CNN 發展過程中的經典論文進行研讀並推送研讀筆記。今天筆者就和大家一起學習卷積神經網絡和深度學習發展歷史上具有奠基性的經典論文之一的關於 LeNet-5 網絡一文。
  • [原創]#Deep Learning回顧#之LeNet、AlexNet、GoogLeNet、VGG、ResNet
    有三個很重要的原因:大量數據,Deep Learning領域應該感謝李飛飛團隊搞出來如此大的標註數據集合ImageNet;GPU,這種高度並行的計算神器確實助了洪荒之力,沒有神器在手,Alex估計不敢搞太複雜的模型;算法的改進,包括網絡變深、數據增強、ReLU、Dropout等,這個後面後詳細介紹。
  • Tensorflow.keras筆記-卷積神經網絡
    Tensorflow.keras筆記-卷積神經網絡cifar10數據集    1.
  • 【長文詳解】卷積神經網絡常見架構AlexNet、ZFNet、VGGNet、GoogleNet和ResNet模型的理論與實踐
    # coding=utf-8import tensorflow as tffrom tensorflow.contrib.layers import flatten# 定義LeNet網絡def LeNet(input_tensor):    # C1  conv  Input=32*32*1, Output=28*28*6
  • 機器之心GitHub項目:從零開始用TensorFlow搭建卷積神經網絡
    在 Anaconda Prompt(CMD 命令行中也行)中鍵入以下命令以創建名為 tensorflow 的 conda 環境:conda create -n tensorflow python=3.5 然後再運行以下命令行激活 conda 環境:activate tensorflow運行後會變為「(tensorflow) C:\
  • 深度學習 100+ 經典模型 TensorFlow 與 Pytorch 代碼實現大集合
    https://github.com/rasbt/deeplearning-models感知器 Perceptron   [TensorFlow 1: GitHub | Nbviewer]https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1