一文看懂卷積神經網絡

您所在的位置:网站首页 计算机视觉的典型应用 一文看懂卷積神經網絡

一文看懂卷積神經網絡

#一文看懂卷積神經網絡| 来源: 网络整理| 查看: 265

HomeAI 知識庫AI 算法 卷積神經網絡 – CNN 文章目錄

一文看懂卷積神經網絡-CNN

卷積神經網絡 – CNN 最擅長的就是圖片的處理。它受到人類視覺神經系統的啟發。

CNN 有2大特點:

能夠有效的將大數據量的圖片降維成小數據量 能夠有效的保留圖片特徵,符合圖片處理的原則

目前 CNN 已經得到了廣泛的應用,比如:人臉識別、自動駕駛、美圖秀秀、安防等很多領域。

 

CNN 解決了什麼問題?

在 CNN 出現之前,圖像對於人工智能來說是一個難題,有2個原因:

圖像需要處理的數據量太大,導致成本很高,效率很低 圖像在數字化的過程中很難保留原有的特徵,導致圖像處理的準確率不高

下面就詳細說明一下這2個問題:

 

需要處理的數據量太大

圖像是由像素構成的,每個像素又是由顏色構成的。

圖像是由像素構成的,每個像素又是由顏色構成的

現在隨隨便便一張圖片都是 1000×1000 像素以上的, 每個像素都有RGB 3個參數來表示顏色信息。

假如我們處理一張 1000×1000 像素的圖片,我們就需要處理3百萬個參數!

1000×1000×3=3,000,000

這麼大量的數據處理起來是非常消耗資源的,而且這只是一張不算太大的圖片!

卷積神經網絡 – CNN 解決的第一個問題就是「將複雜問題簡化」,把大量參數降維成少量參數,再做處理。

更重要的是:我們在大部分場景下,降維並不會影響結果。比如1000像素的圖片縮小成200像素,並不影響肉眼認出來圖片中是一隻貓還是一隻狗,機器也是如此。

 

保留圖像特徵

圖片數字化的傳統方式我們簡化一下,就類似下圖的過程:

圖像簡單數字化無法保留圖像特徵

假如有圓形是1,沒有圓形是0,那麼圓形的位置不同就會產生完全不同的數據表達。但是從視覺的角度來看,圖像的內容(本質)並沒有發生變化,只是位置發生了變化。

所以當我們移動圖像中的物體,用傳統的方式的得出來的參數會差異很大!這是不符合圖像處理的要求的。

而 CNN 解決了這個問題,他用類似視覺的方式保留了圖像的特徵,當圖像做翻轉,旋轉或者變換位置時,它也能有效的識別出來是類似的圖像。

那麼卷積神經網絡是如何實現的呢?在我們了解 CNN 原理之前,先來看看人類的視覺原理是什麼?

 

人類的視覺原理

深度學習的許多研究成果,離不開對大腦認知原理的研究,尤其是視覺原理的研究。

1981 年的諾貝爾醫學獎,頒發給了 David Hubel(出生於加拿大的美國神經生物學家) 和TorstenWiesel,以及 Roger Sperry。前兩位的主要貢獻,是「發現了視覺系統的信息處理」,可視皮層是分級的。

人類的視覺原理如下:從原始信號攝入開始(瞳孔攝入像素 Pixels),接着做初步處理(大腦皮層某些細胞發現邊緣和方向),然後抽象(大腦判定,眼前的物體的形狀,是圓形的),然後進一步抽象(大腦進一步判定該物體是只氣球)。下面是人腦進行人臉識別的一個示例:

人類視覺原理1

 

對於不同的物體,人類視覺也是通過這樣逐層分級,來進行認知的:

人類視覺原理2

我們可以看到,在最底層特徵基本上是類似的,就是各種邊緣,越往上,越能提取出此類物體的一些特徵(輪子、眼睛、軀幹等),到最上層,不同的高級特徵最終組合成相應的圖像,從而能夠讓人類準確的區分不同的物體。

那麼我們可以很自然的想到:可以不可以模仿人類大腦的這個特點,構造多層的神經網絡,較低層的識別初級的圖像特徵,若干底層特徵組成更上一層特徵,最終通過多個層級的組合,最終在頂層做出分類呢?

答案是肯定的,這也是許多深度學習算法(包括CNN)的靈感來源。

 

卷積神經網絡-CNN 的基本原理

典型的 CNN 由3個部分構成:

卷積層 池化層 全連接層

如果簡單來描述的話:

卷積層負責提取圖像中的局部特徵;池化層用來大幅降低參數量級(降維);全連接層類似傳統神經網絡的部分,用來輸出想要的結果。

典型的 CNN 由3個部分構成

下面的原理解釋為了通俗易懂,忽略了很多技術細節,如果大家對詳細的原理感興趣,可以看這個視頻《卷積神經網絡基礎》。

 

卷積——提取特徵

卷積層的運算過程如下圖,用一個卷積核掃完整張圖片:

卷積層運算過程

這個過程我們可以理解為我們使用一個過濾器(卷積核)來過濾圖像的各個小區域,從而得到這些小區域的特徵值。

在具體應用中,往往有多個卷積核,可以認為,每個卷積核代表了一種圖像模式,如果某個圖像塊與此卷積核卷積出的值大,則認為此圖像塊十分接近於此卷積核。如果我們設計了6個卷積核,可以理解:我們認為這個圖像上有6種底層紋理模式,也就是我們用6中基礎模式就能描繪出一副圖像。以下就是25種不同的卷積核的示例:

25種不同的卷積核

總結:卷積層的通過卷積核的過濾提取出圖片中局部的特徵,跟上面提到的人類視覺的特徵提取類似。

 

池化層(下採樣)——數據降維,避免過擬合

池化層簡單說就是下採樣,他可以大大降低數據的維度。其過程如下:

池化層過程

上圖中,我們可以看到,原始圖片是20×20的,我們對其進行下採樣,採樣窗口為10×10,最終將其下採樣成為一個2×2大小的特徵圖。

之所以這麼做的原因,是因為即使做完了卷積,圖像仍然很大(因為卷積核比較小),所以為了降低數據維度,就進行下採樣。

總結:池化層相比卷積層可以更有效的降低數據維度,這麼做不但可以大大減少運算量,還可以有效的避免過擬合。

 

全連接層——輸出結果

這個部分就是最後一步了,經過卷積層和池化層處理過的數據輸入到全連接層,得到最終想要的結果。

經過卷積層和池化層降維過的數據,全連接層才能”跑得動”,不然數據量太大,計算成本高,效率低下。

全連接層

典型的 CNN 並非只是上面提到的3層結構,而是多層結構,例如 LeNet-5 的結構就如下圖所示:

卷積層 – 池化層- 卷積層 – 池化層 – 卷積層 – 全連接層

LeNet-5網絡結構

在了解了 CNN 的基本原理後,我們重點說一下 CNN 的實際應用有哪些。

 

CNN 有哪些實際應用?

卷積神經網絡 – CNN 很擅長處理圖像。而視頻是圖像的疊加,所以同樣擅長處理視頻內容。下面給大家列一些比較成熟的應用:

 

圖像分類、檢索

圖像分類是比較基礎的應用,他可以節省大量的人工成本,將圖像進行有效的分類。對於一些特定領域的圖片,分類的準確率可以達到 95%+,已經算是一個可用性很高的應用了。

典型場景:圖像搜索…

CNN應用-圖像分類、檢索

 

目標定位檢測

可以在圖像中定位目標,並確定目標的位置及大小。

典型場景:自動駕駛、安防、醫療…

CNN應用-目標

 

目標分割

簡單理解就是一個像素級的分類。

他可以對前景和背景進行像素級的區分、再高級一點還可以識別出目標並且對目標進行分類。

典型場景:美圖秀秀、視頻後期加工、圖像生成…

CNN應用-目標分割

 

人臉識別

人臉識別已經是一個非常普及的應用了,在很多領域都有廣泛的應用。

典型場景:安防、金融、生活…

CNN應用-人臉識別

 

骨骼識別

骨骼識別是可以識別身體的關鍵骨骼,以及追蹤骨骼的動作。

典型場景:安防、電影、圖像視頻生成、遊戲…

CNN應用-骨骼識別

 

總結

今天我們介紹了 CNN 的價值、基本原理和應用場景,簡單總結如下:

CNN 的價值:

能夠將大數據量的圖片有效的降維成小數據量(並不影響結果) 能夠保留圖片的特徵,類似人類的視覺原理

CNN 的基本原理:

卷積層 – 主要作用是保留圖片的特徵 池化層 – 主要作用是把數據降維,可以有效的避免過擬合 全連接層 – 根據不同任務輸出我們想要的結果

CNN 的實際應用:

圖片分類、檢索 目標定位檢測 目標分割 人臉識別 骨骼識別

 

百度百科+維基百科 百度百科版本

卷積神經網絡(Convolutional Neural Networks, CNN)是一類包含卷積計算且具有深度結構的前饋神經網絡(Feedforward Neural Networks),是深度學習(deep learning)的代表算法之一 。由於卷積神經網絡能夠進行平移不變分類(shift-invariant classification),因此也被稱為「平移不變人工神經網絡(Shift-Invariant Artificial Neural Networks, SIANN)」 。

對卷積神經網絡的研究始於二十世紀80至90年代,時間延遲網絡和LeNet-5是最早出現的卷積神經網絡;在二十一世紀後,隨着深度學習理論的提出和數值計算設備的改進,卷積神經網絡得到了快速發展,並被大量應用於計算機視覺、自然語言處理等領域 。

查看詳情

維基百科版本

在深度學習中,卷積神經網絡(CNN或ConvNet)是一類深度神經網絡,最常用於分析視覺圖像。

CNN使用多層感知器的變體設計,需要最少的預處理。它們也被稱為移位不變或空間不變人工神經網絡(SIANN),基於它們的共享權重架構和平移不變性特徵。卷積網絡被啟發由生物工藝在之間的連接圖案的神經元類似於動物的組織視覺皮層。個體皮層神經元僅在被稱為感受野的視野的受限區域中對刺激作出反應。不同神經元的感受野部分重疊,使得它們覆蓋整個視野。

與其他圖像分類算法相比,CNN使用相對較少的預處理。這意味着網絡學習傳統算法中手工設計的過濾器。這種與特徵設計中的先前知識和人力的獨立性是一個主要優點。

它們可用於圖像和視頻識別,推薦系統,圖像分類,醫學圖像分析和自然語言處理。

查看詳情

 

擴展閱讀 開拓視野類文章(11)

乾貨|卷積有多少種?一文讀懂深度學習中的各種卷積(2019-10)

卷積神經網絡中十大拍案叫絕的操作(2019-9)

「多圖」圖解10大CNN架構(2019-7)

總結12大CNN主流模型架構設計思想(2019-6)

卷積神經網絡中十大拍案叫絕的操作(2019-5)

CNN更新換代!性能提升算力減半,還即插即用(2019-4)

刷臉背後,卷積神經網絡的數學原理原來是這樣的(2019-4)

比CNN表現更好,CV領域全新卷積操作OctConv厲害在哪裡?(2019-4)

微軟亞洲研究院等提出CNN訓練新方法RePr,準確率顯著提升(2019-3)

基於深度CNN的腫瘤體細胞突變檢測工具(2019-3)

7大類深度CNN架構創新綜述

實踐類文章(5)

運用計算圖搭建卷積神經網絡(CNN)(2019-7)

怎樣設計最優的卷積神經網絡架構?| NAS原理剖析(2019-7)

40行Python代碼,實現卷積特徵可視化

使用Python和Mask R-CNN自動尋找停車位,這是什麼神操作?

CNN圖像分類策略簡單到出人意料!

2019年1月3日 by 打不死的小強 Updated: 2022年8月15日

AI 算法, 深度學習, 計算機視覺 CNN, ConvNet, convolutional neural network, 卷積神經網絡, 深度學習

Thanks for your rating!

You have already rated this article

An error occured, please try again later

Was This Article Helpful?


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3