Deep Learning - Convolutional Neural Networks

Deep Learning - Convolutional Neural Networks

LAVI

CNN

Convolutional Neural Networks (CNNs)

Convolution layer

1. Filter (Kernel)

是將輸入圖片與特定的 Feature filter 做卷積運算
將下圖 input image 每 3x3 個矩陣相乘後再相加,依序做完整張表

5d4f)

原本的 input image 為 6x6,filter 為 3x3,產生的 feature map 會是 4x4,

設 input image size 為
filter size 為

output image size 為


圖片來源

filter 的目的是萃取出圖片當中的一些特徵

2. Padding

因為做捲積會導致圖片邊緣的特徵被丟掉
並且會壓縮原有 input image

因此在圖片邊緣外層 padding 一圈 0,可以解決以上問題,讓輸出圖的大小和輸入圖一樣

設 padding layer 有多少層為 p

ex: 如果 filter 是 5x5,就會有 2 layers of zero 被加在圖片邊緣外


Same convolution
讓輸出圖和輸入圖大小相同,做以上 padding 方法

Valid convolution
不做 padding

3. Stride

stride 控制 filter 做捲積運算的時候每次移動多少格

output size 為

ex: filter 為 3x3,做 valid convolution 在 7x7 的 input image,stride 為 2
則輸出圖片大小為 = 3x3

Convolutions Over Volumes

立體的捲積運算

imput size = nxn
filter size = fxf
stride = s
padding = p

: number of channels in the input and filters
: number of filters
output image size =

ex:
imput size = 6x6x3
filter size = 3x3x3
stride = 1
padding = 0
n_c’ = 2

output size = 4 x 4 x 2

Pooling layer

池化層通常用於減少輸入量,從而加快計算速度

如果 input of pooling layer 是

output 的大小就是

Pooling 有 Max Pooling 和 Average Pooling,通常用 Max Pooling

Max Pooling


圖片來源
取每一格 pixel 的最大值那格

Flattening

把多維的矩陣拉長成一條直線,壓扁,才能被全連接層的神經元接收

Fully connected layer

將捲積層與池化層輸出的特徵輸入的全連接層,調整權重以達到分類的結果

GAN

Generative Adversarial Networks (GANs)

Transformer Model

  • encoder-decoder structure
  • self-attention without relying on recurrence and convolutions to generate an output

Reference