Fully Convolutional Network (FCN) ์ ๋ฆฌ
Back to : deep-learning-study
Motivation
Linear layer๋ ์ธ ์ ์๋ค
LeNet์ ์์์ผ๋ก ์ฌ๋ฌ CNN ๋ชจ๋ธ๋ค์ ๊ธฐ์กด์ ๋ฐฉ๋ฒ๋ค๋ก๋ ๋์ ํ ์ด๋ฃฐ ์ ์๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๋ฉด์ ์ด๋ฏธ์ง์ฒ๋ฆฌ ๋ถ์ผ์์ ๋๋ผ์ด ๋ฐ์ ์ ๊ฒฌ์ธํ์ต๋๋ค.
์ ๋ง ๊ฐ๋จํ๊ฒ, Imagenet challenge๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉด์ ์๊ธฐํ์๋ฉด,
- AlexNet (2012) ๊ฐ deep CNN์ด ์ผ๋ง๋ ๊ฐ๋ ฅํ์ง๋ฅผ ์ ๋ณด์๊ณ ,
- VGGNet, GoogLeNet (2014) ์ด ๋ค์ํ๋ฒ (๋ ๋ฐฉ๋ฒ์ด ์ ๊ทผ์ด ๋ค๋ฅด๊ธด ํ์ง๋ง) ๋๋ผ์ด ์ฑ๊ณผ๋ก ํ์๋ฆฌ์ top-5 error rate๋ฅผ ๋ณด์ฌ์ค ๋ฐ ์ด์ด,
- ResNet (2015) ์ด ์๋ก์ด architecture๋ก ์ฑ๋ฅ์ ๋ค์ ๊ธ์์น์ํค๋ ๋ฑ
๋ช๋ ์ฌ์ด์ ๊ฑฐ์ ์ฌ๋์ด ์ฒ๋ฆฌํ๋ ์์ค์ ์ ํ๋๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ ๋์์ต๋๋ค. ๊ทธ๋ฌ๋, ์ด ๋ชจ๋ธ๋ค์ image classification ์ ์ํํ๋ ๋ชจ๋ธ๋ค์ด๊ธฐ ๋๋ฌธ์, segmentation์ ํ๊ธฐ ์ํด์๋ ์ฝ๊ฐ ๋ค๋ฅธ ์ ๊ทผ์ด ํ์ํฉ๋๋ค.
์ด ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ, semantic ๋๋ instance segmentation์ classification๊ณผ๋ ๋ค๋ฅด๊ฒ, ๊ณ ์์ด๊ฐ ์๋์ง ๋ฟ ์๋๋ผ ์ด๋์ ์๋์ง๋ฅผ ์์์ผ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ, LeNet ๊ฐ์ CNN์ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉดโฆ
๋ง์ง๋ง์ Fully connected layer๋ฅผ ๋ค๋๊ฒ ์ผ๋ฐ์ ์ธ๋ฐ (๋น์ฐํ, ์ด๋ฏธ์ง์ โ์ ์ฒดโ ๋ฅผ ๋ณด๊ณ ์ด๋ค ์ด๋ฏธ์ง์ธ์ง ์๊ณ ์ถ์ ๊ฒ์ด๋ฏ๋ก ์์ฐ์ค๋ฝ์ต๋๋ค), ์ด๋ ๊ฒ ํ๋ฉด ์ด๋ฏธ์ง์์ ๊ณ ์์ด๊ฐ ์๋ ์ด๋์ ์์๋์ง์ ๋ํ spatial information์ ๋ค ๋ ๋ ค ๋ฒ๋ฆฌ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋์, ๋์ด์ linear layer๋ ์ธ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด, ๋ง์ง๋ง๋ ๊ทธ๋ฅ ๋ค convolution์ผ๋ก ๋ฐ์ด๋ฒ๋ฆฌ๋ฉด ์ด๋จ๊น์? ์ด ์์ด๋์ด๊ฐ FCN์ ๊ธฐ๋ฐ์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ๋ ๋ค๋ฅธ ์ฅ์ ์, feature๋ฅผ ์ถ์ถํ๋ ๋ถ๋ถ (์์ผ๋ก ์ ์งํ๋ฉด์ ์ค์ฌ๋๊ฐ๋ ๋ถ๋ถ) ์ ๊ธฐ์กด์ ์ ์๋ ค์ง ๋คํธ์ํฌ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ์ ์๊ณ , ๊ทธ๋ ๊ฒ ๋๋ฉด ๊ทธ ๋คํธ์ํฌ๋ก๋ถํฐ weight๊ฐ์ ๊ทธ๋๋ก ๋ฐ์์ค๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค๋ ์ ์ ๋๋ค. Pretrained network๋ฅผ ์ ํ์ฉํ ์ ์๋ค๋ ๊ฒ์ผ๋ก ์์ฝํ ์ ์๊ฒ ์ต๋๋ค.
Pooling์ ์์จ ์๋ ์๋๋ฐโฆ
์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ์ต๋ํ pixel-wise segmentation์ ๋๋ค. ๊ทธ๋ฐ๋ฐ, ์๋ฅผ ๋ค์ด ๋ฌด์์ VGGNet๊ฐ์๊ฑฐ์ ๋ linear layer๋ฅผ ๋ฏ์ด๋ฒ๋ฆฌ๊ณ convolution์ ๋ช๊ฐ ๋ ๋ฌ์์ segmentation์ ์ํค๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ์์๊น์?
- VGGNet์ ๋๋ฆฌ๋ ๊ณผ์ ์ ์ ๋ณด๋ฉด, feature map์ ํฌ๊ธฐ๊ฐ pooling์ ํ๋ค ๋ณด๋ฉด ๊ณ์ ์ค์ด๋ค๊ฒ ๋ฉ๋๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก, ๊ฒฐ๊ตญ ๋ง์ง๋ง ์๊ฐ์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง feature map์ ์๋ณธ์ ๋นํด ๊ฐ๋ก, ์ธ๋ก๊ฐ ๊ฐ๊ฐ 1/32๋ก ์ค์ด๋ ์ด๋ฏธ์ง๊ฐ ๋ฉ๋๋ค. 256 x 256์ ๋ค๊ณ ์์ํ๋ค๋ฉด, 8 x 8 ์ด ๋๊ฒ ๋ค์.
- ๋น์ฐํ, upsampling์ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ํ ๋ฐ์ค์ ํฌ๊ธฐ๊ฐ ๊ธฐ๋ณธ 32 x 32์ธ segmentation์ ์ข ๋ง์์ ์ ๋ญ๋๋ค.
- ์ฆ, pooling์ ํ ์๋ก segmentation์ ์ ๋ฐํ๊ฒ ํ ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ทธ๋ ๋ค๊ณ ํด์ pooling์ ํฌ๊ธฐํ ์๋ ์๋ ๊ฒ์ด, pooling์ ์ํ๋ฉด ์ด๋ ๊ฒ ๊น๊ฒ ๋คํธ์ํฌ๋ฅผ ์์์ ๋ ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์๊ฒ ๋ฉ๋๋ค.
- parameter๊ฐ ๋๋ฌด ๋ง์์, training์ด ๋งค์ฐ ์ด๋ ต๊ฑฐ๋ ๋ถ๊ฐ๋ฅํด์ง๋๋ค. ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์ผ๋ฉด overfitting์ ๋ฌธ์ ๊ฐ ์ฆ๋๋ ์๋ ์์ต๋๋ค.
- ๊ฐ feature๊ฐ ์ํฅ์ ๋ฐ๋ receptive field๊ฐ ๋๋ฌด ์์ต๋๋ค. ์ด๊ฑด convolution ์ฐ์ฐ ์์ฒด์ ํ๊ณ์ธ๋ฐ, convolution (3 by 3) ์ 10๋ฒ ํ๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ 1ํฝ์ ์ ์ฌ์ค ๊ฐ๋ก์ธ๋ก ์ฃผ๋ณ 10ํฝ์ ํฌ๊ธฐ ์ ์ฌ๊ฐํ์ ์ํด ๊ฒฐ์ ๋๊ฒ ๋ฉ๋๋ค. ์ฆ ์ ์ฒด์ ์ธ ํฐ๊ทธ๋ฆผ์ ๋ณผ์๊ฐ ์์ต๋๋ค. ์๋ฌด๋ฆฌ segmentation์ด localํ ํน์ง์ ์ก์๋ด๋ task๋ผ๊ณ ๋ ํ์ง๋ง, ์์ ํฐ๊ทธ๋ฆผ์ ๋ณผ์ ์์ด์๋ ๊ทธ๊ฒ๋ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค.
ํ๋ํ๊ธฐ
๊ฒฐ๊ตญ ์ฌ๊ธฐ๊น์ง ์ค๋ฉด์ ๋ค์์ ๊ฒฐ๋ก ์ด ๋๊ฒ ๋ฉ๋๋ค.
Pooling์ ํฌ๊ธฐํ ์๋ ์๋ค. ๊ทธ๋ฌ๋, Pooling์ ์ํํ๋ฉด ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ์ค์ด๋ ๋ค. Convolution์ ๊น๊ฒ ํด์ผ feature๋ฅผ ์ถ์ํ ์ ์๋๋ฐ, ๊ทธ๋ฌ๋ฉด โsemantic segmentationโ ํ๋ ์๋ฏธ๊ฐ ์ข ์์ด์ง๋ค.
๊ทธ๋ ๋ค๋ฉด, ํฉ๋นํ ์๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋๋ฆฌ๋ ๊ฒ์ผ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฅผ Upsampling์ด๋ผ๊ณ ํ๋๋ฐ, ์์ ์ด๋ฏธ์ง, ์๋ฅผ๋ค์ด 100 x 100 ์ด๋ฏธ์ง๋ฅผ ํ๋ํด์ 200 x 200์ผ๋ก ๋ง๋ค๊ณ ์ ํฉ๋๋ค. ๋น์ฐํ ์๋ฌด๋ ๊ฒ๋ ๋ง๋๋๊ฒ์ ๋ง๋ ์ ๋๊ณ , ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ด์ธํ๊ฒ ๋ณต๊ตฌํ๊ณ ์ถ์ต๋๋ค.
Unpooling ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ผ์ข ์ Un-pooling์ผ๋ก, poolingํ์ ๋ ์๋ฅผ ๋ค์ด 2x2 ๋ก์ปฌํ ๋ถ๋ถ์ max๊ฐ๋ง์ ์ทจํ๋ค๋ฉด ์ด๋ฅผ ๋ค์ ๋ณต๊ตฌํ ๋ 2x2 ๊ฐ๋ก ๋ณต์ฌํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฏธ์ง๋ก๋ถํฐ ์ค์ง์ ์ผ๋ก ์๋ ์ ๋ณด๋ฅผ ๋ ์ ์ถํ์ง ์์ผ๋ฉฐ, ๋จ์ํ๊ฒ ํฌ๊ธฐ๋ง ๋ง์ถฐ ์ฃผ๊ฒ ๋ฉ๋๋ค. ๋๋, ์ ๋นํ ์ธ์ ํ ๊ฐ๋ค์ ์ด์ฉํด Bilinear interpolationํ๋ ๋ฐฉ๋ฒ๋ ์๊ฒ ์ต๋๋ค.
Transposed Convolution ์ด ์ดํ์ ๋ง์ ๋
ผ๋ฌธ์์๋ Transposed convolution์ด๋ผ๋ ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ์ผ๋ถ ๋
ผ๋ฌธ๋ค์ ์ด๊ฒ์ deconvolution์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋๋ฐ, ์ผ์ข
์ convolution์ ๊ฑฐ๊พธ๋ก ํ๋๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฐ ์ด๋ฆ์ด ๋ถ์์ง๋ง ์ฌ์ค ์ํ์ ์ผ๋ก convolution์ ์ญ์ฐ์ฐ์ด ์๋๋ฉฐ, ์ญ์ฐ์ฐ์ ๋ฐ๋ก ์๊ธฐ๋๋ฌธ์ ๋ณ๋ก ์ ์ ํ ์ด๋ฆ์ ์๋๋๋ค. convolution์ด ํํฐ๋ฅผ ๋ฐ๋ฉด์ ๋ด์ ํ๊ณ ์ด๋ฅผ ๋ํ๋ ๊ฒ์ฒ๋ผ, ๋๊ฐ์ด ์ํํ๋ deconvolution์ ํตํด์๋ feature์ ๊ฐ์๊ฐ ๋์ด๋ฉ๋๋ค. ์ด๊ฒ์ด ์ด๋ป๊ฒ ๊ฐ๋ฅํ์ง๋ ์๋ณด๋ค๋ ์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ๋ฐ๋ก ์ดํดํ ์ ์์ต๋๋ค.
์ด ๊ทธ๋ฆผ์์, convolution ์ฐ์ฐ์ด์๋ค๋ฉด ์์ชฝ์ 6x6์ด input์ด ๋๊ณ 3x3 ํํฐ๋ฅผ ๋ฐ์ด์ ์๋์ชฝ์ 4x4 feature map์ ์ป์์ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฒ์๋ ๋ฐ๋๋ก, 4x4 feature map์ input์ผ๋ก ๋ฐ๊ณ , filter์ ๊ทธ ๊ฐ๋งํผ์ ๊ณฑํด์ ๋ํด์ฃผ๋ ์์ผ๋ก ์๋ํฉ๋๋ค.
๋ฐ์ง์๋ฉด, transposed convolution์ ์ผ์ข
์ trainable up-sampling์ด๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค.
๋ค๋ง, ์ด ๋ฐฉ๋ฒ๋ค์๋ ๋งค์ฐ ์ค๋ํ ๋ฌธ์ ๊ฐ ์ฌ์ ํ ๋จ์ ์์ต๋๋ค. Feature map์ด ์์์ก์ ๋ ์๋ฌด๋๋ ์ด๋์ ๋ ์ ๋ณด๋ฅผ ์์ ์๋ฐ์ ์๊ธฐ๋๋ฌธ์, upsampling์ ์ ํด๋ fine prediction์ด ์ด๋ ต๋ค๋ ๊ฒ์ ๋๋ค. ๊ธฐ๊ป ์ด๋ฏธ์ง๋ฅผ ๋ค์ ์๋ ์ฌ์ด์ฆ๋ก ์ฌ๋ ค๋๋ prediction์ด 8x8 ์ฒญํฌ๋ก ์ด๋ฃจ์ด์ง๋ฉด ์๋ฏธ๊ฐ ๋ณ๋ก ์์ ๊ฒ์ ๋๋ค.
DAG is the way to go
Long et al, ์ ์๋ค์ (์ด์ ๋ ๋ง์ด ์ฐ์ด์ง๋ง) ์๋นํ novelํ approach๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ด ๊ทธ๋ฆผ์์์ฒ๋ผ, ์ด๋ฏธ์ง ๋ถ๋ฅ๋ฅผ ์ํํ๋ path๋ฅผ ์ผ์ข
์ DAG๋ก ํ์ฅํ๋ ๊ฒ์
๋๋ค. ์ฆ, convolution layer๋ฅผ ํ๊ณ ํ๋ฌ๊ฐ๋ ๋์ค์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋์ง์ด๋ด์, intermediate feature value๋ค์ ํ์ฉํ์ฌ segmentation์ ์ํํฉ๋๋ค.
Training
์ ์๋ค์ ๋น์ ImageNet ์ฑ๋ฆฐ์ง์์ ์ข์ ์ฑ๊ณผ๋ฅผ ๊ฑฐ๋์๋ VGGNet, GoogLeNet๊ณผ AlexNet์ backbone์ผ๋ก ํ๋ FCN์ ์คํํ์๊ณ , VGGNet์ ์ฑ๋ฅ์ด ๊ฐ์ฅ ์ฐ์ํ์ต๋๋ค.
- ๊ธฐ๋ณธ Training์ SGD with Momentum์ด๊ณ (Adam, Batchnorm์ด ์ฐ๊ตฌ๋๊ธฐ ์ ์ ๋๋ค)
- Dropout์ ์๋ณธ์ classifier ๋ถ๋ถ (linear layer๊ฐ ๋ค์ด๊ฐ์ด์ผ ํ , ๋ ๋ช ๋ ์ด์ด) ๋ค์ ๋ํด์๋ง ์ ์ฉ๋์์ต๋๋ค.
- ์ธ๋ถ์ ์ผ๋ก๋ bias๋ค์ ๋ํด์๋ง 2๋ฐฐ์ lr์ ์ ์ฉํ๋ ๋ฑ ์ด์ฌํ ํ๋๋์ด ์์ง๋ง ์ด๋ถ๋ถ์ ์ ์๋ค์ด ๋ ผ๋ฌธ์์ ๋งํ๊ธฐ๋ ํ๋๋ฐ, ๋ณ๋ก ์ค์ํ ์์๋ค์ ์๋๋๋ค.
์์ธํ ๋ถ๋ถ๋ค์ ๋ค์ ํฌ์คํ ์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ํ์ธํ๊ฒ ์ต๋๋ค :)
Back to : deep-learning-study