๐ก Convolution์ด๋?
ํ๋์ ํจ์์ ๋ ๋ค๋ฅธ ํจ์๋ฅผ ๋ฐ์ ์ด๋ํ ๊ฐ์ ๊ณฑํ ๋ค์, ๊ตฌ๊ฐ์ ๋ํด ์ ๋ถํ์ฌ ์๋ก์ด ํจ์๋ฅผ ๊ตฌํ๋ ์ํ ์ฐ์ฐ์์ด๋ค.
์ ์๋ ์ด๋ ต์ง๋ง ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ฐ,
filter์ ๊ฐ์ค์น ๊ฐ๋ค์ input image ํด๋น ๋ถ๋ถ์ ํฝ์ ๊ณผ ํ๋์ฉ ๊ณฑํด ๋ํ๋ ํฉ์ฑ๊ณฑ์ ๊ณผ์ ์ด๋ค. ์ฆ, 0๏ผ1 + 0๏ผ1 + 0๏ผ1 + 1๏ผ0 + 1๏ผ0 + 1๏ผ0 + 1๏ผ(-1) + 1๏ผ(-1) + 1๏ผ(-1)์ ํตํด feature map์ -3์ด๋ผ๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋์ถ๋ ๊ฒ์ด๋ค.
์ด๋ฌํ Convolution ์ฐ์ฐ์ ์ญ์์ผ๋ก ์งํํ๋ ๊ฒ์ด Transposed Convolution์ด๋ค.
๐ก Transposed Convolution์ด๋?
Convolution์ ์ญ์์ผ๋ก input feature๋ก๋ถํฐ output pixel์ ์ฐ์ฐํ๋ ๊ณผ์
Transposed Convolution ์ฐ์ฐ์ ์ํํ๋ฉด ์์์ง feature map ์ฌ์ด์ฆ๋ฅผ ๋ณต์ํ ์ ์๋ค. ์ฌ์ด์ฆ๋ฅผ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ Upsampling๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ๋ ์กด์ฌํ์ง๋ง ํ์ต์ ํ๋ ๊ฒ์ด ์๋๋ผ๋ ๋จ์ ์ด ์๋ค. Convolution์ด ํ์ต์ ํตํด feature ์ฌ์ด์ฆ๋ฅผ ์ค์ด๊ณ Max Pooling์ ๋จ์ํ feature๋ฅผ ๋ฝ์๋ด์ ์ฌ์ด์ฆ๋ฅผ ์ค์ด๋ ๊ฒ์ฒ๋ผ, Upsamling์ ๋จ์ํ feature๋ฅผ ๋ณต์ ํ๊ฑฐ๋ ์๋ฏธ์์ด ์ฑ์์ ์ฌ์ด์ฆ๋ฅผ ๋๋ฆฌ์ง๋ง Transposed Convolution์ ํ์ต์ ํตํด feature๋ฅผ ๋๋ฆด ์ ์๋ค.
Transposed Convolution์ ๊ธฐ์กด ์ฐ์ฐ ๊ณผ์ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค. ๊ฐ ํฝ์ ํ๋ํ๋๋ฅผ filter์ weight์ ๊ณฑํ๋ ์ฐ์ฐ์ ํ๊ณ , element-wise summation์ ํ์ฌ output pixel๊ฐ์ ๊ณ์ฐํ๋ค. ์ 'Transposed'๋ผ๋ ์ด๋ฆ์ด ๋ถ์๋์ง๋ Understand Transposed Convolutions ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค! ์์ด์ง๋ง ์ค๋ช ์ด ์์ฃผ ์์ธํ๊ฒ ์ ๋์ด์๋ค๐
๊ธฐ์กด์ ์ฐ์ฐ ๊ณผ์ ์ ์์ ๊ฐ์ง๋ง, ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก input feature๋ฅผ ๋ณํํ ํ Convolution ์ฐ์ฐ์ ์ฌ์ฉํ์ฌ Transposed Convolution์ ๊ตฌํํด๋ณผ ์ ์๋ค. ์์ ํ ๋๊ฐ์ง๋ ์์ง๋ง ๊ตฌํ ๊ณผ์ ์์ ์ ์ฌํ๋ค๊ณ ํํํ ์ ์๋ค.
์ ์ด๋ฏธ์ง์ ๊ฐ์ด padding์ผ๋ก feature์ ์ฌ์ด์ฆ๋ฅผ ๋๋ฆฌ๊ณ ๊ธฐ์กด์ convolution ์ฐ์ฐ์ ์ฌ์ฉํ์ฌ output pixel์ ์ฐ์ฐํ๋ ๋ฐฉ๋ฒ์ด๋ค.
Transposed Convolution์ feature๋ก๋ถํฐ image๋ฅผ ์ถ์ ํด ๋๊ฐ๋ ์ฐ์ฐ์ด๋ฏ๋ก ์ด๋ฌํ ๋ณํ์ผ๋ก๋ ๊ตฌํํด ๋ณผ ์ ์๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด pytorch๋ฅผ ํตํด Transposed Convolution์ ๊ตฌํํ ๋ ConvTranspose2d ํจ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ Conv2d ํจ์๋ง์ ์ฌ์ฉํด์ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ ์ ์๋ค.
CNN์ ์ด์ฉํ์ฌ AutoEncoder๋ฅผ ๊ตฌํํ ๋, Encoder์์ Convolution์ ํตํด latent space๋ฅผ ๋ฝ์๋ด๊ณ Decoder์์ Transposed Convolution์ ํตํด input image์ ๋์ผํ ์ฌ์ด์ฆ๋ฅผ ๋ณต์ํ๋ค. ์ด ๊ณผ์ ์์ Encoder์์๋ Conv2d๊ฐ, Decoder์์๋ ConvTranspose2d๊ฐ ์ฌ์ฉ๋๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
ํ์ง๋ง, ์์ ๋งํ ๊ฒ์ฒ๋ผ zero padding์ ์ฌ์ฉํ๋ฉด Decoder ๊ณผ์ ์์๋ ConvTranspose2d ๋ง๊ณ Conv2d๋ง์ ์ฌ์ฉํ์ฌ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
Transposed Convolution ๋ฟ์๊ธฐ๐