卷積神經網路(CNN)在影像辨識中的應用

更新於 發佈於 閱讀時間約 4 分鐘

卷積神經網路Convolutional Neural Networks(CNN)是專門使用在與影像有關的網路。

Image classification

在影像辨識中,我們通常採用one-hot vector表示不同的類別。

EX: 狗: [1 0 0......]T, 貓: [0 1 0......]T, 鳥: [0 0 1]T,...。 可以辨識幾種,就會有幾種dimension。

我們可以先了解一下圖片的組成: 一張圖片擁有3維的tensor。一維長一維寬,剩下一維是Channel。那Channel由RGB三種顏色組成,所以是3 CH。

那只要我們能將圖片轉換成向量,就能成為model的輸入。所以根據我們擁有的長寬和Channel,我們將這三個元素拉長成向量,每一維以顏色的解析度強度做為輸入數值。

Ex: 假設長:100, 寬: 100。

則向量則變成[R1 R2 R3 ... R100 G1 G2 G3 ... G100 B1 B2 B3 ... B100]T

接著我們將向量套入到Fully Connected Network,就會有100x100x3個xi做為輸入的長度。

那再假設我們有1000個neuron,那同時我們就會擁有1000x100x100x3個Weight。


Receptive Field

但這麼多weight有可能造成overfitting的風險。而在影像本身,我們也不一定需要使用fully connected Network,也就是不需要每個input 的dimension都考慮,不需要每個dimension都配給一個weight。

-> 我們可以根據影像中某些Patten進行觀察,去決定結果是什麼動物。這樣的話就不需要看完整的圖片,只要專注在特定位置即可。而這些特定位置我們稱為Receptive field,由使用者決定。

那這些Receptive field可大可小,也可以選擇重複的Receptive field,甚至只考慮某一個Channel也可以。

raw-image


Typical Setting

以下是一些典型的recptive field的設定:

  1. 卷積核(Kernel)設定: 卷積核就類似於Filter,用於圖片特定範圍擷取出來,此例我們假設範圍為3x3。通常我們會直接表示3x3,因為不至於只考慮特定一個channel,通常三個Channel都會考慮。
  2. 通常一個Receptive Field會有多個Neuron去守備它(ex: 64 neurons)
  3. 移動(stride)Receptive Field 以達到重疊 → 避免某個pattern卡在中間變成沒有neurons可以去偵測。那如果超過邊界的話,我們就會設定0或是平均值為數值。


Parameter Sharing

但會有個問題,就是如果neuron偵測的特徵不在我們預設的recptive field範圍內怎麼辦?如果我們把每一塊Rceptive field都加上一樣的特徵偵測,那會不會有太多weight了?所以這時候就可以使用Parameter Sharing的機制。

讓兩個recptive field都共享同樣的weight W1, W2, W3, ...。那只要是被共享的參數,我們會稱為filter,所以可以把W1, W2, W3稱為filter1, filter2, filter3

*老師的舉例:假設每個系都需要學習跟程式相關的課程,總不能讓每個系都開程式的課,會耗費太多資源,但我們可以開設通用課程,讓需要的系所都可以選擇。


總結:Receptive field + Parameter Sharing = CNN


Multiple Convolutional Layers

所以假設我們有64個neuron,那最後就會與圖片交互後,產生64組數值。那在過程中,我們也可以假設產生出的64組數值疊加起來成為新的圖片,再疊加一層,對這一層使用相同的filter進行分析。重複這樣的方式,其實同時也會偵測到越來越大範圍的圖片內容,而不會只是一開始的3x3。


Pooling

Pooling是一種過將圖片縮小,但內容完全沒變的方法。之前會與CNN搭配使用以節省計算量。

作法與過程:

  1. 通過每個filter產生一組組數字
  2. 將每組數字都分成更小組的數字:4x4為一組的數字 -> 分為2x2為一組的數字
  3. 再從每一組中選出最大的那個(也不一定要是最大)
  4. 藉此就會得到較小的圖片 → 但還是會有瑕庛,因為一直不斷地subsampling。
  5. 但pooling只是單純為了減少計算量 -> 現在通常不用,因為硬體設備可支持CNN
  6. 最後再通過flatten,把原本矩陣全部拉直,才能進到Fully Connected Layers,得到我們的結果。


以上是關於今天的CNN課程整理~






留言
avatar-img
留言分享你的想法!
avatar-img
dab戴伯的沙龍
1會員
37內容數
dab戴伯的沙龍的其他內容
2024/09/03
*本文章為參考李弘毅2021年機器學習課程後的筆記。 在訓練模型的時候,常常會遇到訓練上的問題,像是Loss值太大,或是Test出來的結果不如預期,但我們又不知道模型中到底發生了甚麼事,就跟黑盒子一樣。 因此,感謝李弘毅教授傳授了一套SOP來幫助我們判斷模型是哪裡出了問題,應該要怎麼解決!!
Thumbnail
2024/09/03
*本文章為參考李弘毅2021年機器學習課程後的筆記。 在訓練模型的時候,常常會遇到訓練上的問題,像是Loss值太大,或是Test出來的結果不如預期,但我們又不知道模型中到底發生了甚麼事,就跟黑盒子一樣。 因此,感謝李弘毅教授傳授了一套SOP來幫助我們判斷模型是哪裡出了問題,應該要怎麼解決!!
Thumbnail
2024/05/16
本文介紹自我監督學習的概念和訓練方式,以BERT和GPT為例,深入探討Masking Input及Fine-Tune的實際操作和可應用性。
Thumbnail
2024/05/16
本文介紹自我監督學習的概念和訓練方式,以BERT和GPT為例,深入探討Masking Input及Fine-Tune的實際操作和可應用性。
Thumbnail
2024/05/15
這篇文章探討了生成式對抗網路中機率分佈的使用與相關的訓練方式,包括Generator不同的點、Distriminator的訓練過程、生成圖片的條件設定等。此外,也提到了GAN訓練的困難與解決方式以及不同的learning方式。文章內容豐富且詳細,涵蓋了GAN的各個相關面向。
Thumbnail
2024/05/15
這篇文章探討了生成式對抗網路中機率分佈的使用與相關的訓練方式,包括Generator不同的點、Distriminator的訓練過程、生成圖片的條件設定等。此外,也提到了GAN訓練的困難與解決方式以及不同的learning方式。文章內容豐富且詳細,涵蓋了GAN的各個相關面向。
Thumbnail
看更多
你可能也想看
Thumbnail
本文探討了影像生成模型的多種應用,包括文字、圖像和聲音到影片的生成,涵蓋了GAN、Transformer和Diffusion等技術。透過回顧相關研究,分析影像生成技術的未來趨勢與挑戰,為讀者提供全面的理解與啟示。
Thumbnail
本文探討了影像生成模型的多種應用,包括文字、圖像和聲音到影片的生成,涵蓋了GAN、Transformer和Diffusion等技術。透過回顧相關研究,分析影像生成技術的未來趨勢與挑戰,為讀者提供全面的理解與啟示。
Thumbnail
本文主要介紹,如何利用VAE變分自編碼器來訓練生成圖片。 訓練集資料將採用TF影像資料庫中的fashion_mnist VAE變分自編碼器簡單介紹 •VAE(Variational Auto-Encoder)中文名稱變分自編碼器,主要是一種將原始資料編碼到潛在向量空間,再編碼回來的神經網路。
Thumbnail
本文主要介紹,如何利用VAE變分自編碼器來訓練生成圖片。 訓練集資料將採用TF影像資料庫中的fashion_mnist VAE變分自編碼器簡單介紹 •VAE(Variational Auto-Encoder)中文名稱變分自編碼器,主要是一種將原始資料編碼到潛在向量空間,再編碼回來的神經網路。
Thumbnail
前言 讀了許多理論,是時候實際動手做做看了,以下是我的模型訓練初體驗,有點糟就是了XD。 正文 def conv(filters, kernel_size, strides=1): return Conv2D(filters, kernel_size,
Thumbnail
前言 讀了許多理論,是時候實際動手做做看了,以下是我的模型訓練初體驗,有點糟就是了XD。 正文 def conv(filters, kernel_size, strides=1): return Conv2D(filters, kernel_size,
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
此篇調查論文探討了Diffusion模型在文字、圖片和聲音轉換為影片,以及影片衍生和編輯的應用類型。作者也介紹了U-Net架構和Vision Transformer等生成圖像架構,並詳細探討了訓練模型的方法以及不同的影像資料集來源。
Thumbnail
此篇調查論文探討了Diffusion模型在文字、圖片和聲音轉換為影片,以及影片衍生和編輯的應用類型。作者也介紹了U-Net架構和Vision Transformer等生成圖像架構,並詳細探討了訓練模型的方法以及不同的影像資料集來源。
Thumbnail
VQGAN是一種基於GAN(生成對抗式網路)的生成式模型,可以創造新的、逼真的圖像或修改已有圖像。本論文介紹了改進VQGAN用於StableDiffusion中的新方法架構,並提出了一種新的非對稱式VQGAN,具有更強的解碼器和兩個設計條件解碼器。論文下方另附相關資料連結。
Thumbnail
VQGAN是一種基於GAN(生成對抗式網路)的生成式模型,可以創造新的、逼真的圖像或修改已有圖像。本論文介紹了改進VQGAN用於StableDiffusion中的新方法架構,並提出了一種新的非對稱式VQGAN,具有更強的解碼器和兩個設計條件解碼器。論文下方另附相關資料連結。
Thumbnail
本文章介紹了ControlCom影像合成模型的技術與架構,以及其與其他方法的比較。模型具有可控的圖像合成能力,並提供了豐富的細節信息。文章詳細解釋了模型的優勢、方法與架構,以及數據準備和結果與結論。
Thumbnail
本文章介紹了ControlCom影像合成模型的技術與架構,以及其與其他方法的比較。模型具有可控的圖像合成能力,並提供了豐富的細節信息。文章詳細解釋了模型的優勢、方法與架構,以及數據準備和結果與結論。
Thumbnail
學習如何使用 Tensorflow.js 的 COCO-SSD 模型在網頁上進行圖片物件辨識,包括基本使用方法、進階應用及實作範例,輕鬆辨識圖片中的人數和物件。
Thumbnail
學習如何使用 Tensorflow.js 的 COCO-SSD 模型在網頁上進行圖片物件辨識,包括基本使用方法、進階應用及實作範例,輕鬆辨識圖片中的人數和物件。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News