給你一個卷積神經網絡工作原理最直觀的解釋

2021-01-05 36氪

編者按:本文來自知乎帳號 Owl of Minerva,36氪經授權發布。

卷積神經網絡(Convolutional Neural Network, CNN)是人工神經網絡的一種,是當下語音分析和圖像識別領域的研究熱點。

這篇文章用最簡明的語言和最直觀的圖像,帶你入門CNN。準備好了嗎?Let’s go——

我們先從最基礎的內容說起。

對二維數位訊號(圖像)的操作,可以寫成矩陣形式。

比如對圖像做平滑,一個典型的8領域平滑,其結果中的每個值都來源於原對應位置和其周邊8個元素與一個3X3矩陣的乘積:

也就相當於對原矩陣,按照順序將各區域元素與W矩陣相乘,W 矩陣為:

這也被稱作核(Kernel, 3X3)

其處理效果如下:

也就是,這個核對圖像進行操作,相當於對圖像進行了低通濾波。因此這個核也被稱為濾波器,整個操作過程按照概念稱為卷積。

擴展來講,對二維圖像的濾波操作可以寫成卷積,比如常見的高斯濾波、拉普拉斯濾波(算子)等。

濾波器跟卷積神經網絡有什麼關係呢。不如我們預想一個識別問題:我們要識別圖像中的某種特定曲線,也就是說,這個濾波器要對這種曲線有很高的輸出,對其他形狀則輸出很低,這也就像是神經元的激活。

我們設計的濾波器和想要識別的曲線如下:

假設上面的核(濾波器)按照卷積順序沿著下圖移動:

那麼當它移動到上面的位置時,按照矩陣操作,將這個區域的圖像像素值與濾波器相乘,我們得到一個很大的值(6600):

而當這個濾波器移動到其他區域時,我們得到一個相對很小的值:

如此,我們對整個原圖進行一次卷積,得到的結果中,在那個特定曲線和周邊區域,值就很高,在其他區域,值相對低。這就是一張激活圖。對應的高值區域就是我們所要檢測曲線的位置。

在訓練卷積審計網絡(CNN)的某一個卷積層時,我們實際上是在訓練一系列的濾波器(filter)。比如,對於一個32x32x3(寬32像素x高32像素xRGB三通道)的圖像,如果我們在CNN的第一個卷積層定義訓練12個濾波器,那就這一層的輸出便是32X32X12.按照不同的任務,我們可以對這個輸出做進一步的處理,這包括激活函數,池化,全連接等。

簡單來說,訓練CNN在相當意義上是在訓練每一個卷積層的濾波器。讓這些濾波器組對特定的模式有高的激活,以達到CNN網絡的分類/檢測等目的。

一個實際CNN(AlexNet)第一個卷積層的濾波器>

卷積神經網絡的第一個卷積層的濾波器用來檢測低階特徵,比如邊、角、曲線等。隨著卷積層的增加,對應濾波器檢測的特徵就更加複雜(理性情況下,也是我們想要的情況)。

比如第二個卷積層的輸入實際上是第一層的輸出(濾波器激活圖),這一層的濾波器便是用來檢測低價特徵的組合等情況(半圓、四邊形等),如此累積,以檢測越來越複雜的特徵。實際上,我們的人類大腦的視覺信息處理也遵循這樣的低階特徵到高階特徵的模式。

可參考之前文章《為什麼無彩色系(黑白灰色)在色彩搭配中可以和諧地與任何彩色搭配?》

最後一層的濾波器按照訓練CNN目的的不同,可能是在檢測到人臉、手寫字體等時候激活[1]。

所以,在相當程度上,構建卷積神經網絡的任務就在於構建這些濾波器。也就是,將這些濾波器變成這樣(改變濾波器矩陣的值,也就是Weight)的——能識別特定的特徵。這個過程叫做訓練。

在訓練開始之時,卷積層的濾波器是完全隨機的,它們不會對任何特徵激活(不能檢測任何特徵)。這就像剛出生的孩子,TA不知道什麼是人臉、什麼是狗,什麼是上下左右。

TA需要學習才知道這些概念,也就是通過接觸人臉、狗、上下左右,並被告知這些東西分別是人臉、狗、上下左右。然後TA才能在頭腦中記住這些概念,並在之後的某一次見到之後能準確的給出結果。

把一個空白的濾波其,修改其權重(weights)以使它能檢測特定的模式,整個過程就如工程裡面的反饋。

想想一下,如果有一隻無意識的猴子,完全隨機的修改一個5X5濾波器矩陣的25個值,那完全可能經過一定的輪次之後,這個濾波器能夠檢測稜角等特徵。這是一種無反饋的訓練情況。對神經網絡的訓練當然不能如此,我們不可能靠運氣去做這件事情。

舉個例子,我們要訓練一個用於分類的神經網絡,讓它能判定輸入圖像中的物體最可能是十個類別的哪一類。那麼,訓練過程就是這樣的:

第一次訓練,輸入一張圖像,這個圖像通過各層卷積處理輸出量一組向量[1,1,1,1,1,1,1,1,1,1], 也就是,對於完全由隨機濾波器構建的網絡,其輸出認為這張圖等概率的是十個類別中的某一種。

但是對於訓練,我們有一個Gound Thuth, 也就是這張圖中物體所屬的類別:[0,0,1,0,0,0,0,0,0,0],也就是屬於第三類。這時候我們可以定義一個損失函數,比如常見的MSE(mean squared error)。

我們假定L是這個損失函數的輸出。這時候我們的目的就是,讓L的值反饋(這種神經網絡概念下稱為 back propagation, 反向傳輸)給整個卷積神經網絡,以修改各個濾波器的權重,使得損失值L最小。

這是一個典型的最優化問題。當然地,在工程上我們幾乎不可能一次就把濾波器的權重W修改到使L最小的情況,而是需要多次訓練和多次修改。

如果情況理想的話,權重修改的方向是使得L的變化收斂的。這也就是說很可能達到了我們訓練這個神經網絡的目的——讓各個卷積層的濾波器能夠組合起來最優化的檢測特定的模式。

參考文獻:

[1] Zeiler, M. D., & Fergus, R. (2014, September). Visualizing and understanding convolutional networks. In European conference on computer vision (pp. 818-833). Springer, Cham.

相關焦點

  • 一文讀懂卷積神經網絡工作原理
    卷積神經網絡(Convolutional Neural Network, CNN)是人工神經網絡的一種,是當下語音分析和圖像識別領域的研究熱點。這篇文章用最簡明的語言和最直觀的圖像,帶你入門CNN。準備好了嗎?
  • 萬字長文|如何直觀解釋卷積神經網絡的工作原理?
    0表示最暗,255表示最亮。 你可以把這堆數字用一個長長的向量來表示,也就是tensorflow的mnist教程。然而,這樣會失去平面結構的信息,為保留該結構信息,通常選擇矩陣的表示方式:28x28的矩陣。
  • 讓你的電腦擁有「視力」,用卷積神經網絡就可以!
    卷積神經網絡極大地提升了圖像識別模型的精度,在生活中也有很多的應用。在這篇文章中,我將描述它的工作原理、一些實際應用,以及如何用Python和Keras是實現一個卷積神經網絡。讓我們一起看看訓練一個用作熱狗檢測器的卷積神經網絡所需的幾個步驟吧。首先,我們為卷積神經網絡的權重賦予隨機的初始值。這基本上意味著網絡純粹就是在猜測。一旦網絡做出了它的預測,它將使用一個損失函數來評估自己的誤差,並更新自己的權重以在下一次獲得更好的結果。
  • 卷積神經網絡數學原理解析
    事實上,我們每天都在使用計算機視覺——當我們用面部解鎖手機或在社交媒體上發照片前使用自動修圖。卷積神經網絡可能是這一巨大成功背後最關鍵的構建模塊。這一次,我們將加深理解神經網絡如何工作於CNNs。出於建議,這篇文章將包括相當複雜的數學方程,如果你不習慣線性代數和微分,請不要氣餒。我的目標不是讓你們記住這些公式,而是讓你們對下面發生的事情有一個直觀的認識。
  • 神奇GIF動畫讓你秒懂各種深度學習卷積神經網絡操作原理
    打開APP 神奇GIF動畫讓你秒懂各種深度學習卷積神經網絡操作原理 深度學習思考者 發表於 2017-11-15 18:58:34
  • 卷積神經網絡理解(一):濾波器的意義
    卷積神經網絡的發展二. 卷積神經網絡的重要性三. 卷積神經網絡與圖像識別四. 濾波器一.卷積神經網絡的發展卷積神經網絡受到視覺細胞研究的啟發,1962年,Hubel和Wiesel發現初級視覺皮層中的神經元會響應視覺環境中特定的簡單特徵(比如有向的邊等)。
  • 卷積神經網絡(CNN)新手指南
    然而最經典的,或者說最流行的神經網絡使用範例是將其用於圖像處理領域。提到圖像處理,本文主要介紹的是如何使用卷積神經網絡來進行圖像分類。以類似的方式計算機能夠進行圖像分類任務,通過尋找低層次的特徵如邊緣和曲線,然後運用一系列的卷積層建立一個更抽象的概念。這是卷積神經網絡應用的一個總體概述,接下來我們來探討下細節。生物聯繫首先要稍微普及下一點背景知識,當你第一次聽到卷積神經網絡這個詞時,你也許會想這是是不與神經科學或者生物學有關?恭喜你,猜對了一部分。卷
  • 幾個簡單的機械動圖,直觀解釋其工作原理!
    【機械cax360第183期】通過幾個簡單的機械動圖,直觀解釋其工作原理,漲姿勢!01 板材衝壓成型▼衝壓成型是指靠壓力機和模具對板材、帶材、管材和型材等施加外力,使之產生塑性變形或分離,從而獲得所需形狀和尺寸的工件(衝壓件)的加工成型方法。
  • 卷積神經網絡(CNN)核心知識點匯總,三分鐘讓你從小白到精通
    與此同時,深度學習工程師的工資也被市場推到市場的風口浪尖處,一個深度學習工程師所受到的待遇遠遠超過了計算機同行的待遇,如果不想被市場拉下,歡迎一起來學習最前沿的技術,我每天都會為大家分享前沿技術。深度學習的巨大進步得益於深層網絡的廣泛應用,而特徵提取能力是整個深層網絡進行學習的基礎,只有提取到了圖像中的特徵,才能在深層的網絡中學習到這些特徵。
  • 改進卷積神經網絡,你需要這14種設計模式
    然而,訓練神經網絡的技巧並不容易掌握。與之前的機器學習方法一樣,細節是最恐怖的地方,然而在卷積神經網絡中有更多的細節需要去管理:你所用的數據和硬體的限制是什麼?你應該以哪種網絡作為開始呢?AlexNet、VGG、GoogLeNet 還是 ResNet 呢?甚至 ResNet 裡面還有 ResNet 分支選項。你應當建立多少與卷積層相對應的密集層?
  • 人工智慧TensorFlow(十三)讀懂CNN卷積神經網絡
    TensorFlow神經網絡  那什麼是卷積神經網絡呢,這就要我們追溯一下人類識別圖像的原理  人類的視覺原理如下:從原始信號攝入開始(瞳孔攝入像素 Pixels),接著做初步處理(大腦皮層某些細胞發現邊緣和方向
  • 卷積神經網絡預測模型:提前24個月預測ENSO
    羅京佳表示,「『阿爾法狗』用的深度神經網絡與傳統的神經網絡不一樣,它有很強大的自我學習能力。」通過不斷探索,研究團隊選取相對成熟的卷積神經網絡進行ENSO 預測。近年來,卷積神經網絡在多個方向得到應用,在語音識別、人臉識別、通用物體識別等方面均有突破。在人工智慧領域,它是比較成熟的方法,並且有很多的開源程序和網站,可以直接使用。
  • 卷積神經網絡預測模型:提前24個月預測ENSO
    羅京佳表示,「『阿爾法狗』用的深度神經網絡與傳統的神經網絡不一樣,它有很強大的自我學習能力。」通過不斷探索,研究團隊選取相對成熟的卷積神經網絡進行ENSO 預測。近年來,卷積神經網絡在多個方向得到應用,在語音識別、人臉識別、通用物體識別等方面均有突破。
  • 圖像識別技術——卷積神經網絡CNN詳解
    前言卷積神經網絡不同於神經網絡,在圖片處理這方面有更好的表現。本文主要對神經網絡和卷積神經網絡做了簡要的對比,著重介紹了卷積神經網絡的層次基礎,同時也簡要介紹了卷積神經網絡參數更新方式和其優缺點,並結合具體實例對卷積神經網絡的工作方式做了介紹。
  • 卷積神經網絡小白入門手冊
    學習深度學習,最常接觸到的就是各式各樣的神經網絡了,其中卷積神經網絡是諸多神經網絡中最典型最常用的神經網絡了。本文原始素材來源於freecodecamp博客,經本人翻譯首發於此。希望能幫助到大家!覺得不錯就點個讚,或者關注下我吧,後續我還會分享更多相關的精彩內容。
  • 卷積神經網絡(CNN)簡易教程
    當我們看到一個新的圖像時,我們可以從左到右和從上到下掃描圖像,以了解圖像的不同特徵。我們的下一步是結合我們掃描的不同的局部特徵來對圖像進行分類。CNN就是這樣工作的平移不變特徵是什麼意思?我們使用卷積神經網絡進行圖像識別和分類。讓我們了解什麼是CNN,以及我們如何使用它。CNN是什麼?CNN是Convolutional Neural Network卷積神經網絡的縮寫,卷積神經網絡是一種專門用來處理數據的神經網絡,它的輸入形狀類似於二維的矩陣圖像。
  • 用科學的原理解釋什麼是網際網路,電燈的工作原理
    用科學的原理解釋什麼是網際網路,電燈的工作原理大家好,我是本文的小編,歡迎閱讀我的科技文章,先送你一個麼麼噠~能關注我就送你兩個麼麼噠~很多我們習以為常的物品和現象,都用含著有序的科學原理,什麼是網際網路呢?電燈的工作原理是怎樣的,這些都需要我們去探索。什麼是網際網路呢?
  • 怎樣設計最優的卷積神經網絡架構?|NAS原理剖析
    但是,關於如何才能設計出最優的卷積神經網絡架構這個問題仍在處於探索階段。其中一大部分原因是因為當前那些取得成功的神經網絡的架構設計原理仍然是一個黑盒。雖然我們有著關於改進神經網絡表現的豐富心得,但其實並沒有真正了解神經網絡是如何達到當前這麼優秀的表現。關於CNNs的一些線索我們從如下幾點開始剖析。
  • 基於3D數據卷積神經網絡的物體識別
    受此啟發,我們在Matroid公司所著的論文提出了FusionNet,這一框架用於在一個名為Princeton ModelNet的標準數據集上做3D CAD物體分類。 FusionNet的核心是全新的、應用於3D物體的三維卷積神經網絡(Convolutional Neural Networks, CNN)。我們必須在多個方面調整傳統的CNN以使其有效。
  • 通俗易懂:圖卷積神經網絡入門詳解
    GCN,圖卷積神經網絡,實際上跟CNN的作用一樣,就是一個特徵提取器,只不過它的對象是圖數據。所以對於不需要去了解數學原理、只想應用GCN來解決實際問題的人來說,你只用知道:哦,這個GCN設計了一個牛逼的公式,用這個公式就可以很好地提取圖的特徵。這就夠了,畢竟不是什麼事情都需要知道內部原理,這是根據需求決定的。