一文了解卷積神經網絡基礎,建議收藏

2020-12-05 TechWeb

今天給大家講一下卷積神經網絡,主要包括四個部分:卷積神經網絡的歷史、全連接層、卷積層和池化層。

CNN的英文全稱是Convolutional Neural Network,雛形是LeCun在1998年發明的LeNet網絡結構。

LeNet網絡架構

那麼到底什麼是神經網絡呢?應該說只要帶有卷積層的就可以被叫做卷積神經網絡。

神經網絡的發展歷史

1986年:Rumelhart和Hinton等人提出了反向傳播(Back Propagation)算法。

1998年:LeCun基於BP神經網絡訓練了LeNet網絡,標誌著CNN的真正面世。

2006年:Hinton在他們的Science Paper中首次提出了Deep Learning的概念。

2012年:其實在2006年Hinton提出深度神經網絡之後,受到了很多的質疑,但是在2012年Hinton的學生Alex Krizhevsky在寢室用GPU死磕了一個Deep Learning模型,一舉拿下了計算機視覺TOP領域ILSVRC 2012的冠軍,在百萬量級的ImageNet數據集合上,效果大幅度的超過了傳統的方法,準確率從70%提升到80%。

全連接層

其實全連接層就是模仿大腦的神經元結構,我們可以看到:

輸出值 = 輸入值x經過加權w之後累加的結果再經過激勵函數。形式化為:

那麼我們將神經元按列進行排列,列與列之間進行全連接,就得到了一個BP神經網絡。

BP神經網絡算法包括信號的前向傳播和誤差的反向傳播兩個過程。即計算誤差輸出時按從輸入到輸出的方向進行,而調整權值和閾值則從輸出到輸入的方向進行。

下面我們來看一個實例來了解一下BP神經網絡。

實例:利用BP神經網絡進行數字識別

我們拿到一張圖片,例如上邊第一張圖所示拿到的是0,這張圖是由若干像素組成,每個像素有RGB三個通道,然後經過灰度化後變成第二張圖片,然後將灰度化後的圖片進行二值化得到第三張圖片。

之後我們對圖片進行概率處理,例如第一個框中白色塊/全部塊 = 0.2,經過相應的策略處理之後第一個數值為0.2。以此類推,可以得到上圖右邊的矩陣。

然後我們對這個矩陣進行維度變換和處理,將其變為1*n的行向量,這樣處理之後的形式可以使得神經網絡更好的輸入處理。

我們知道神經網絡如何輸入了,那麼最後應該輸出什麼才可以更好的辨別數字呢?One-Hot編碼!

也就是說,每個數字都對應一個編碼,如果輸入1000000000,則判定為數字0,以此類推。

既然有了輸入,也有了輸出,我們就可以通過神經網絡對其進行訓練了。

首先將輸入層的神經元數設置為25個節點,將輸出層設置為10個節點,將上邊1*n的向量輸入到BP神經網絡中,然後經過隱藏層最後到輸出層onehot編碼,輸出層通過softmax激活函數可以得到每個數字出現的概率,即可識別數字。

卷積層

到底什麼是卷積層?之前的文章中講過了,有興趣的可以直接查看。

漫畫:卷積神經網絡中的卷積核到底是什麼?

漫畫:卷積神經網絡為什麼適合處理圖片數據?

乾貨 | 如何入手卷積神經網絡

在卷積層的講解中,想問大家一個問題,卷積核如果越界了應該如何處理?例如下面這樣:

假設用這麼一個矩陣,我們使用3*3的滑動窗口,步長為2,則出現下面這種情況應該如何處理?

我們可以對其進行使用Padding對其進行補0處理,如下所示:

在卷積操作過程中,矩陣經過卷積操作之後大小由下面幾個因數決定:

 輸入圖像大小W*W  Filter大小F*F  步長S  padding的像素數P

經過卷積後的矩陣尺寸大小是有一個規律的,那麼給大家一個通用的公式:

N=(W-F+2P)/S+1

池化層

為什麼要存在池化層?因為當前的輸入數據太大,有很多冗餘信息,那麼我們就要想辦法對圖像矩陣進行下採樣,對特徵圖進行稀疏處理,減少數據運算量。下面通過MaxPooling下採樣來給大家看一下到底什麼是池化層。

上圖中紅色部分的值為1 1 5 6,我們使用的是MaxPooling,所以取最大值,則右圖中紅色部分為max(1,1,5,6)=6,以此類推,即可得到下採樣結果。

類似於最大下採樣,同樣也有平均下採樣層,如下圖所示:

為了大家更好的理解和使用池化層,我總結了池化層的三個特點:

 沒有訓練參數  只會改變特徵矩陣的w和h,不改變channel  一般pool size和卷積核的stride相同

今天講的是卷積神經網絡的整體架構基礎,包括神經網絡的發展歷史、全連接層、卷積層和池化層,大家有什麼見解或者想法都可以在下面留言哦~

 

相關焦點

  • 一文讓你徹底了解卷積神經網絡
    卷積神經網絡(Convolutional Neural Network,CNN)是一種前饋神經網絡,它的人工神經元可以響應一部分覆蓋範圍內的周圍單元,對於大型圖像處理有出色表現。 它包括卷積層(convolutional layer)和池化層(pooling layer)。
  • 要想了解卷積神經網絡,首先需要了解三種基本架構
    卷積網絡是研究關於圖像(紋理,圖像尺度等)的抽象層面的一種網絡,跟傳統網絡不同的是,它不僅可以根據一個固定尺寸圖像生成物體識別數據,還可以對圖像其他部分進行其他操作。卷積可以有多個,它的作用是「放大」和「增強」圖像的抽象空間。那麼卷積可以用於哪些場景呢?
  • AI入門:卷積神經網絡
    如果對深度學習還不了解的同學,建議你先看下之前的文章《深度學習到底有多深?》,對深度學習有一定的認知,對接來了的討論可能會更容易理解。以下是本文討論內容的大綱:下文的卷積神經網絡,我們用簡稱CNN表示。
  • 了解CNN這一篇就夠了:卷積神經網絡技術及發展
    日前,南洋理工大學研究人員梳理CNN發展歷史,從基礎組成部分講起,介紹並探討CNN在視覺識別方面的原理及應用,是系統深入理解CNN的好文。在不同類型的神經網絡當中,卷積神經網絡是得到最深入研究的。早期由於缺乏訓練數據和計算能力,要在不產生過擬合的情況下訓練高性能卷積神經網絡是很困難的。標記數據和近來GPU的發展,使得卷積神經網絡研究湧現並取得一流結果。本文中,我們將縱覽卷積神經網絡近來發展,同時介紹卷積神經網絡在視覺識別方面的一些應用。
  • 人工智慧之卷積神經網絡(CNN)
    ^_^本文引用地址:http://www.eepw.com.cn/article/201806/381807.htm  20世紀60年代,Hubel和Wiesel在研究貓腦皮層中用於局部敏感和方向選擇的神經元時發現其獨特的網絡結構可以有效地降低反饋神經網絡的複雜性,繼而提出了卷積神經網絡CNN(Convolutional Neural Networks)。
  • 萬字長文|如何直觀解釋卷積神經網絡的工作原理?
    作者:YJango 日本會津大學|人機互動實驗室博士生 量子位 已獲授權編輯發布 該文是對卷積神經網絡的介紹,並假設你理解前饋神經網絡。 如果不是,強烈建議讀完《如何簡單形象又有趣地講解神經網絡是什麼?》
  • PyTorch可視化理解卷積神經網絡
    造就機器能夠獲得在這些視覺方面取得優異性能可能是源於一種特定類型的神經網絡——卷積神經網絡(CNN)。如果你是一個深度學習愛好者,你可能早已聽說過這種神經網絡,並且可能已經使用一些深度學習框架比如caffe、TensorFlow、pytorch實現了一些圖像分類器。然而,這仍然存在一個問題:數據是如何在人工神經網絡傳送以及計算機是如何從中學習的。
  • 刷臉背後:卷積神經網絡的數學原理
    計算機視覺技術在日常生活中有著非常普遍的應用:發朋友圈之前自動修圖、網上購物時刷臉支付……在這一系列成功的應用背後,卷積神經網絡功不可沒。本文將介紹卷積神經網絡背後的數學原理。
  • 深度卷積神經網絡演化歷史及結構改進脈絡-40頁長文全面解讀
    原標題:深度卷積神經網絡演化歷史及結構改進脈絡-40頁長文全面解讀 AlexNet網絡 現代意義上的深度卷積神經網絡起源於AlexNet網絡[9],它是深度卷積神經網絡的鼻祖。這個網絡相比之前的卷積網絡最顯著的特點是層次加深,參數規模變大。
  • 環信人工智慧專家李理:詳解卷積神經網絡
    CNN簡介 在之前的章節我們使用了神經網絡來解決手寫數字識別(MNIST)的問題。我們使用了全連接的神經網絡,也就是前一層的每一個神經元都會連接到後一層的每一個神經元,如果前一層有m個節點,後一層有n個,那麼總共有m*n條邊(連接)。連接方式如下圖所示:
  • 從圖(Graph)到圖卷積(Graph Convolution):漫談圖神經網絡 (二)
    在從圖(Graph)到圖卷積(Graph Convolution): 漫談圖神經網絡 (一)中,我們簡單介紹了基於循環圖神經網絡的兩種重要模型,在本篇中,我們將著大量筆墨介紹圖卷積神經網絡中的卷積操作。接下來,我們將首先介紹一下圖卷積神經網絡的大概框架,藉此說明它與基於循環的圖神經網絡的區別。
  • 深入理解卷積網絡的卷積
    卷積神經網絡是一種特殊的神經網絡結構,是自動駕駛汽車、人臉識別系統等計算機視覺應用的基礎,其中基本的矩陣乘法運算被卷積運算取代。它們專門處理具有網格狀拓撲結構的數據。例如,時間序列數據和圖像數據可以看作是一個二維像素網格。
  • 知識普及:卷積神經網絡模型是怎樣工作的?可以做些什麼?
    知識普及:卷積神經網絡模型是怎樣工作的?可以做些什麼? 眾所周知,在過去的幾年裡,卷積神經網絡(CNN或ConvNet)在深度學習領域取得了許多重大突破,但對於大多數人而言,這個描述是相當不直觀的。因此,要了解模型取得了怎樣大的突破,我們應該先了解卷積神經網絡是怎樣工作的。 卷積神經網絡可以做些什麼? 卷積神經網絡用於在圖像中尋找特徵。在CNN的前幾層中,神經網絡可以進行簡單的「線條」和「角」的識別。
  • 深度學習之卷積神經網絡經典模型
    第五個隱藏層是用5x5的卷積核進行運算,包含了120個神經元,也是這個網絡中卷積運算的最後一層。之後的第六層便是全連接層,包含了84個特徵圖。全連接層中對輸入進行點積之後加入偏置,然後經過一個激活函數傳輸給輸出層的神經元。最後一層,也就是第七層,為了得到輸出向量,設置了十個神經元來進行分類,相當於輸出一個包含十個元素的一維數組,向量中的十個元素即0到9。
  • 機器視角:長文揭秘圖像處理和卷積神經網絡架構
    我嘗試去理解神經網絡及其變體,但依然感到困難。接著有一天,我決定一步一步,從基礎開始。我把技術操作的步驟分解開來,並手動執行這些步驟(和計算),直到我理解它們如何工作。這相當費時,且令人緊張,但是結果非凡。現在,我不僅對深度學習有了全面的理解,還在此基礎上有了好想法,因為我的基礎很紮實。隨意地應用神經網絡是一回事,理解它是什麼以及背後的發生機制是另外一回事。
  • 一文了解各種卷積結構原理及優劣
    王小新 編譯自 Medium量子位 出品 | 公眾號 QbitAI卷積神經網絡作為深度學習的典型網絡,在圖像處理和計算機視覺等多個領域都取得了很好的效果。Paul-Louis Prve在Medium上通過這篇文章快速地介紹了不同類型的卷積結構(Convolution)及優勢。為了簡單起見,本文僅探討二維卷積結構。
  • 深度| 一文概覽圖卷積網絡基本結構和最新進展
    我對 Ferenc 這篇綜述的看法見本文文末。大綱神經網絡圖模型的簡要介紹譜圖卷積和圖卷積網絡(GCNs)演示:用一個簡單的一階 GCN 模型進行圖嵌入將 GCNs 視為 Weisfeiler-Lehman 算法的可微泛化如果你已經對 GCNs 及其相關方法很熟悉了的話,你可以直接跳至「GCNs 第 Ⅲ 部分:嵌入空手道俱樂部網絡」部分。
  • 看了這篇文章,了解深度卷積神經網絡在目標檢測中的進展
    深度卷積神經網絡(DCNN)在圖像分類和識別上取得了很顯著的提高。1.2 Fast R-CNN[2] 在 R-CNN 的基礎上,為了使訓練和測試過程更快,Ross Girshick 提出了 Fast R-CNN,使用 VGG19 網絡結構比 R-CNN 在訓練和測試時分別快了 9 倍和 213 倍。
  • 深度卷積神經網絡應用於量子計算機
    另一方面,機器學習,尤其是神經網絡,正在粗略地使用向量和矩陣來理解或處理數據。量子機器學習(QML)旨在使用量子系統對向量進行編碼,並使用新的量子算法對其進行學習。一個關鍵的概念是在許多矢量上使用量子疊加,我們可以同時處理它們。
  • 神經網絡基礎:七種網絡單元,四種層連接方式
    近日,他又發表了一篇題為《The Neural Network Zoo Prequel:Cells and Layers》文章,該文是其上篇文章的前篇,對於文中涉及但沒有深入展開的神經網絡的單元與層的部分再次做了一個圖文並茂的介紹。機器之心對該文進行了編譯,原文連結見文末。