基於CNN,強於CNN:膠囊網絡為何如此熱門?

2021-01-12 騰訊網

膠囊網絡是什麼?膠囊網絡為什麼能夠克服卷積神經網絡的缺點和不足?

CNN的缺陷

在先前的文章中,企通查為大家介紹過了卷積神經網絡CNN的工作原理。CNN的價值在於能夠將大數據量的圖片有效地降維成小數據量且不影響結果,在 CNN 出現之前,圖像對於人工智慧來說一直是一個難題。

然而,對於著力於監測圖像像素中重要特徵的傳統CNN來說其實存在著一定的缺陷。

以簡單的人臉檢測任務為例,一張臉的構成要素有代表臉型的橢圓、眼睛、眉毛、鼻子和嘴巴。基於CNN的原理,只要存在這些對象就有一個很強的刺激,這些對象空間關係反而沒有那麼重要。

如下圖,圖片右側顯然不是人臉但具備了構成一張人臉所需的全部對象,因此CNN有很大可能通過現有的構成要素而激活了是人臉的判斷,從而使得結果判斷出錯。

圖:來源於網絡

重新審視CNN的工作方式,高層特徵是低層特徵組合的加權和,前一層的激活與下一層神經元的權重相乘並且相加,接著通過非線性激活函數進行激活。在這樣的架構中,高層特徵和低層特徵之間的位置關係變得模糊。而CNN解決這個問題的方法是通過最大池化層或者或許的卷積層來擴大下續卷積核的視野,但最大池化層或多或少都會丟掉一部分信息。

膠囊網絡如何解決CNN的缺陷?

為了解決CNN的不足,深度學習的開創者之一Geoffrey Hinton提出了一種對於圖像處理更加有效的網絡——膠囊網絡,其綜合了CNN的優點的同時,考慮了CNN缺失的相對位置、角度等其他信息,從而使得識別效果有所提升。

那麼,膠囊網絡到底是什麼?

簡言之,膠囊網絡的基本構成單位是膠囊而不是神經元。膠囊是一個包含多個神經元的載體,每個神經元表示了圖像中出現的特定實體的各種屬性,這些屬性可以包括許多不同類型的實例化參數(例如位置、大小、方向、變形、色相、紋理等)。膠囊裡有一個非常特殊的屬性,即圖像中某個類別的實例的存在,它的輸出數值大小就是實體存在的概率。

由於膠囊也有所謂的「長度」和「方向」,基於其特殊性,可把膠囊類比為數學向量,它輸出一個向量,該向量的長度表示被檢測對象存在的估計概率,而方向對被檢測對象的姿態參數(如精確的位置,旋轉等)進行編碼。如果被檢測對象發生稍微改變(如移動、旋轉、調整大小等),則膠囊將輸出相同長度的矢量,但方向稍有不同。這樣,膠囊是等變的。

因此,我們可以將膠囊稱為向量神經元(VN),而普通的人工神經元則稱為標量神經元(SN)。

圖:向量神經元與人工神經元的對比,來源於網絡

就像常規的神經網絡一樣,一個膠囊網絡也是按多個層組織的。最下層的膠囊被稱為主膠囊:每個膠囊都接收圖像的一個小區域作為輸入(稱其為接受場),嘗試檢測一個特定模式的存在和姿態。更高層的膠囊稱為路由膠囊,檢測更大更複雜的對象。

圖:膠囊網絡基本架構,來源於網絡

通過利用膠囊網絡,一個圖可以表示為多個嵌入,每個嵌入都可以捕獲不同方面的圖屬性。生成的圖形和類封裝不僅可以保留與分類相關的信息,還可以保留關於圖屬性的其他信息,這些信息可能在後續流程中用到。

在計算機圖形學中,三維圖形中的三維對象之間的關係可以用位姿表示,位姿的本質是平移和旋轉。保留對象部件之間的分層位姿關係對於正確分類和辨識對象來說很重要。

膠囊網絡結合了對象之間的相對關係,在數值上表示為4維位姿矩陣。當模型有了位姿信息之後,可以很容易地理解它看到的是以前看到的東西而只是改變了視角而已。

如下圖,人眼可以很容易分辨出是自由女神像,只是角度的不同,但CNN卻很難做到,而把位姿信息集合進去的膠囊網絡,也可以判別出是自由女神像的不同角度。

圖:來源於網絡

由於膠囊網絡更加貼近人腦的思維方式,能夠更好地建模神經網絡中內部知識表示的分層關係,同時由於數據中集合了位姿信息,因此膠囊網絡可以通過一小部分數據即學習出很好的表示效果。

膠囊神經網絡作為一種新穎、高效且強大的數據驅動方法,可以表示諸多高維數據,因此我們可以說,膠囊網絡基於CNN而又強於CNN。

相關焦點

  • 在多目標識別方面,maskr-cnn已經取得了一些進展
    maskr-cnn是業界首款實用的全卷積神經網絡模型,為計算機視覺中的多目標識別與自動對焦,開創性的成為計算機視覺發展的新方向。無論是基於計算機視覺的自動對焦系統、模式識別系統,還是圖像識別,maskr-cnn都是有標誌性意義的。它強調平滑準確的計算輸入、檢測框和定位點,訓練過程與特徵提取過程採用多級感受野融合技術進行自動優化提高目標解析度及精度,以及做出精度更高的語義推理判斷。
  • cnn.com網站被封
    cnn.com網站被封 美亞 00年10月19日 【原創】 作者: 中關村在線     CNN(美國有線電視新聞網)是全球最大也是最盈利的新聞機構之一,在全球有非常高的知名度
  • 入門| CNN也能用於NLP任務,一文簡述文本分類任務的7個模型
    ,也有常用於計算機視覺任務的卷積神經網絡,以及 RNN + CNN。 本文是我之前寫過的一篇基於推特數據進行情感分析的文章(https://ahmedbesbes.com/sentiment-analysis-on-twitter-using-word2vec-and-keras.html)的延伸內容。那時我建立了一個簡單的模型:基於 keras 訓練的兩層前饋神經網絡。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    目前,用於目標檢測的方法通常屬於基於機器學習的方法或基於深度學習的方法。對於機器學習方法,首先使用 SIFT、HOG 等方法定義特徵,然後使用支持向量機 (SVM)、Adaboost 等技術進行分類。對於深度學習方法,深度學習技術能夠在沒有專門定義特徵的情況下進行端到端目標檢測,並且通常基於卷積神經網絡 (CNN)。
  • 深度學習概述:NLP vs CNN
    最初的人工智慧和深度學習算法比較簡單,就像我們所知的簡單感知器模型和單層神經網絡一樣。隨著時間的推移和更加專注的研究,我們已經擁有了具有多層結構的複雜神經網絡。一些公司在他們的軟體和服務中使用了LSTMs、GANs、變分自編碼器等算法。本文在以下部分列出了人工智慧領域當前最熱門的技術以及正在研究這些熱門技術的公司。
  • 從R-CNN到YOLO,一文帶你了解目標檢測模型(附論文下載)
    它是將CNN用於對象檢測的起源,能夠基於豐富的特徵層次結構進行目標精確檢測和語義分割來源。如何確定這些邊界框的大小和位置呢?R-CNN網絡是這樣做的:在圖像中提出了多個邊框,並判斷其中的任何一個是否對應著一個具體對象。
  • 小白學CNN以及Keras的速成
    一、為何要用Keras如今在深度學習大火的時候,第三方工具也層出不窮,比較出名的有Tensorflow,Caffe,Theano,MXNet,在如此多的第三方框架中頻繁的更換無疑是很低效的,只要你能夠好好掌握其中一個框架,熟悉其原理,那麼之後因為各種要求你想要更換框架也是很容易的。那麼sherlock用的是哪個框架呢?
  • .| 深度學習理論與實戰:提高篇(14)——​Mask R-CNN代碼簡介
    ), # logits(mrcnn_class_logits) # 輸出的boudning box(mrcnn_bbox)和Mask(mrcnn_mask) model.load_weights(COCO_MODEL_PATH, by_name=True, exclude=["mrcnn_class_logits", "mrcnn_bbox_fc", "mrcnn_bbox
  • Mask R-CNN官方實現「又」來了!基於PyTorch,訓練速度是原來2倍
    不過它是基於Caffe 2深度學習框架編寫的。這一次,在Caffe2項目併入PyTorch半年之後,Facebook換上了更受歡迎的PyTorch框架。除了更改框架,Mask R-CNN Benchmark相比它的「前輩」Detectron,訓練速度提高了一倍。
  • CNN 10 - October 16, 2020
    本期視頻連結:  https://pmd.cdn.turner.com/cnn/big/cnn10/2020/10/14/ten-1016.cnn_3450078_768x432_1300k.mp4本期內容簡介:Coronavirus Cases Rise in Most U.S
  • CNN 10 - October 29, 2020
    本期視頻連結:  https://pmd.cdn.turner.com/cnn/big
  • 卷積神經網絡 物體檢測 Faster-RCNN
    >回顧一下fast rcnn的過程,先通過selective search在每張圖片選2k個region proposal,將原圖通過cnn得到feature map,然後通過SPP或RoI pooling將不同region proposal的feature map轉化為固定的長度給全連接層,通過分類和位置組合Loss學習;在fast rcnn裡除了region
  • 經典解讀 | Cascade R-CNN詳細解讀
    連結 | https://zhuanlan.zhihu.com/p/42553957源碼連結:https://github.com/zhaoweicai/cascade-rcnn文章提出的cascade結構的效果是驚豔的,幾乎對於任意的R-CNN(Faster rcnn,FPN,R-FCN等)都可以帶來2到4個點的AP提升!!!而且實現十分簡單,已使用Pytorch在Pascal VOC上復現論文。此外,本篇文章的實驗講解部分對於理解R-CNN網絡有很大的幫助,建議詳細閱讀。   0. 本篇解析的內容結構   1. 簡單回顧R-CNN結構
  • CNN 10
    END 關注微信訂閱號: CNN學生英語新聞關注微信訂閱號: FancyEnglish更多英語視頻盡在:www.fancyenglish.com遇有點擊「閱讀原文」後「無法打開網頁」的情況,請嘗試登陸CNN10官網:http://edition.cnn.com/cnn10
  • CNN旗下爆款工廠GreatBigStory:怎樣挖掘好故事
    CNN之所以創立Great Big Story(後稱「GBS」)工作室,主要基於下面兩個判斷:第一、有大量的觀眾通過社交平臺獲取新聞資訊,這個現象在25-35歲這一年齡層中表現尤為突出。CNN的投資人稱當下為「多元化的時代」,年輕的消費者愈發信賴社交網絡和流媒體內容,且通常會在Facebook和Twitter這樣的社交應用中獲取新聞和其他信息。Vice, BuzzFeed和Vox 等平臺已經提前投入這一時代的洪流,而傳統的「玩家」也在逐步適應這一過程,像《紐約時報》和《華爾街日報》也都在生產高質量、深度報導性質的網絡視頻。
  • 一位中國博士把整個CNN都給可視化了,可交互有細節,每次卷積ReLU...
    每一個對AI抱有憧憬的小白,在開始的時候都會遇到CNN(卷積神經網絡)這個詞。但每次,當小白們想了解CNN到底是怎麼回事,為什麼就能聰明的識別人臉、聽辨聲音的時候,就懵了,只好理解為玄學:好吧,維基百科解決不了的問題,有人給解決了。
  • 如果我們想要更好的目標分割,我們最好使用resnet-50的網絡結構
    卷積網絡是研究圖像分類的非常有效的方法,它能夠產生豐富的學習框架,能夠做很多複雜的預測。但是,在什麼情況下它非常有效呢?解決不同任務需要不同的方法。我們已經研究過人臉識別(single-identitydetection)。
  • PyTorch實現TPU版本CNN模型
    在這裡,我們使用PyTorch定義了一個卷積神經網絡(CNN)模型,並在PyTorch/XLA環境中對該模型進行了訓練。XLA將CNN模型與分布式多處理環境中的Google Cloud TPU(張量處理單元)連接起來。在這個實現中,使用8個TPU核心來創建一個多處理環境。我們將用這個PyTorch深度學習框架進行時裝分類測試,觀察訓練時間和準確性。
  • CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?
    我還常常會見到另一個問題——神經網絡需要強大的計算能力,那麼當問題中只是存在一些細微差別時,使用神經網絡真的值得嗎?問題的答案很簡單——值得!深度學習中不同的神經網絡(如卷積神經網絡CNN、循環神經網絡RNN、人工神經網絡ANN)正在改變著我們與世界之間的交互方式。這些不同類型的神經網絡是深度學習革命的核心,為無人機、自動駕駛汽車、語音識別等應用提供了推動力。
  • 自注意力可以替代CNN,能表達任何卷積濾波層
    卷積層卷積神經網絡由多個卷積層和子採樣層組成。每個卷積層可以學習大小為K x K的卷積濾波器,輸入和輸出的維度分別是Din和Dout。用一個4D核張量(維度為K x K x Din x Dout)和一個偏置向量b(維度為Dout)來對層進行參數化。下面這張動圖便展示了如何計算q的輸出值。