# 什麼是轉置矩陣(Transposed Convolution) ###### tags: `AI面試精選題` ## 目錄 * Convolution 簡介 * Transposed Convolution 簡介 * 實際案例 ## 卷積(Convolution)簡介 - Convolution 是一個「將原始資料縮透過遮罩(Mask)縮減成少量關鍵特徵」的技術,用數學角度想就是將原始資料與 Mask 進行「線性轉換」。 - 圖像辨識:透過 Convolution 將原始圖片搭配 Mask 運算後,得出有用的特徵圖(Feature Map)。 - Output Size = $1 + \frac{size\ of\ image\ – kernel\ size\ + 2*padding}{stride}$  - 訊號處理:透過 1D Convolution 將原始訊號轉換成「特徵訊號」。  ## Transposed Convolution 簡介 - 剛好跟 Convolution 的功能「完全相反」。 - 將某個 Pixel 或資料點以「線性轉換」方式轉換成多個資料  ## 用數學方式理解 Convolution、Transpose Convolution 的運作 - 已知有一張 4*4 的 Image、一張 3*3 的 Kernel,以及透過 Kernel 將 Image 線性轉換後的 Output,Image 中每個 Pixel 為 $I=\{I_{ij} | i = 1, 2, 3, 4; j = 1, 2, 3, 4\}$,Kernel 中每個 Pixel 為 $K=\{K_{ij} | i = 1, 2, 3; j = 1, 2, 3\}$,Output 中每個 Pixel 為 $O=\{O_{ij} | i = 1, 2; j = 1, 2\}$。 $$ O_{11}=I_{11}K_{11}+I_{12}K_{12}+I_{13}K_{13}+I_{21}K_{21}+I_{22}K_{22}+I_{23}K_{23}+I_{31}K_{31}+I_{32}K_{32}+I_{33}K_{33} \\ O_{12}= I_{12}K_{11}+I_{13}K_{12}+I_{14}K_{13}+I_{22}K_{21}+I_{23}K_{22}+I_{24}K_{23}+I_{32}K_{31}+I_{33}K_{32}+I_{34}K_{33}\\ O_{21}= I_{21}K_{11}+I_{22}K_{12}+I_{23}K_{13}+I_{31}K_{21}+I_{32}K_{22}+I_{33}K_{23}+I_{41}K_{31}+I_{42}K_{32}+I_{43}K_{33}\\ O_{22}= I_{22}K_{11}+I_{23}K_{12}+I_{24}K_{13}+I_{32}K_{21}+I_{33}K_{22}+I_{34}K_{23}+I_{42}K_{31}+I_{43}K_{32}+I_{44}K_{33}\\ $$  - 若將 Convolution 以 Matrix Multiplication 計算,則: $$ I= \begin{bmatrix} I_{11} \\ I_{12} \\ I_{13} \\ I_{14} \\ I_{21} \\ I_{22} \\ I_{23} \\ I_{24} \\ I_{31} \\ I_{32} \\ I_{33} \\ I_{34} \\ I_{41} \\ I_{42} \\ I_{43} \\ I_{44} \end{bmatrix}_{1*16} \\ K= \begin{bmatrix} K_{11} & K_{12} & K_{13} & 0 & K_{21} & K_{22} & K_{23} & 0 & K_{31} & K_{32} & K_{33} & 0 & 0 & 0 & 0 & 0 \\ 0 & K_{11} & K_{12} & K_{13} & 0 & K_{21} & K_{22} & K_{23} & 0 & K_{31} & K_{32} & K_{33} & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & K_{11} & K_{12} & K_{13} & 0 & K_{21} & K_{22} & K_{23} & 0 & K_{31} & K_{32} & K_{33} & 0 \\ 0 & 0 & 0 & 0 & 0 & K_{11} & K_{12} & K_{13} & 0 & K_{21} & K_{22} & K_{23} & 0 & K_{31} & K_{32} & K_{33} \end{bmatrix}_{4*16} \\ O= K_{4*16} \cdot I_{16*1}=\begin{bmatrix} O_{11} \\ O_{12} \\ O_{21} \\ O_{22} \\ \end{bmatrix} \\ $$ - Transposed Convolution 就是從轉成矩陣的 Convolution 進行轉換的 $$ K^{T}=\begin{bmatrix} K_{11} & 0 & 0 & 0 \\ K_{12} & K_{11} & 0 & 0 \\ K_{13} & K_{12} & 0 & 0 \\ 0 & K_{13} & 0 & 0 \\ K_{21} & 0 & K_{11} & 0 \\ K_{22} & K_{21} & K_{12} & K_{11} \\ K_{23} & K_{22} & K_{13} & K_{12} \\ 0 & K_{23} & 0 & K_{13} \\ K_{31} & 0 & K_{21} & 0 \\ K_{32} & K_{31} & K_{22} & K_{21} \\ K_{33} & K_{32} & K_{23} & K_{22} \\ 0 & K_{33} & 0 & K_{23} \\ 0 & 0 & K_{31} & 0 \\ 0 & 0 & K_{32} & K_{31} \\ 0 & 0 & K_{33} & K_{32} \\ 0 & 0 & 0 & K_{33} \end{bmatrix}_{4*16} O=\begin{bmatrix} O_{11} \\ O_{12} \\ O_{21} \\ O_{22} \end{bmatrix}_{1*4} I= O_{1*4}\cdot K_{4*16} \\ $$ ## 實際案例 ### Generative Adversarial Network - 一種影像生成的深度學習演算法 - Discriminator Network:判斷生成出來的圖片與真實圖片是否相同或相似。 - Generator Network:藉由 D-dimensional noise vector 產生出一張偽圖片,其中就會大量使用到 Transposed Convolution。  ### U-Net - 影像切割案例中最常使用的深度學習架構 - 在 Encoder 階段,將圖片以 CNN 方式萃取出關鍵特徵 - 在 Decoder 階段,除了以 Transposed Convolution 將 Feature Map 中每個特徵轉換成多個特徵外,部分 Encoder 階段得到的 Feature Map 也會在此階段搭配運算。  ### Reference Mozaffari M.H. and Tay L.L. (2020). A Review of 1D Convolutional Neural Networks toward Unknown Substance Identification in Portable Raman Spectrometer. *arXiv:2006.10575*
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.