目錄
影像原理
何為卷積神經網路CNN?
CNN中的基本概念
1.卷積(Convolution)
2.Padding
3.stride
4.池化
5.Shape
6.激活函數
CNN整體結構
CNN的優勢
首頁 科技週邊 人工智慧 零基礎也能搞懂卷積神經網路原理!超詳細!

零基礎也能搞懂卷積神經網路原理!超詳細!

Jun 04, 2024 pm 08:19 PM
ai 神經網路

相信和作者一樣愛科技對AI興趣濃厚的小伙伴們,一定對卷積神經網路並不陌生, 也一定曾經對如此「高級」的名字困惑良久。作者今天將從零開始走進卷積神經網路的世界~與大家分享!

在深入了解卷積神經網路之前,我們先來看看圖像的原理。

零基礎也能搞懂卷積神經網路原理!超詳細!

影像原理

影像在電腦中是透過數字(0-255)來表示的,每個數字代表影像中一個像素的亮度或顏色資訊。其中:

  • 黑白影像:每個像素只有一個值,這個值在0(黑色)到255(白色)之間變化。

零基礎也能搞懂卷積神經網路原理!超詳細!

  • 彩色影像:每個像素包含三個值,最常見的是RGB(Red-Green-Blue)模型,即紅色、綠色和藍色光以不同強度組合起來產生各種顏色。每個顏色通道都有256級亮度,從0~255,因此每種顏色可以用一個8位的二進制數來表述,例如(255,0,0)表示紅色,(0,255,0)表示綠色,( 0,0,255)表示藍色,其他組合則對應各種顏色。計算機中,彩色影像的資料結構通常是一個三維數組或張量,形狀為(寬度,高度,深度),其中深度就是通道的數量,對於RGB影像來說,深度是3。這意味著,對於每個像素位置,有三個數值分別代表紅綠藍三個通道的亮度。例如,一個100*100像素的RGB影像將佔用100x100x3個位元組的記憶體。

零基礎也能搞懂卷積神經網路原理!超詳細!

「這裡「8位元的二進制數」怎麼理解呢?」

在RGB顏色模型中,每個顏色通道(紅、綠、藍)可以有256個不同的亮度級別,每個通道表示8位二進位表示,8位二進位數的最大值是11111111,轉換成十進位就是255;最小值是00000000,轉換成十進位就是0。

何為卷積神經網路CNN?

CNN報導了一個在CV中家喻戶曉的一種應用場景。以原始圖片尺寸為10x10為例,如下圖所示,其左半部是像素值較大,是明亮區域;右半部是像素值較小,為深度區域。中間的分界線即是要偵測的邊緣。

「那麼怎麼偵測邊緣呢?」 此時濾波器filter(也叫kernel)出場了,如下圖所示,kernel尺寸為3x3。

濾波器filter滑過輸入圖片,在每個區域處稍做停留,對應元素相乘再相加計算,之後再向其它區域滑動繼續計算,直到滑動至原圖片的最後一個區域為止。這個過程即為「卷積。」

零基礎也能搞懂卷積神經網路原理!超詳細!

#由上圖可以看出,輸出結果的中間顏色淺,兩邊顏色深,說明原圖的邊界已反應出來。 「因此可以總結出,邊緣偵測就是透過輸入圖片與對應濾波器進行卷積運算得以識別。」

#另外,這裡的滑動還涉及到一個基本概念,「步長stride」,上述範例中,是以stride為1說明,每次滑動一格,共停留了8x8個區域,所以最終輸出結果是8x8矩陣。

「那麼,究竟什麼是卷積神經網路呢?」

經過上面邊緣偵測這一具體的目標偵測場景的分析,我們也就不難理解,CNN(Convolutional neural network)就是透過各種各樣的濾波器filter不斷提取圖片特徵,從局部到整體,進而辨識目標。

而在神經網路中,這些filter中的每個數字,就是參數,可透過大量資料訓練得到(即深度學習的過程)。

CNN中的基本概念

1.卷積(Convolution)

(1) 卷積計算

卷積是數學分析中的一種積分變換的方法,而在影像處理中則採用的是卷積的離散形式。在卷積神經網路CNN中,卷積層的實現方式本質即為數學中定義的互相關計算(cross-correlation)。具體計算過程如下圖所示。

零基礎也能搞懂卷積神經網路原理!超詳細!

其中:

圖(a):左邊的圖大小是3×3,表示輸入資料是維度為3×3的二維陣列;中間的圖大小是2×2,表示一個維度為2×2的二維數組,也即為「卷積核」。卷積核的左上角與輸入資料的左上角(0,0)對齊,並依序將二者對應位置資料相乘,再相加,即可獲得卷積輸出的第一個結果25。

依序類別推,圖(b)、(c)、(d)分別為卷積輸出的第二、三、四個輸出結果。

(2) 圖片卷積運算

那麼圖片卷積運算,具體是怎麼回事呢?如下圖所示即為彩色影像卷積過程。

零基礎也能搞懂卷積神經網路原理!超詳細!

對於彩色影像的通道1(Red)、通道2(Green)、通道3(Blue),分別使用Kernel1、Kernel2、Kernel3。每個卷積核在對應的單色影像上滑動,對每個位置上的小塊區域(Kernel大小)內的像素值與卷積核的相應元素進行逐點乘法運算,然後將這些乘積相加得到一個值。再將每個通道所得的數值相加,並加上總體的偏置Bias,即可得到對應特徵圖(feature map)中的一個值。

立體效果如下圖所示:

零基礎也能搞懂卷積神經網路原理!超詳細!

2.Padding

如上所述邊緣偵測的範例中,可以看到,原圖尺寸是10x10,經過filter之後是8x8。如果再做一次卷積運算就是6x6...這樣的話會有兩個缺點:

  • 每次做卷積操作,輸出圖片尺寸縮小
  • 角落或邊緣區域的像素點在輸出中採用較少,因此容易丟掉影像邊緣位置的許多資訊。

如下圖中左上角紅色陰影只被一個輸出觸碰到,而中間的像素點(紫色方框標記)會有許多3x3的區域與之重疊。所以,角落或邊緣區域的像素點在輸出中採用較少,容易丟掉影像邊緣位置的許多資訊。

零基礎也能搞懂卷積神經網路原理!超詳細!

為了解決這個問題,我們通常採用Padding的方法,在卷積操作之前,先給原始圖片邊緣填充一層像素, 例如,將10x10的圖像即可填滿為12x12的大小,卷積之後的圖片尺寸為8x8,和原始圖片一樣大,這樣便使得原圖的邊緣區域像素點也可以多次被採用。

選擇填滿多少像素,通常有兩種選擇:

  • Same卷積:即如上所述,填充再卷積之後的圖片大小與原始圖片一致。
  • Valid卷積:不進行填充操作,直接卷積。

3.stride

stride的概念在引言中有提到過,表示過濾器filter在原始圖片中水平方向和垂直方向每次滑動的長度,也叫步進長度。

假設s表示stride長度,p表示padding長度,原始圖片尺寸是nxn,過濾器filter尺寸是fxf,則卷積後的圖片尺寸為:

零基礎也能搞懂卷積神經網路原理!超詳細!

4.池化

池化的本質就是降維。

卷積網路中池化層的作用:降低特徵圖的參數量、提升計算速度、增加感受野,也即為一種降採樣操作。

物件偵測中常用的池化:最大值池化(Max Pooling)與平均值池化(Average Pooling)。

(1) Max pooling

即在濾波器filter滑動區域內取最大值,而無需卷積運算。數字大意味著可能探測到了某些特定的特徵,忽略了其它值,降低了雜訊影響,提高了模型健壯性。 「而且,Max pooling所需的超參數僅為濾波器尺寸f和stride長度s,無需要訓練其它參數,計算量較小。」

零基礎也能搞懂卷積神經網路原理!超詳細!

(2) Average pooling

即在濾波器filter滑動區域內求平均值。

零基礎也能搞懂卷積神經網路原理!超詳細!

5.Shape

在處理多維數據,尤其是影像資料時,Tensorflow和Pytorch資料Shape有所區分。

  • TensorFlow:(batch_size, height, width, in_channels)
  • Pytorch:(batch_size, in_channels, height, width)

#其中:

#
  • batch_size:批次處理的樣本數。
  • in_channels:輸入影像的通道數,對於彩色影像通常是3(紅、綠、藍)。
  • height和width分別是影像的高度和寬度。

零基礎也能搞懂卷積神經網路原理!超詳細!

如上圖:

  • #輸入圖片Shape:[height, width, channels],即[8,8, 3],表示一個8x8的影像,有3個通道(R、G、B)。
  • 卷積核Shape:[kernel_height, kernel_width, in_channels, out_channels],即[3,3,3,5],表示一個3x3的捲積核,有3個通道(R、G、B ),輸出通道數是5。
  • 輸出圖片Shape:[height, width, out_channels],即[6,6,5],表示一個6x6的輸出圖片,有5個通道(R、G、B)。
out_height = (height - kernel_height + 1) / strideout_width = (width - kernel_width + 1) / stride
登入後複製
#

對於8x8的圖像和3x3的捲積核,輸出尺寸將是 (8 - 3 + 1) / 1 = 6,因此輸出形狀是 [6, 6, 5],表示一個6x6的特徵圖,有5個輸出通道。

卷積核的輸入通道數(in_channels)由輸入影像的通道數決定,例如:一個RGB格式的圖片,其輸入通道數為3。

而輸出矩陣的通道數(out_channels)是由卷積核的輸出通道數決定,即卷積核有多少個不同的濾波器(filter)。在這個例子中,卷積核有5個濾波器,所以輸出有5個通道。

6.激活函數

並不是所有的映射關係都可以用線性關係準確表達。因此需要激活函數表示非線性映射。

激活函數也就是非線性映射。神經網路如果只是由線性運算堆疊,是無法形成複雜的表達空間的,也就很難提取高語義訊息,因此需要加入非線性映射關係。

(1) Sigmoid函數

零基礎也能搞懂卷積神經網路原理!超詳細!

零基礎也能搞懂卷積神經網路原理!超詳細!

#Sigmoid函數將特徵壓縮到了(0, 1)區間,0端是抑制狀態,1端是活化狀態,中間部分梯度最大。

(2) Relu函數

修正線性單元(Rectified Linear Unit, ReLU)。通常用於緩解梯度消失現象。

零基礎也能搞懂卷積神經網路原理!超詳細!

在小於0的部分,值與梯度為0,大於0導數為1,避免了Sigmoid函數中梯度接近於0導致的梯度消失問題。

零基礎也能搞懂卷積神經網路原理!超詳細!

(3) Softmax函數

#多物件類別較常用的分類器是Softmax函數。

在具體的分類任務中,Softmax函數的輸入往往是多個類別的得分,輸出則是每一個類別對應的機率,所有類別的機率取值都在0~1之間,且和為1。

Softmax函數公式如下:

零基礎也能搞懂卷積神經網路原理!超詳細!

其中,Vi表示第i個類別的得分,C代表分類的類別總數,輸出Si為第i個類別的機率。

CNN整體結構

卷積神經網路CNN由輸入層、卷積層、Relu、池化層和全連接層、輸出層組成。

如下圖所示是一個卷積網路範例,卷積層是卷積網路的第一層,其後跟著其它卷積層或池化層,最後一層是全連接層。越往後的圖層辨識影像越大的部分,較早的層通常專注於簡單的特徵(例如顏色和邊緣等)。隨著影像資料在CNN中各層中前進,它開始識別物體的較大元素或形狀,直到最終識別出預期的物體。

零基礎也能搞懂卷積神經網路原理!超詳細!

其中:

  • 輸入層:接收原始影像數據,作為網路的輸入。
  • 卷積層:由濾波器filters和激活函數構成,屬於CNN的核心層,主要作用是提取樣本特徵。它由輸入資料、filter(或卷積核)和特徵圖組成。若輸入資料是RGB影像,則表示輸入將具有三個維度-高度、寬度和深度。 filter的本質是一個二維權重矩陣,它將在影像的感受野中移動,檢查特徵是否存在。卷積的運算過程如上所述。卷積層一般要設定的超參數包括過濾器filters的數量、步長stride以及Padding的方式(valid or same)以及啟動函數等。
  • 池化層:本質即是下採樣(Downsampling),利用影像局部相關性原理,對影像進行子抽樣,在保留有用資訊的前提下減少資料處理量,具有一定的防止模型過擬合作用。
  • 全連接層:此層的每一個結點與上一層的所有結點相連,用於將前邊提取到的特徵綜合在一起。通常,全連接層的參數是最多的。
  • 輸出層:根據全連接層的資訊得到機率最大的結果。

CNN的優勢

與傳統神經網路相比CNN具有局部連接、權值共享等優點,使其學習的參數量大幅降低,且網路的收斂速度也更快。

  • 局部连接:特征图的每个输出值不需要连接到输入图像中的每个像素值,而只需要连接到应用过滤器filter的感受野,因此卷积层通常被称为“部分连接层”,这种特性也即是局部连接。
  • 权值共享:当卷积核在图像上移动时,其权值是不变的。即为权值共享。

以上是零基礎也能搞懂卷積神經網路原理!超詳細!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1674
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
AI和作曲家:增強代碼質量和開發 AI和作曲家:增強代碼質量和開發 May 09, 2025 am 12:20 AM

AI在Composer中主要通過依賴推薦、依賴衝突解決和代碼質量提升來提高開發效率和代碼質量。 1.AI可以根據項目需求推薦合適的依賴包。 2.AI提供智能解決方案來處理依賴衝突。 3.AI審查代碼並提供優化建議,提升代碼質量。通過這些功能,開發者可以更專注於業務邏輯的實現。

零基礎躺賺攻略:2025年必囤的5種山寨幣,穩賺50倍! 零基礎躺賺攻略:2025年必囤的5種山寨幣,穩賺50倍! May 08, 2025 pm 08:30 PM

在加密貨幣市場中,山寨幣(altcoins)常常被投資者視為潛在的高回報資產。雖然市場上存在許多山寨幣,但並非所有山寨幣都能帶來預期的收益。本文將為零基礎的投資者提供一份詳細的攻略,介紹2025年值得囤積的5種山寨幣,並解釋如何通過這些投資實現穩賺50倍的目標。

幣圈十大加密貨幣交易所排行榜 十大數字貨幣交易平台2025年最新排名 幣圈十大加密貨幣交易所排行榜 十大數字貨幣交易平台2025年最新排名 May 08, 2025 pm 10:45 PM

幣圈十大加密貨幣交易所排名:1. Binance:全球領先,提供高效交易和多種金融產品。 2. OKX:創新多樣,支持多種交易類型。 3. Huobi:穩定可靠,服務優質。 4. Coinbase:新手友好,界面簡潔。 5. Kraken:專業交易者首選,工具強大。 6. Bitfinex:高效交易,交易對豐富。 7. Bittrex:安全合規,監管合作。 8. Poloniex等等。

Web3 AI Crypto Presale為所有用戶提供對沖基金交易工具 Web3 AI Crypto Presale為所有用戶提供對沖基金交易工具 May 08, 2025 pm 08:24 PM

在一個經常被實質性故事驅動的市場中,可能會錯過真正的功能。 PiCoin在2025年共識之前,通過其社區的支持和增加的機構興趣,正在獲得動力。在一個經常被實質性故事驅動的市場中,很容易錯過真正的功能。由於社區支持並增加了機構的興趣,PiCoin(PI)在2025年達成共識之前取得了動力,而Cardano(ADA)在移動速度更快時面對新的競爭對手,另一個項目正在提供不同的東西。雖然Web3AI加密貨幣仍處於預售狀態,但它不是通過追逐趨勢而引起的關注,而是通過使用戶訪問量子對沖基金使用的相同類型的工具

震撼發布! 2025幣圈十大交易所app最新權威排名 震撼發布! 2025幣圈十大交易所app最新權威排名 May 08, 2025 pm 08:03 PM

以下是2025年全球數字貨幣交易所App的權威綜合排名,基於交易量、安全性、合規性及用戶體驗等多維度數據整理,助您精準把握市場動向:

幣圈十大虛擬幣交易所app 2025年幣圈十大數字貨幣交易所最新排行榜 幣圈十大虛擬幣交易所app 2025年幣圈十大數字貨幣交易所最新排行榜 May 12, 2025 pm 06:00 PM

幣圈十大虛擬幣交易所app:1. Binance,2. OKX,3. Huobi,4. Coinbase,5. Kraken,6. Bitfinex,7. Bybit,8. KuCoin,9. Gemini,10. Bitstamp,這些平台因其交易量、安全性和用戶體驗而備受歡迎。

如何設置、獲取和刪除 WordPress Cookie(像專業人士一樣) 如何設置、獲取和刪除 WordPress Cookie(像專業人士一樣) May 12, 2025 pm 08:57 PM

您想了解如何在WordPress網站上使用cookie嗎? Cookie是在用戶瀏覽器中存儲臨時信息的有用工具。您可以使用此信息通過個性化和行為定位來增強用戶體驗。在本終極指南中,我們將向您展示如何像專業人士一樣設置、獲取和刪除WordPresscookie。注意:這是一個高級教程。它要求您精通HTML、CSS、WordPress網站和PHP。什麼是Cookie? Cookie是用戶訪問網站時創建並存儲在用戶瀏覽

2025年火幣APKV10.50.0下載指南 怎麼下載 2025年火幣APKV10.50.0下載指南 怎麼下載 May 12, 2025 pm 08:48 PM

火幣APKV10.50.0下載指南:1、點擊文中直達鏈接;2、選擇正確的下載包;3、填寫註冊信息;4、開始火幣交易流程。

See all articles