๊ฐœ์š”

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ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆํ•œ ๋ชจ๋ธ์ด๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‘๊ฐ€์ง€์˜ ์ด๋“์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

  1. ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ์ค„์–ด๋“ ๋‹ค.
  2. ์—ฐ์‚ฐ๋Ÿ‰์ด ์ค„์–ด๋“ ๋‹ค.

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 ๋ชจ๋ธ์ด ์ฃผ์•ˆ์ ์„ ๋‘๊ณ  ์„ค๊ณ„ํ•œ ํฌ์ธํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. Convolution ์„ ํ•  ๋•Œ ํ•˜๋‚˜์˜ ํฐ kernel ์„ ์‚ฌ์šฉํ• ๊ฒŒ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ๋ฅผ ์ด์–ด๋ถ™์ด๊ธฐ
  2. Residual ์‚ฌ์šฉ
  3. Convolution ์—ฐ์‚ฐ์— Asymmetric Convolution Factorizing ์‚ฌ์šฉ

Xception

ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ๋” ์ค„์—ฌ๋ณด์ž. ๊ทน๋‹จ์ ์œผ๋กœ.

  • ์˜ํ–ฅ์„ ๋ฐ›์€ ํ•ต์‹ฌ ํฌ์ธํŠธ
    1. VGG16 : ๊นŠ๊ฒŒ, ๋” ๊นŠ๊ฒŒ
    2. Inception Family: Conv ๋ฅผ ํ•  ๋•Œ ๋ช‡๊ฐœ์˜ branch ๋กœ factorize ํ•ด์„œ ์ง„ํ–‰
    3. 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 ์˜ ๊ณ„์‚ฐ๋Ÿ‰
    1. 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
    2. Pointwise
      • ๊ฐ™์€ ํฌ๊ธฐ์˜ ์•„์›ƒํ’‹์„ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค
      • ํŠน์ง• ๋งต์˜ ์ฐจ์›์„ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค
      • K = 1 ์œผ๋กœ ๋งŒ๋“  ๊ฒƒ.
      • ๊ณ„์‚ฐ๋Ÿ‰: F x F x N x M

๊ฒฐ๋ก : ๊ณ„์‚ฐ๋Ÿ‰: FxFxNxKxKxM โ‡’ FxFxNxM + FxFxNxKxK๋กœ ๊ฐ์†Œ

์ฆ‰, ์†Œ์š”์‹œ๊ฐ„์€ 1/M + 1/K^2 ์ด๋‹ค. ๋ณดํ†ต M >> K^2 ์ด๋ฏ€๋กœ ๊ณ„์‚ฐ๋Ÿ‰์€ 1/9์ •๋„๊ฐ€ ๋œ๋‹ค.

Modified Depthwise Separable Convolution

Depthwise Separable Convolution์™€ ํฐ ๋ถ€๋ถ„์ด ๋‹ฌ๋ผ์ง€์ง„ ์•Š๋Š”๋‹ค. ๊ฐ„๋žตํ•˜๊ฒŒ ์ฐจ์ด์ ๋งŒ ์ดํ•ดํ•ด๋ณด์ž.

  1. ์—ฐ์‚ฐ์˜ ์ˆœ์„œ
    • ์›๋ž˜๋Š” depthwise ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ , pointwise ๋ฅผ ํ–ˆ๋Š”๋ฐ, ์ด์ œ๋Š” pointwise โ†’ depthwise ๋กœ ๋ฐ”๊ฟˆ
  2. Non-Linearity ์˜ ์œ ๋ฌด
    • Inception ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ, ์ฒซ ์—ฐ์‚ฐ ํ›„์— non-linearity (ReLU)๊ฐ€ ์žˆ์ง€๋งŒ, Xception์€ ์ค‘๊ฐ„์— ReLU non-linearity ๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š์Œ.
  3. Residual connection ์ด ๊ฑฐ์˜ ๋ชจ๋“  Layer ์— ์žˆ๋‹ค.
    • ์—†์• ๊ณ  ์‹คํ—˜ํ•ด๋ดค๋”๋‹ˆ ์žˆ์„๋•Œ์˜ ์ •ํ™•๋„๊ฐ€ ํ›จ์”ฌ ๋†’์•˜์Œ.
    • residual connection ์ด ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ์š”์†Œ์ž„

๊ตฌ์กฐ

๊ตฌ์กฐ ์ž์ฒด๋Š” ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•ด์„œ ๋ฐ‘์— ์žˆ๋Š” ์‚ฌ์ง„์„ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๊ฐ„๋‹ค.

Overall Architecture

Entry, Middle, Exit์˜ 3๊ฐœ ๊ตฌ์กฐ๋กœ ๋‚˜๋‰œ๋‹ค.

  1. Entry Flow
    • ์ธํ’‹: 229 x 229 x 3
    • ๋ชจ๋“  convolutional layer ๋‹ค์Œ์—๋Š” batch normalization ์„ ์‚ฌ์šฉํ•œ๋‹ค
    • 2๋ฒˆ normal convolution (3x3) โ†’ ํ•„ํ„ฐ์˜ ๊ฐฏ์ˆ˜: 32 โ†’ 64
    • Residual Network ๊ฐ€ ํ•ฉ์ณ์ง„ Inception Module 3๋ฒˆ
  2. Middle Flow
    • ๋ฐ˜๋ณต๋˜๋Š” ๋‹จ์ˆœํ•œ ๋ชจ๋ธ: ํ•„ํ„ฐ์˜ ๊ฐœ์ˆ˜์™€ width/height ๋Š” ๋ฐ”๋€Œ์ง€ ์•Š์Œ
    • ReLU โ†’ Separable Conv โ†’ Separable Conv 8๋ฒˆ ๋ฐ˜๋ณต
  3. Exit Flow
    • filter์˜ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ฆฐ๋‹ค์Œ โ†’ Maxpooling โ†’ 2๋ฒˆ separable convolution โ†’ Global Average Pooling โ†’ Optional Fully-Connected โ†’ Logistic Regression

Reference