๊ฐ์
Pretrained model
์ ์ฌ์ฉํ๊ฑฐ๋ Transfer Learning
์ ์ฌ์ฉํ๋ ๋ชจ๋ธ๋ค์ ๋ํด์ ์ฝ์ ๋ Backbone
์ด ๋๋ CNN ๋ชจ๋ธ๋ค์ด ๋ช ๊ฐ ์๋ค. VGG family
, ResNet family
, Inception family
, ๊ทธ๋ฆฌ๊ณ Xception
. ๋ณต์กํ ์์
(e.g. Semantic Segmentation ๋ฑ)์ ๊ธฐ์ด๊ฐ ๋๋ ์ด ๋คํธ์ํฌ์ ๋ํด์ ์ ๋ฆฌํด ๋ณด์.
Xception ๋ชจ๋ธ์ด๋?
Xception
์ ๊ตฌ๊ธ์ด 2017๋
์ ๋ฐํํ ๋ชจ๋ธ๋ก, 2015๋
์ ILSVRC ๋ํ์์ 2๋ฑ์ ํ Google ์ Inception-V3
๋ชจ๋ธ๋ณด๋ค ํจ์ฌ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋๋ค.
Encoder-Decoder
ํํ์ ๋ชจ๋ธ๋ค์์ pretrain ๋ Xception
๋ชจ๋ธ์ด Encoder๋ก ์์ฃผ ์ฐ์ธ๋ค. ๋ํ Xception
์์ ์ ์ํ๋ ๋ชจ๋ธ์ ๊ตฌ์กฐ๋ ํต์ฌ์ธ modified depthwise separable convolution
์ ๊ฐ๋
์ด ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ชจ๋ธ์๋ ์ ์ฉํ๊ธฐ ์ฝ๋ค.
Xception
์ด๋ผ๋ ์ด๋ฆ ์์ฒด๊ฐ Extreme + Inception ์์ ๋์จ ๋งํผ Inception
๋ชจ๋ธ์ด ๊ธฐ๋ณธ์ด ๋๋ค. ๋จผ์ Inception
๋ชจ๋ธ๋ค์ ๋ํด์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด ๋ณด์.
Inception Family
์์ฆ์๋ version 4๊ณผ ResNet์ด ํฉ์ณ์ง Inception-ResNet v2 ํผ์ข ๊น์ง ๋์๋ค.
Inception-ResNet v2
๋ค๋ฅธ ๋ชจ๋ธ์ ํ์ฉํ๊ธฐ์๋ ๋ณต์กํด์, ์ฐ์ฐ๋์ด๋ parameter์ ๊ฐ์๊ฐ VGG๋ณด๋ค ํจ์ฌ ์ ์์๋ ๋ถ๊ตฌํ๊ณ vgg net
์ด ๋ ์์ฃผ ์ฌ์ฉ๋๋ค๊ณ ํ๋ค.
์ฐจ์ด์
๋ณดํต 5x5 ๋๋ 7x7์ ํ๋์ convolution
ํํฐ๋ก ์งํํ๋๋ฐ, Inception
๋ชจ๋ธ์์๋ conv ๋ ์ด์ด ์ฌ๋ฌ ๊ฐ๋ฅผ ํ ์ธต์์ ๊ตฌ์ฑํ๋ ํํ๋ฅผ ์ทจํ๊ณ ์๋ค.
์ํ Inception
์์ ์ด๋ฆ์ ๋ฐ์จ ์ด์ ๊ฐ ์ฌ๊ธฐ ์๋ค! โ๋์์โ (๊ฐ์ Layer(๊ฟ)์์) ๋ค์ํ convolution
์ ์งํํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ผ์ ๋ง์ถ ๊ฒ ๊ฐ์๊ฑฐ๋ ๋๋ง ๊ทธ๋?
naive Inception module
๋ชฉ์
๋ฅ๋ฌ๋์ ๋ง์ด ๊น์์๋ก (deep), ๋ ์ด์ด๊ฐ ๋์์๋ก (wide) ์ฑ๋ฅ์ด ์ข์ง๋ง, overfitting & vanishing gradient
์ ๋ฌธ์ ๋ก ๊น๊ณ ๋๊ฒ๋ง ๋ชจ๋ธ์ ๋ง๋๋ ๊ฒ์ ๋ฌธ์ ์ด๋ค. Inception
์ Convolution
๋ ์ด์ด๋ฅผ sparse
ํ๊ฒ ์ฐ๊ฒฐํ๋ฉด์ ํ๋ ฌ ์ฐ์ฐ์ dense
ํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๊ณ ์ํ ๋ชจ๋ธ์ด๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋๊ฐ์ง์ ์ด๋์ ์ป์ ์ ์๋ค.
- ํ๋ผ๋ฏธํฐ ๊ฐ์๊ฐ ์ค์ด๋ ๋ค.
- ์ฐ์ฐ๋์ด ์ค์ด๋ ๋ค.
Kernel size
๊ฐ ๋์ด๋ ์๋ก ์ฐ์ฐ๋์ ํฌ๊ธฐ๊ฐ ๊ต์ฅํ ์ปค์ง๊ธฐ ๋๋ฌธ์ ๋์ค์๋ 5x5 ๊ฐ ์๋๋ผ 3x3์ 2๋ฒ ํ๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ๋๋ค. ๋ ๋์๊ฐ์ 3x3 ๋ฅผ ์ชผ๊ฐ์ 3x1 ๊ณผ 1x3 convolution ์ 2๋ฒ ํ๋ ๋ฐฉํฅAsymmetric Convolution Factorizing
์ผ๋ก ๊ฐ๊ธฐ๋ ํ๋ค.
์ฌ์ฉํ๋ ๊ฐ๋
1x1 Convolution
Convolution
์ ์ฐ์ฐ์ [Batch Size
, Width
, Height
, Channel
], 4์ฐจ์์ ๋ฐ์ดํฐ๋ก ํ๊ธฐํ๋ค. Batch Size
๋ ์ด๋ฏธ์ง ๋ญํฐ๊ธฐ์ ๊ฐ์๋ฅผ ์๋ฏธํ๋ค. ๋ณดํต์ convolution
์ ์ฑ๋์ ๊ฐ์๋ฅผ ๋๋ฆฌ๋ ๋ฐฉํฅ์ผ๋ก ์งํํ์ง๋ง(conv filter์ ๊ฐ์๋ฅผ ๋๋ฆฌ๋), 1x1 ์ฐ์ฐ์ ๋ชฉ์ ์ ์ฑ๋์ ๊ฐ์๋ฅผ ์ค์ฌ์ ์์ถํ๋๋ฐ์ ์๋ค.
Residual Network(ResNet)
์ผ์ชฝ: ๊ฐ์ฅ ๊ฐ๋จํ ํํ์ residual-connection | ์ค๋ฅธ์ชฝ: 1 x 1 conv ๋ฅผ ์ถ๊ฐํด์ ์ฐ์ฐ๋์ ์ค์ธ ๋ชจ๋ธ
ResNet
์ Idea๋ gradient vanishing
๋ฌธ์ ๋ฅผ ์ด์ Layer
์ ๊ฒฐ๊ณผ๋ฅผ ๋ํด์ค์ผ๋ก์จ ํด๊ฒฐํ์์ด๋ค. Inception
๋ชจ๋ธ ์ญ์ ์ด๋ฅผ ์ฌ์ฉํ๋ค.
Residual์ ์ฌ์ฉํ์ฌ ํ์ต ์๋ ด์๋์์น
์ ๋ฆฌ
ํ๋์ Convoltion X
๋ค์ํ ํฌ๊ธฐ Convolution โ Concate O
Inception ๋ชจ๋ธ์ด ์ฃผ์์ ์ ๋๊ณ ์ค๊ณํ ํฌ์ธํธ๋ ๋ค์๊ณผ ๊ฐ๋ค.
Convolution
์ ํ ๋ ํ๋์ ํฐ kernel ์ ์ฌ์ฉํ ๊ฒ ์๋๋ผ ๋ค์ํ ํฌ๊ธฐ๋ฅผ ์ด์ด๋ถ์ด๊ธฐResidual
์ฌ์ฉConvolution
์ฐ์ฐ์Asymmetric Convolution Factorizing
์ฌ์ฉ
Xception
ํ๋ผ๋ฏธํฐ ๊ฐ์๋ฅผ ๋ ์ค์ฌ๋ณด์. ๊ทน๋จ์ ์ผ๋ก.
- ์ํฅ์ ๋ฐ์ ํต์ฌ ํฌ์ธํธ
- VGG16 : ๊น๊ฒ, ๋ ๊น๊ฒ
- Inception Family: Conv ๋ฅผ ํ ๋ ๋ช๊ฐ์ branch ๋ก factorize ํด์ ์งํ
- Depthwise Separable Convolution
- ๋คํธ์ํฌ์ ์ฌ์ด์ฆ์ ์ฐ์ฐ๋์ ์ค์ด๊ธฐ ์ํ ์ฐ๊ตฌ(์ฑ๋๋ณ๋ก conv ๋ฅผ ์งํํ ํ feature map์ ๋ํด์ conv ๋ฅผ ์งํ)
- ๋ณํ๋ ํต์ฌ ํฌ์ธํธ
- Modified Depthwise Separable Convolution
Depthwise Separable Convolution
Depthwise(๊น์ด ๋ณ๋ก == ์ฑ๋ ๋ณ๋ก) Separable(๋๋์ด์) convolution
Depthwise Separable Convolution
Channel-wise nxn spatial convolution
์์ ๊ทธ๋ฆผ์์์ ๊ฐ์ด ์ธํ์ผ๋ก 5๊ฐ์ ์ฑ๋์ด ๋ค์ด์ค๋ฉด 5๊ฐ์ n x n convolution ์ ๋ฐ๋ก ์งํํด์ ํฉ์น๋ค.
Pointwise Convolution
์๋ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ 1x1 convolution
์
๋๋ค. ์ฑ๋์ ๊ฐ์๋ฅผ ์ค์ด๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ๋๋ค.
Depthwise Separable Convolution process
์์ ๊ฐ์ด 256 x 256 x 3 ์ ์ธํ์ด ์์ ๋, 1) 256 x 256 x 1 ์ 3๋ฒ ์งํํด์ concat์ ํ๋ค. 2) pointwise convolution
์ ์ด์ฉํด์ ์ฑ๋์ ๊ฐ์๋ฅผ 1๊ฐ๋ก ์ค์ธ๋ค! (๋จ์ํ๊ฒ weighted sum ์ ๊ณ์ฐํ๋ ๊ฒ) ์์ ๊ฐ์ ๊ณผ์ ์ผ๋ก Convolution ์ ํ๋ฉด ์ฝ 9๋ฐฐ ์ ๋ ๋น ๋ฅด๋ค๊ณ ํ๋ค.
๊ณ์ฐ๋ ํ์ธ
- ๋์ผํ ์ ๋ณด
- ํน์ง ๋งต์ ํฌ๊ธฐ: F x F
- ์ ๋ ฅ ์ฑ๋ ์: N
- ์ปค๋ ํฌ๊ธฐ: K x K
- ์ถ๋ ฅ ์ฑ๋ ์: M
์์ ๊ฐ์ ์ํฉ์์ ์ด๋ป๊ฒ ๊ณ์ฐ๋์ด ๋ฌ๋ผ์ง๋์ง ๋ณด์.
- ์ผ๋ฐ convolution ์ ๊ณ์ฐ๋
- ๊ณ์ฐ๋ F x F x N x K x K x M
- Parameter ์: K x K x N x M
- Point-wise ์ ๊ณ์ฐ๋
- Channel-Wise
- Parameter ์: N x M Depthwise: ํน์ง๋งต ์ฑ๋๋ง๋ค ๊ฐ๊ฐ ๊ณต๊ฐ ๋ฐฉํฅ์ convolution ์ ํ๋ค
- ์ฑ๋๋ฐฉํฅ์ผ๋ก ์ํํ์ง ์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ convolution 1ํ์ cost โ K x K
- ๊ณ์ฐ๋: F x F x N x K x K
- Parameter ์: K x K x N
- Pointwise
- ๊ฐ์ ํฌ๊ธฐ์ ์์ํ์ ๋ง๋ค์ด ๋ธ๋ค
- ํน์ง ๋งต์ ์ฐจ์์ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ๋ ์ฌ์ฉ๋๋ค
- K = 1 ์ผ๋ก ๋ง๋ ๊ฒ.
- ๊ณ์ฐ๋: F x F x N x M
- Channel-Wise
๊ฒฐ๋ก : ๊ณ์ฐ๋: FxFxNxKxKxM โ FxFxNxM + FxFxNxKxK๋ก ๊ฐ์
์ฆ, ์์์๊ฐ์ 1/M + 1/K^2 ์ด๋ค. ๋ณดํต M >> K^2 ์ด๋ฏ๋ก ๊ณ์ฐ๋์ 1/9์ ๋๊ฐ ๋๋ค.
Modified Depthwise Separable Convolution
Depthwise Separable Convolution
์ ํฐ ๋ถ๋ถ์ด ๋ฌ๋ผ์ง์ง ์๋๋ค. ๊ฐ๋ตํ๊ฒ ์ฐจ์ด์ ๋ง ์ดํดํด๋ณด์.
- ์ฐ์ฐ์ ์์
- ์๋๋
depthwise
๋ฅผ ์งํํ๊ณ ,pointwise
๋ฅผ ํ๋๋ฐ, ์ด์ ๋pointwise
โdepthwise
๋ก ๋ฐ๊ฟ
- ์๋๋
- Non-Linearity ์ ์ ๋ฌด
Inception
๋ชจ๋ธ์ ๊ฒฝ์ฐ, ์ฒซ ์ฐ์ฐ ํ์ non-linearity (ReLU)๊ฐ ์์ง๋ง, Xception์ ์ค๊ฐ์ ReLU non-linearity ๋ฅผ ์ ์ฉํ์ง ์์.
Residual connection
์ด ๊ฑฐ์ ๋ชจ๋ Layer ์ ์๋ค.- ์์ ๊ณ ์คํํด๋ดค๋๋ ์์๋์ ์ ํ๋๊ฐ ํจ์ฌ ๋์์.
- residual connection ์ด ๊ต์ฅํ ์ค์ํ ์์์
๊ตฌ์กฐ
๊ตฌ์กฐ ์์ฒด๋ ๊ต์ฅํ ๊ฐ๋จํด์ ๋ฐ์ ์๋ ์ฌ์ง์ ๋ณด๋ฉด ์ฝ๊ฒ ์ดํด๊ฐ ๊ฐ๋ค.
Overall Architecture
Entry, Middle, Exit์ 3๊ฐ ๊ตฌ์กฐ๋ก ๋๋๋ค.
- Entry Flow
- ์ธํ: 229 x 229 x 3
- ๋ชจ๋ convolutional layer ๋ค์์๋ batch normalization ์ ์ฌ์ฉํ๋ค
- 2๋ฒ normal convolution (3x3) โ ํํฐ์ ๊ฐฏ์: 32 โ 64
- Residual Network ๊ฐ ํฉ์ณ์ง Inception Module 3๋ฒ
- Middle Flow
- ๋ฐ๋ณต๋๋ ๋จ์ํ ๋ชจ๋ธ: ํํฐ์ ๊ฐ์์ width/height ๋ ๋ฐ๋์ง ์์
- ReLU โ Separable Conv โ Separable Conv 8๋ฒ ๋ฐ๋ณต
- Exit Flow
- filter์ ๊ฐ์๋ฅผ ๋๋ฆฐ๋ค์ โ Maxpooling โ 2๋ฒ separable convolution โ Global Average Pooling โ Optional Fully-Connected โ Logistic Regression