<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給AI研習社
      發送

      0

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      本文作者: AI研習社 編輯:賈智龍 2017-08-18 16:38
      導語:如何對 CNN 網絡進行修改?

      雷鋒網按:本文原載于知乎CNN 那么多的網絡有什么區別嗎?如何對 CNN 網絡進行修改?下 ZOMI 的回答。獲得作者授權轉載。

      為了解釋這個問題,我覺得很有必要去了解一下 CNN 架構模型的發展,從 CNN 模型架構的發展去看待不同的網絡之間的區別,去學習 CNN 模型的定義。

      -------------------

      深度學習算法最近變得越來越流行和越來越有用的算法,然而深度學習或者深度神經網絡的成功得益于層出不窮的神經網絡模型架構。這篇文章當中作者回顧了從 1998 年開始,近 18 年來深度神經網絡的架構發展情況。

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      圖中的坐標軸我們可以看出橫坐標是操作的復雜度,縱坐標是精度。模型設計一開始的時候模型權重越多模型越大,其精度越高,后來出現了 resNet、GoogleNet、Inception 等網絡架構之后,在取得相同或者更高精度之下,其權重參數不斷下降。值得注意的是,并不是意味著橫坐標越往右,它的運算時間越大。在這里并沒有對時間進行統計,而是對模型參數和網絡的精度進行了縱橫對比。

      其中有幾個網絡作者覺得是必學非常值得學習和經典的:AlexNet、LeNet、GoogLeNet、VGG-16、NiN。

      如果你想了解更多關于深度神經網絡的架構及其對應的應用,不妨看一下這篇綜述 An Analysis of Deep Neural Network Models for Practical Applications

      LeNet5

      1998 年。LeCun 樂春大神發布了 LeNet 網絡架構,從而揭開了深度學習的神秘面紗。從 1998 年開始,深度學習這一領域就開始不斷地被人們所熟知,也是因為這個網絡架構,不斷地推動著深度學習這一領域。當然啦,為什么不叫 LeNet 而叫 LeNet5 呢,因為 Yann LeCun 經過了很多次反復的試驗之后的結果,同時也因為有 5 個卷基層因此以 lenet5 命名!

      lenet5 架構是一個開創性的工作,因為圖像的特征是分布在整個圖像當中的,并且學習參數利用卷積在相同參數的多個位置中提取相似特性的一種有效方法。回歸到 1998 年當時沒有 GPU 來幫助訓練,甚至 CPU 速度都非常慢。因此,對比使用每個像素作為一個單獨的輸入的多層神經網絡,Lenet5 能夠節省參數和計算是一個關鍵的優勢。lenet5 論文中提到,全卷積不應該被放在第一層,因為圖像中有著高度的空間相關性,并利用圖像各個像素作為單獨的輸入特征不會利用這些相關性。因此有了 CNN 的三個特性了:1. 局部感知、2. 下采樣、3. 權值共享。

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      LeNet5 小結:

      • 卷積神經網絡使用 3 層架構:卷積、下采樣、非線性激活函數

      • 使用卷積提取圖像空間特征

      • 下采樣使用了圖像平均稀疏性

      • 激活函數采用了 tanh 或者 sigmoid 函數

      • 多層神經網絡(MLP)作為最后的分類器

      • 層之間使用稀疏連接矩陣,以避免大的計算成本

      總的來說 LeNet5 架構把人們帶入深度學習領域,值得致敬。從 2010 年開始近幾年的神經網絡架構大多數都是基于 LeNet 的三大特性。

      GAP

      從 1998 年 2010 年這 10 年當中,神經網絡的發展卻變得非常緩慢,就連人工智能領域的大牛吳恩達教授在 2003 年的公開課花了 2 節課的時間講解 SVM 的推導,而對于神經網絡只用了不到 20 分鐘帶過。在 2012 年 coresea 新的人工智能公開課上面反而 SVM 用了不到一節課的時間講解,神經網絡卻用了 2 節課的時間進行算法介紹,可見科學家們對神經網絡越來越重視。并且隨著 CPU 和 GPU 的速度不斷提升之下,帶來了性能上的飛躍、也帶來存儲上的飛躍,讓深度神經網絡變得更加可算,于是從 2010 年開啟了深度學習的大門。

      Dan Ciresan Net

      2010 年 Dan Claudiu Ciresan 和 Jurgen Schmidhuber 發表了一個 GPU 神經網絡。論文里面證明了使用 NVIDIA GTX 280 GPU 之后能夠處理高達 9 層的神經網絡。

      從此之后,Nvidia 公司的股價開始不斷攀升,深度學習也越來越為人們所熟知。

      AlexNet

      2012 年,Alex Krizhevsky 發表了 AlexNet,相對比 LeNet 它的網絡層次更加深,從 LeNet 的 5 層到 AlexNet 的 7 層,更重要的是 AlexNet 還贏得了 2012 年的 ImageNet 競賽的第一。AlexNet 不僅比 LeNet 的神經網絡層數更多更深,并且可以學習更復雜的圖像高維特征。

      AlexNet 小結:

      • 使用 ReLU 函數作為激活函數,降低了 Sigmoid 類函數的計算量

      • 利用 dropout 技術在訓練期間選擇性地剪掉某些神經元,避免模型過度擬合

      • 引入 max-pooling 技術

      • 利用雙 GPU NVIDIA GTX 580 顯著減少訓練時間

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      隨著 GPU 提供越來越強悍的性能,同時允許超過 10x 倍數的訓練增長時間,于是可以處理越來越大的圖片和越來越龐大的數據集。暴風雨來臨了,AlexNet 的成功開始了一場小革命,卷積神經網絡 CNN 現在是深度學習的主力,于是有人稱 “網絡越復雜處理的任務越厲害”。

      Network-in-network

      2013 年年尾,Min Lin 提出了在卷積后面再跟一個 1x1 的卷積核對圖像進行卷積,這就是 Network-in-network 的核心思想了。NiN 在每次卷積完之后使用,目的是為了在進入下一層的時候合并更多的特征參數。同樣 NiN 層也是違背 LeNet 的設計原則(淺層網絡使用大的卷積核),但卻有效地合并卷積特征,減少網絡參數、同樣的內存可以存儲更大的網絡。

      根據 Min Lin 的 NiN 論文,他們說這個 “網絡的網絡”(NIN)能夠提高 CNN 的局部感知區域。例如沒有 NiN 的當前卷積是這樣的:3x3 256 [conv] -> [maxpooling],當增加了 NiN 之后的卷積是這樣的:3x3 256 [conv] -> 1x1 256 [conv] -> [maxpooling]。

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      MLP 多層感知的厲害之處就在于它把卷積特征結合起來成為一個更復雜的組合,這個思想將會在后面 ResNet 和 Inception 中用到。

      VGG

      2014 年是個綻放年,出了兩篇重要的論文:VGG、GoogLeNet。

      來自牛津大學的 VGG網絡是第一個在每個卷積層使用更小的 3×3 卷積核對圖像進行卷積,并把這些小的卷積核排列起來作為一個卷積序列。通俗點來講就是對原始圖像進行 3×3 卷積,然后再進行 3×3 卷積,連續使用小的卷積核對圖像進行多次卷積。

      或許很多人看到這里也很困惑為什么使用那么小的卷積核對圖像進行卷積,并且還是使用連續的小卷積核?VGG 一開始提出的時候剛好與 LeNet 的設計原則相違背,因為 LeNet 相信大的卷積核能夠捕獲圖像當中相似的特征(權值共享)。AlexNet 在淺層網絡開始的時候也是使用 9×9、11×11 卷積核,并且盡量在淺層網絡的時候避免使用 1×1 的卷積核。但是 VGG 的神奇之處就是在于使用多個 3×3 卷積核可以模仿較大卷積核那樣對圖像進行局部感知。后來多個小的卷積核串聯這一思想被 GoogleNet 和 ResNet 等吸收。

      從下圖我們可以看出來,VGG 使用多個 3x3 卷積來對高維特征進行提取。因為如果使用較大的卷積核,參數就會大量地增加、運算時間也會成倍的提升。例如 3x3 的卷積核只有 9 個權值參數,使用 7*7 的卷積核權值參數就會增加到 49 個。因為缺乏一個模型去對大量的參數進行歸一化、約減,或者說是限制大規模的參數出現,因此訓練核數更大的卷積網絡就變得非常困難了。

      VGG 相信如果使用大的卷積核將會造成很大的時間浪費,減少的卷積核能夠減少參數,節省運算開銷。雖然訓練的時間變長了,但是總體來說預測的時間和參數都是減少的了。

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      GoogLeNet

      2014 年,在 google 工作的 Christian Szegedy 為了找到一個深度神經網絡結構能夠有效地減少計算資源,于是有了這個 GoogleNet 了(也叫做 Inception V1)。

      從 2014 年尾到現在,深度學習模型在圖像內容分類方面和視頻分類方面有了極大的應用。在這之前,很多一開始對深度學習和神經網絡都保持懷疑態度的人,現在都涌入深度學習的這個領域,理由很簡單,因為深度學習不再是海市蜃樓,而是變得越來越接地氣。就連 google 等互聯網巨頭都已經在深度學習領域布局,成立了各種各樣的額人工智能實驗室。

      Christian 在思考如何才能夠減少深度神經網絡的計算量,同時獲得比較好的性能的框架。即使不能兩全其美,退而求其次能夠保持在相同的計算成本下,能夠有更好的性能提升這樣的框架也行。于是后面 Christian 和他的 team 在 google 想出了這個模型:

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      其乍一看基本上是 1×1,3×3 和 5×5 卷積核的并行合并。但是,最重要的是使用了 1×1 卷積核(NiN)來減少后續并行操作的特征數量。這個思想現在叫做 “bottleneck layer”。

      Bottleneck layer

      受 NiN 的啟發,googleNet 的 Bottleneck layer 減少了特征的數量,從而減少了每一層的操作復雜度,因此可以加快推理時間。在將數據傳遞到下一層卷積之前,特征的數量減少了 4 左右。因此這種設計架構因為大量節省計算成本而名聲大噪。

      讓我們詳細研究一下這個 Bottleneck layer。假設輸入時 256 個 feature map 進來,256 個 feature map 輸出,假設 Inception 層只執行 3x3 的卷積,那么這就需要這行 (256x256) x (3x3) 次卷積左右(大約 589,000 次計算操作)。再假設這次 589,000 次計算操作在 google 的服務器上面用了 0.5ms 的時間,計算開銷還是很大的。現在 Bottleneck layer 的思想是先來減少特征的數量,我們首先執行 256 -> 64 1×1 卷積,然后在所有 Bottleneck layer 的分支上對 64 大小的 feature map 進行卷積,最后再 64 -> 256 1x1 卷積。 操作量是:

      • 256×64 × 1×1 = 16,000s

      • 64×64 × 3×3 = 36,000s

      • 64×256 × 1×1 = 16,000s

      總共約 70,000,而我們以前有近 600,000。幾乎減少 10 倍的操作!

      雖然我們做的操作較少,但我們并沒有失去這一層特征。實際上,Bottleneck layer 已經在 ImageNet 數據集上表現非常出色,并且也將在稍后的架構例如 ResNet 中使用到。

      成功的原因是輸入特征是相關的,因此可以通過適當地與 1x1 卷積組合來去除冗余。然后,在卷積具有較少數目的特征之后,它們可以再次擴展并作用于下一層輸入。

      Inception V3

      Christian 的團隊確實很厲害,2015 年 2 月他們又發表了新的文章關于在 googleNet 中加入一個 Batch-normalized 層。Batch-normalized 層歸一化計算圖層輸出處所有特征圖的平均值和標準差,并使用這些值對其響應進行歸一化。這對應于 “白化” 數據非常有效,并且使得所有神經層具有相同范圍并且具有零均值的響應。這有助于訓練,因為下一層不必學習輸入數據中的偏移,并且可以專注于如何最好地組合特征。

      2015 年 12 月,他們發布了一個新版本的 GoogLeNet(Inception V3) 模塊和相應的架構,并且更好地解釋了原來的 GoogLeNet 架構,GoogLeNet 原始思想:

      • 通過構建平衡深度和寬度的網絡,最大化網絡的信息流。在進入 pooling 層之前增加 feature maps

      • 當網絡層數深度增加時,特征的數量或層的寬度也相對應地增加

      • 在每一層使用寬度增加以增加下一層之前的特征的組合

      • 只使用 3x3 卷積

      因此最后的模型就變成這樣了:

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      網絡架構最后還是跟 GoogleNet 一樣使用 pooling 層 + softmax 層作為最后的分類器。

      ResNet

      2015 年 12 月 ResNet發表了,時間上大概與 Inception v3 網絡一起發表的。其中 ResNet 的一個重要的思想是:輸出的是兩個連續的卷積層,并且輸入時繞到下一層去。這句話不太好理解可以看下圖。

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      但在這里,他們繞過兩層,并且大規模地在網絡中應用這中模型。在 2 層之后繞過是一個關鍵,因為繞過單層的話實踐上表明并沒有太多的幫助,然而繞過 2 層可以看做是在網絡中的一個小分類器!看上去好像沒什么感覺,但這是很致命的一種架構,因為通過這種架構最后實現了神經網絡超過 1000 層。傻了吧,之前我們使用 LeNet 只是 5 層,AlexNet 也最多不過 7 層。

      該層首先使用 1x1 卷積然后輸出原來特征數的 1/4,然后使用 3×3 的卷積核,然后再次使用 1x1 的卷積核但是這次輸出的特征數為原來輸入的大小。如果原來輸入的是 256 個特征,輸出的也是 256 個特征,但是這樣就像 Bottleneck Layer 那樣說的大量地減少了計算量,但是卻保留了豐富的高維特征信息。

      ResNet 一開始的時候是使用一個 7x7 大小的卷積核,然后跟一個 pooling 層。當然啦,最后的分類器跟 GoogleNet 一樣是一個 pooling 層加上一個 softmax 作為分類器。下圖左邊是 VGG19 擁有 190 萬個參數,右圖是 34 層的 ResNet 只需要 36 萬個參數:

      ResNet 網絡特征

      • ResNet 可以被看作并行和串行多個模塊的結合

      • ResNet 上部分的輸入和輸出一樣,所以看上去有點像 RNN,因此可以看做是一個更好的生物神經網絡的模型

      SqueezeNet

      2016 年 11 月才發表的文章,一看論文的標題可以被鎮住:SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and < 0.5MB model size。文章直接說 SqueezeNet 有著跟 AlexNet 一樣的精度,但是參數卻比 Alex 少了接近 50 倍并且參數只需要占用很小的內存空間。這里的設計就沒有 SegNet 或者 GoogleNet 那樣的設計架構驚艷了,但 SqueezeNet 卻是能夠保證同樣的精度下使用更少的參數。

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      Xception

      Xception 模型使用與 ResNet 和 Inception V4 一樣簡單且優雅的架構,并且改進了 Inception 模型。

      從 Xception 模型我們可以看出來 Xception 模型的架構具有 36 個卷積層,與 ResNet-34 非常相似。但是模型的代碼與 ResNet 一樣簡單,并且比 Inception V4 更容易理解。

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      here 或者 here 可以找到 Xception 的實現代碼。

      總結

      我們再來回顧開篇的對比圖。從圖中我們可以看出來,AlexNet 一類的模型沒有考慮太多權重參數的問題,因此圓圈比較大。一開始 AlexNet 只是希望用深度網絡能夠找到更多圖像當中的高維特征,后來發現當網絡越深的時候需要的參數越多,硬件總是跟不上軟件的發展,這個時候如果加深網絡的話 GPU 的顯存塞不下更多的參數,因此硬件限制了深度網絡的發展。為了能夠提高網絡的深度和精度,于是大神們不斷地研究,嘗試使用小的卷積核代替大的卷積核能夠帶來精度上的提升,并且大面積地減少參數,于是網絡的深度不再受硬件而制約。

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      可是另外一方面,隨著網絡的深度越深,運算的時間就越慢,這也是個很蛋疼的事情,不能兩全其美。作者相信在未來 2-3 年我們能夠親眼目睹比現有網絡更深、精度更高、運算時間更少的網絡出現。因為硬件也在快速地發展,特斯拉使用的 NVIDIA Driver PX 2 的運算速率已經比現在 Titan X 要快 7 倍。

      后話

      其實作者覺得神經網絡的架構體系對于了解 “深度學習” 和對于了解深度學習的發展是非常重要的,因此強烈推薦大家去深入研讀一下上面提到的網絡架構對應的文章。

      總是有一些人會問為什么我們需要那么多時間去了解這些深度網絡的架構體系呢,而不是去研究數據然后了解數據背后的意義和如何對數據進行預處理呢?對于如何研究數據可以搜一下另外一篇文章《人工智能的特征工程問題》。對,數據很重要,同時模型也很重要。簡單的舉一個例子,如果你對某種圖像數據很了解,但是不懂 CNN 如何對這些圖像進行提取高維特征,那么最后可能還是會使用 HOG 或者傳統的 SIFT 特征檢測算法。

      還要注意的是,在這里我們主要談論計算機視覺的深度學習架構。類似的神經網絡架構在其他領域還在不斷地發展,如果你有精力和時間,那么可以去研究更多不一樣的架構進化歷。

      引用

      1. chenzomi12.github.io

      2. LeNet

      3. Dan Ciresan Net

      4. AlexNet

      5. Network-in-network

      6. VGG

      7. GoogleNet

      8. Inception V3

      9. Batch-normalized Layer

      10. ResNet

      11. SqueezeNet

      12. Xception

      13. Neural Network Architectures

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      CNN 那么多的網絡有什么區別嗎?看這里了解 CNN 的發展歷程

      分享:
      相關文章

      編輯

      聚焦數據科學,連接 AI 開發者。更多精彩內容,請訪問:yanxishe.com
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 日日噜噜夜夜久久亚洲一区二区| 国产精品久久久久9999高清| 日本亚洲欧洲无免费码在线 | 潞城市| 少妇被粗大的猛进69视频| 男人天堂二区| 中国大陆精品视频XXXX| 免费国偷自产拍精品视频| 小泽玛利亚一区| 俺也来俺也去俺也射| 久久涩综合| 综合一区二区| 精品国产乱码久久久久APP下载| 国产精品网址你懂的| 亚洲精品无码久久久影院相关影片| 亚洲成人天堂网| 一本—道久久a久久精品蜜桃| 亚洲一区二区三区18禁| 国产拍拍拍无码视频免费| 色色资源网| 久久国产天堂福利天堂| 97免费人妻在线视频| 国产人妖另类| 久热国产vs视频在线观看| 超碰成人电影| 成人国产亚洲欧美成人综合网| 久久日产一线二线三线| 国产午夜精品福利91| 无码一区二区三区久久精品| 精品欧美一区二区精品久久| 色一情一乱一伦一区二区三区| 精品国产一区二区三区四区色| 国产精品毛片无遮挡高清| 台中县| 欧美成人免费一区二区三区视频| 国产V∧在线视频| 亚洲色欲av| 国产精品美女毛片j酒店| 欧美大胆老熟妇乱子伦视频| 亚洲综合精品中文字幕| 人人妻人人做人人爽夜欢视频|