iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0

CNN 全名為卷積神經網絡 (Convolutional Neural Network),與一般的 NN 神經網絡不同的是具有兩個特點

  • 權值共享
    今天假如是一般的FC架構,輸入一張28281的灰階照片(784個特徵),隱藏層使用100個神經元,那麼會需要多少個參數?
    答案是:
    100*784 (weights)+100 (bias)= 78500個參數
    單單一層隱藏層參數就瞬間爆量,如果使用CNN層的話情況就有所不同了。
    CNN 權值共享的概念可以這樣想像,在一般的圖像內有許多的特徵是相同的,
    如特定的輪廓或線條,那我們就可以讓相同幾個神經元組成的卷積核去學這個特徵,透過滑動窗口對整張圖片進行卷積,進而達到節省參數的效果。

  • 保留位置資訊

CNN 還有一大特色就是能保留圖像的位置資訊,圖片中的像素 ( Pixels ) 與其鄰近的像素會有一定的關聯度,如果我們直接使用全連接層的結構來訓練圖像資訊的話,就要先通過一個攤平 ( Flatten ) 的步驟,把高維的資訊拉成一條直線,如此一來就會大量失去特徵之間的空間資訊,效果當然會大打折扣。

CNN 原理

CNN是怎麼做到權值共享與保留位置資訊的呢?
用簡短兩句話詮釋CNN中卷積(Convolution)的基本概念:

透過卷積核 ( Kernels ) 滑動對圖像做訊息提取,
並藉由步長 ( Strides ) 與填充 ( Padding ) 控制圖像的長寬。

卷積核

卷積核 ( Kernel ) 又稱為 Filters、特徵檢測 Features Detectors ,
我們可以藉由選擇 Kernel 的張數控制 Feature maps 的深度 (圖像經由Kernel卷積後的結果,也就是圖中粉紅色的部分 ) ,藉由調整 Kernel 大小決定 Kernels 的特徵接受域 ( Receptive field )。

滑動卷積 示意圖

Kernel 的起始值與運算

上圖中黃色區塊就是一個 3*3 的卷積核,其中的值就是我們預訓練設置的權重,通常用常態分佈隨機產生,再經由訓練更新。圖中的 1 , 0 是自己設的,目的只是為了計算方便,不然通常都是一些隨機或常態分佈的小數。

而卷積是怎麼完成的呢?圖中可以發現 3*3 的 Kernel 每次對到我們圖像中的像素也是 3*3 ,藉由各點相乘後,相加算出一個值,再往下一步走 ( 先往右走,再往下走 ) ,直到走完整張的圖像。

Kernel的張數

控制張數主要就是控制學習的參數量,沒有一定幾張就是對的,常見是 16、32或64 ,如果我們使用 16 張 Kernels 就能達到很好的效果,那也就不需要浪費額外的參數去增加學習與計算量。

Kernel大小

Kernel 大小與其接受域 ( Receptive field ) 有關,接受域直觀來說就是 Kernel 提取資訊的尺度,要是在預偵測的主體在整張圖像裡的比例很大,結果最後都選用很小的 Kernel 來卷積,那效果可能就不是這麼好,同理,要是主體很小卻都用很大的 Kernel 來卷積,想必也不是這麼妥當。
現在普遍流行的方式是選用不同大小的 Kernel 對圖像做卷積後,再把輸出的特徵圖 ( Feature maps ) 去做合併或平均。
常見的 Kernel 大小有 1*1 , 3*3, 5*5, 7*7。
然而也有人提出,兩層 3*3 的 Kernel 卷積與一層的 5*5 Kernel 卷積擁有相近的接受域,並且使用較少的參數量,因此也可以去嘗試看看不同組合能達到的效果。

為什麼 Kernel 大小都是奇數呢?其實偶數也可以,但基數 Kernel 有幾個先天上的優勢,第一個原因是由於基數的卷積核有中心點,較容易對齊確認位置資訊,再者是因為基數的卷積核能確保 Padding 的對稱性。

步長

步長 ( Strides ) 為控制圖像長寬尺寸的方式之一,下圖中的 Kernel 步長分別為 1、2,可以觀察到輸出的特徵圖大小也不同,雖然通常長寬上的步長會設為相等,但我們也可以透過不同的長寬步長控制特徵圖不同維度尺度的變化。

步長為一 特徵圖呈現示意圖

步長為二 特徵圖呈現示意圖

好,今天的內容大概是這樣,送各位一首歌曲,我這個人
https://www.youtube.com/watch?v=LQKvIt_ZnBQ&ab_channel=EveAi-Topic


上一篇
Day3 深度學習基本名詞介紹
下一篇
Day5 FC / ANN 介紹
系列文
數位中介法沒有屏蔽的 AI 大數據大補帖30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言