๋”ฅ๋Ÿฌ๋‹ ๋ฒ ์ด์ง - 04.CNN ๊ธฐ์ดˆ์™€ ์—ญ์‚ฌ ํ›‘์–ด๋ณด๊ธฐ

BoostCamp AI Tech

CNN

Convolution Neural Network

Stride

Padding

ํŒจ๋”ฉ

Demension Reduction

AlexNet

VGGNet

GoogLeNet

ResNet

DenseNet

02/03/2021


๋ณธ ์ •๋ฆฌ ๋‚ด์šฉ์€ Naver BoostCamp AI Tech์˜ edwith์—์„œ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์‚ฌ์‹ค๊ณผ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ์žˆ๊ฑฐ๋‚˜, ์ˆ˜์ •์ด ํ•„์š”ํ•œ ์‚ฌํ•ญ์€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.


Convolution Neural Network Basic

์›๋ฆฌ

CNN์€ ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต(convolution layer)๊ณผ ํ’€๋ง ๊ณ„์ธต(pooling layer), ๊ทธ๋ฆฌ๊ณ  ์ „์—ฐ๊ฒฐ ๊ณ„์ธต(fully-connected layer)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ์‹ ๊ฒฝ๋ง์œผ๋กœ, ์ด๋ฏธ์ง€ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋ธ์ด๋‹ค.

  • ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต, ํ’€๋ง ๊ณ„์ธต : feature๋ฅผ ์ถ”์ถœํ•œ๋‹ค.
  • ์ „์—ฐ๊ฒฐ ๊ณ„์ธต : ๋ถ„๋ฅ˜/ํšŒ๊ท€ ๋ฌธ์ œ์— ๋Œ€ํ•ด decision makingํ•œ๋‹ค(์ถœ๋ ฅ๊ฐ’์„ ๋งŒ๋“ ๋‹ค)

๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ง€๋ฉด Generalization ์ด์Šˆ๊ฐ€ ์ƒ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ๊ทผ์—๋Š” ์ „์—ฐ๊ฒฐ๊ณ„์ธต์„ ์—†์• ๋ ค๊ณ  ํ•˜๋Š” ์ถ”์„ธ์ด๋‹ค.

์•„๋ž˜์—์„œ ํ’€์ดํ•˜๋Š” CNN์€ ํŽธ์˜์ƒ ํŽธํ–ฅ(bias)์„ ์„ค๋ช…ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ํŽธํ–ฅ๋„ ๊ณ ๋ คํ•˜์—ฌ ์—ฐ์‚ฐ์— ์ถ”๊ฐ€ํ•˜์—ฌ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์œ ์˜ํ•˜์ž.

Stride

Stride๋Š” '๋„“๊ฒŒ ๊ฑท๋Š”๋‹ค'๋ผ๋Š” ๋œป์œผ๋กœ, ๋งค๋ฒˆ ์ปค๋„์„ ์ฐ์„๋•Œ ์–ผ๋งˆ๋‚˜ ์ด๋™ํ• ๊ฒƒ์ธ๊ฐ€๋ฅผ ์˜๋ฏธํ•œ๋‹ค. stride๊ฐ€ ํด์ˆ˜๋ก output์˜ ์‚ฌ์ด์ฆˆ๋Š” ์ž‘์•„์ง€๊ฒŒ ๋œ๋‹ค.

Padding

ํŒจ๋”ฉ(Padding)์€ ์ž…๋ ฅ ๊ฐ’์˜ ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ์ปค๋„๋กœ ์ฐ๊ธฐ ์œ„ํ•ด ๋ง๋Œ€๋Š” ๊ณต๊ฐ„์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด๋‹น ํŒจ๋”ฉ ์œ„์น˜์— 0์„ ๋„ฃ๋Š” ์ œ๋กœํŒจ๋”ฉ์„ ์‚ฌ์šฉํ•œ๋‹ค.

์ปค๋„์˜ ํฌ๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ํŒจ๋”ฉ์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ธฐ๋„ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 3x3 ์ปค๋„์—์„œ๋Š” ํŒจ๋”ฉ์„ 1์นธ๋งŒ ์ถ”๊ฐ€ํ•ด๋„ ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ์ฐ์„ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, 5x5 ์ปค๋„์—์„œ๋Š” ๋ชจ์„œ๋ฆฌ๋ฅผ ์ปค๋„์˜ ์ค‘์‹ฌ์œผ๋กœ ๋‘๊ณ  ๊ฐ€์žฅ์ž๋ฆฌ์— ์ปค๋„์„ ์ฐ๊ธฐ์œ„ํ•ด ํŒจ๋”ฉ์„ 2์นธ์€ ์ถ”๊ฐ€ํ•ด์•ผํ•  ๊ฒƒ์ด๋‹ค.

Convolution ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

๋‘ ๊ณ„์ธต ๊ฐ„์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜

๋งŒ์•ฝ (H,W,C)๊ฐ€ (40,50,128)์ธ ์ž…๋ ฅ๊ฐ’์„ convolution์—ฐ์‚ฐํ•˜์—ฌ (40,50,64)์˜ ์ถœ๋ ฅ๊ฐ’์„ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด, ๊ทธ ์‚ฌ์ด์— ๋“ค์–ด๊ฐ€์žˆ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ช‡๊ฐœ๋‚˜ ๋ ๊นŒ?

  • ํŒจ๋”ฉ์€ 1, ์ŠคํŠธ๋ผ์ด๋“œ๋Š” 1, ์ปค๋„์˜ ํฌ๊ธฐ๋Š” 3x3์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ปค๋„์˜ ์ฑ„๋„ ํฌ๊ธฐ๋Š” ์ž…๋ ฅ๊ฐ’์˜ ์ฑ„๋„์ˆ˜์™€ ๊ฐ™์œผ๋ฏ€๋กœ, ์ปค๋„์€ (3,3,128)์ด ๋  ๊ฒƒ์ด๋‹ค. ์ปค๋„์˜ ๊ฐฏ์ˆ˜๋Š” ์ถœ๋ ฅ๊ฐ’์˜ ์ฑ„๋„ ์ˆ˜์™€ ๊ฐ™์•„์•ผํ•˜๋ฏ€๋กœ 64๊ฐœ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

ํŒจ๋”ฉ, ์ŠคํŠธ๋ผ์ด๋“œ ๋“ฑ์€ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜์™€ ๋ฌด๊ด€ํ•˜๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋Š” ์ปค๋„ (๋‚ด๋ถ€) ๊ฐ’๋“ค์˜ ๊ฐœ์ˆ˜์ด๋ฏ€๋กœ, 3x3x128x64 = 73,728๊ฐœ๊ฐ€ ๋œ๋‹ค.

Fully Connected Layer๊ฐ€ ์žˆ๋‹ค๋ฉด

์œ„์—์„œ Fully Connected Layer๊ฐ€ ์žˆ๋‹ค๋ฉด ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ ธ Generalization ์ด์Šˆ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์ผ๋ฐ˜์ ์ธ Convolution์— ๋น„ํ•ด ์™œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์งˆ๊นŒ?

alex-net

์œ„์˜ ๊ทธ๋ฆผ์€ AlexNet์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ž˜ ๋ณด๋ฉด Fully Connected Layer์ธ Dense Layer์— ์ง„์ž…ํ•˜๋Š” ์ˆœ๊ฐ„ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์ปค์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์ „์—ฐ๊ฒฐ์‹œ์— ๋ชจ๋“  ์ž…๋ ฅ ๋…ธ๋“œ(๊ฐ’)๋“ค์„ ๋‹ค์Œ ๊ณ„์ธต์˜ ๋…ธ๋“œ๋“ค๊ณผ ์—ฐ๊ฒฐํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ด์™€ ๋‹ค๋ฅด๊ฒŒ Covolution ์—ฐ์‚ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ, ์ปค๋„์€ ๋ชจ๋“  ์ฑ„๋„๊ณผ input์— ๋Œ€ํ•ด ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ณต์œ  ํŒŒ๋ผ๋ฏธํ„ฐ(shared parameter)์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ „์—ฐ๊ฒฐ ๊ณ„์ธต์— ๋น„ํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ํ›จ์”ฌ ์ค„์–ด๋“ค๊ฒŒ ๋˜์–ด ๊ฒฐ๊ณผ์ ์œผ๋กœ Generalization์ด ์ž˜ ๋˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. ์ด ๋•Œ๋ฌธ์— ์ตœ๊ทผ CNN์˜ ํŠธ๋ Œ๋“œ๋Š” ์•ž๋‹จ์˜ Convolution Layer๋ฅผ ๊นŠ๊ฒŒ ์Œ“๊ณ , ๋’ค์ชฝ์˜ Fully Connected Layer๋ฅผ ์ตœ๋Œ€ํ•œ ์ค„์ด๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ์˜ ๊นŠ์ด๋Š” ๊นŠ์–ด์ง€์ง€๋งŒ, ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋Š” ์˜คํžˆ๋ ค ์ค„์–ด๋“ค์–ด, ์ ์€ ์—ฐ์‚ฐ์œผ๋กœ๋„ ๋” ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

1x1 Convolution

๊ฐ€๋” Convolution ์—ฐ์‚ฐ์„ ๋ณด๋‹ค๋ณด๋ฉด, 1x1์˜ ์ปค๋„๋กœ ์—ฐ์‚ฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 1x1๋กœ ์—ฐ์‚ฐํ•œ๋‹ค๋ฉด H์™€ W์˜ ๊ฐ’์„ ์กฐ์ •ํ• ์ˆ˜๋„ ์—†์„ํ…๋ฐ ์™œ ํ•˜๋Š”๊ฒƒ์ผ๊นŒ?

์ฐจ์›์ถ•์†Œ(Demension Reduction) ๋•Œ๋ฌธ์ด๋‹ค. ๊ธฐ์กด์˜ H,W๋ผ๋Š” ๊ณต๊ฐ„์ฐจ์›์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ ์ฑ„, ์ฑ„๋„๋งŒ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊นŠ์ด(depth)๋ฅผ ๋Š˜๋ฆฌ๋Š” ๋„์ค‘์— ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ์†Œ์‹œํ‚ฌ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์•„์ฃผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ…Œํฌ๋‹‰์œผ๋กœ, ์˜ˆ์‹œ๋กœ bottleneck architecture ๋“ฑ์ด ์žˆ๋‹ค.

CNN์˜ ๋ณ€์ฒœ์‚ฌ

AlexNet

Imagenet Classification with Deep Convolutional NN ๋…ผ๋ฌธ

ILSVRC์—์„œ 2012๋…„ ์šฐ์Šนํ•œ ๋ชจ๋ธ์ด๋‹ค.

์—ฌ๋Ÿฌ ํ•„ํ„ฐ ์ค‘ ํ•˜๋‚˜๋กœ 11x11์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•˜๋‚˜์˜ ์ปค๋„์ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์€ ์ปค์ง€์ง€๋งŒ, ์ƒ๋Œ€์ ์œผ๋กœ ๋” ๋งŽ์€ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ๊ทธ๋ ‡๊ฒŒ ์ข‹์€ ์„ ํƒ์€ ์•„๋‹ˆ๋‹ค.

๋ชจ๋ธ์˜ ํ•ต์‹ฌ ํฌ์ธํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Rectified Linear Unit(ReLU) ํ™œ์„ฑํ•จ์ˆ˜ ์‚ฌ์šฉ
    • ์„ ํ˜• ๋ชจ๋ธ์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ณด์กด : x>0x>0์ด๋ฉด gradient๊ฐ€ ์„ ํ˜•๋ชจ๋ธ๊ณผ ๋™์ผํ•˜๋‹ค.
    • ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์œผ๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ ์‰ฝ๋‹ค.
    • ์ผ๋ฐ˜ํ™” ์„ฑ๋Šฅ์ด ์ข‹๋‹ค(์‹คํ—˜๊ฒฐ๊ณผ)
    • ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ(Vanishing Gradient Problem)์„ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.
  • GPU Inplementation (2๊ฐœ์˜ GPU ์‚ฌ์šฉ) - ๋‹น์‹œ ํ•˜๋“œ์›จ์–ด ๊ธฐ์ˆ ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ์ธํ•˜์—ฌ 2๊ฐœ์˜ GPU๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.
  • Local response normalization, Overlapping pooling
    • ์ง€๊ธˆ์€ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • Data augmentation
  • Dropout(p=0.5)

VGGNet

Very Deep Convolutional Networks For Large-Scale Image Recognition ๋…ผ๋ฌธ

2014๋…„๋„ ILSVRC์—์„œ ์ค€์šฐ์Šนํ•œ ๋ชจ๋ธ์ด๋‹ค.

๋ชจ๋ธ์˜ ํ•ต์‹ฌํฌ์ธํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • 3x3 ํ•„ํ„ฐ(์ŠคํŠธ๋ผ์ด๋“œ 1)์„ ์‚ฌ์šฉํ•˜๊ณ  depth๋ฅผ ๋Š˜๋ ธ๋‹ค.
  • ์ „์—ฐ๊ฒฐ๊ณ„์ธต์—์„œ 1x1 convolution ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ–ˆ๋‹ค.
  • Dropout(p=0.5)
  • ๊ณ„์ธต ์ˆ˜์— ๋”ฐ๋ผ VGG16, VGG19๋กœ ๋‚˜๋‰œ๋‹ค.

๋ชจ๋“  ๋ ˆ์ด์–ด์—์„œ ํ•„ํ„ฐ๋ฅผ 3x3์œผ๋กœ ํ†ต์ผํ•˜์˜€๋‹ค. ์ด๊ฒƒ์€ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ๊นŒ?

ํ•„ํ„ฐ๊ฐ€ ํฌ๋‹ค๋Š” ๊ฒƒ์€, ์ˆœ์ „ํŒŒ ๊ณผ์ •์—์„œ ํ•˜๋‚˜์˜ convolution feature ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋Š” ์ž…๋ ฅ์˜ spatial dimension, ์ฆ‰ ์ˆ˜์šฉ์˜์—ญ(Receptive Field)์ด ์ปค์ง„๋‹ค๋Š” ๋ง์ด๋‹ค.

๋งŒ์•ฝ 3x3 ํ•„ํ„ฐ๋ฅผ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, ๊ฒฐ๊ตญ 5x5๋ฅผ ํ•œ๋ฒˆ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ๊ณผ ์ˆ˜์šฉ์˜์—ญ ์ฐจ์›์—์„œ๋Š” ๋™์ผํ•˜๋‹ค. 3x3์„ ํ•˜๋‚˜์˜ ์…€๋กœ ์ถ•์†Œ์‹œํ‚จ๊ฒƒ์„ ๋‹ค์‹œ 3x3๊ฐœ ๋ชจ์•„์„œ ์ถ•์†Œ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜์—๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ์ž…๋ ฅ, ์ถœ๋ ฅ์˜ ์ฑ„๋„์ด ๊ฐ๊ฐ (128,128)์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

3ร—3ร—128ร—128+3ร—3ร—128ร—128=294,9125ร—5ร—128ร—128=409,600\begin{aligned} 3\times 3\times 128\times 128 +3\times3\times 128\times 128 &=\bold{294,912}\\ 5\times 5\times 128\times 128 &= \bold{409,600} \end{aligned}

๋”ฐ๋ผ์„œ ๊ฐ™์€ ์ˆ˜์šฉ์˜์—ญ์„ ์ปค๋ฒ„ํ•˜๋ฉด์„œ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ๋Š” 3x3์œผ๋กœ ๊ณ„์ธต์„ ํ•œ๋ฒˆ ๋” ์Œ“๋Š”๊ฒƒ์ด ๋‚ซ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์ตœ๊ทผ์—๋Š” ๋Œ€๋ถ€๋ถ„ ํ•„ํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ 3x3, ์ปค๋ดค์ž 7x7์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

GoogLeNet

Christian et al, "Going Deeper with Convolutions", CVPR, 2015 ๋…ผ๋ฌธ

2014๋…„๋„ ILSVRC์—์„œ ์šฐ์Šนํ•œ ๋ชจ๋ธ์ด๋‹ค.

22๋‹จ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๋น„์Šทํ•œ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ „์ฒด ๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€์— ์—ฌ๋Ÿฌ๋ฒˆ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ์ด๋ฅผ Network in Network,NiN ๊ตฌ์กฐ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์ž…๋ ฅ๊ฐ’์ด Convolution ์—ฐ์‚ฐ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ์ „์— 1x1 Conv๋ฅผ ๊ฑฐ์น˜๋Š”๋ฐ, ์ด๋ฅผ Inception Block์ด๋ผ๊ณ  ํ•˜๋ฉฐ GoogLeNet ๋ชจ๋ธ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋‹ค. Inception Block์„ ์ด์šฉํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆซ์ž๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์™œ ๊ทธ๋Ÿด๊นŒ?

1x1 Convolution์ด ์ฑ„๋„๋ฐฉํ–ฅ์œผ๋กœ(channel-wise) ์ฐจ์›์„ ์ถ•์†Œํ•˜๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

inception-block

์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์˜ ์ฑ„๋„๋„ ๊ฐ™๊ณ  , ์ˆ˜์šฉ์˜์—ญ๋„ ๊ฐ™์ง€๋งŒ 1x1 convolution์„ ์ค‘๊ฐ„์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐœ์ˆ˜๋Š” 1/3๋ณด๋‹ค ๋” ์ค„์–ด๋“ค์—ˆ๋‹ค.

ResNet

Deep Residual Learning, CVPR, 2016 ๋…ผ๋ฌธ

2015๋…„๋„ ILSVRC์—์„œ ์šฐ์Šนํ•œ ๋ชจ๋ธ์ด๋‹ค.

์‹ ๊ฒฝ๋ง์˜ ๊นŠ์ด๊ฐ€ ๊นŠ์„์ˆ˜๋ก, ํ•™์Šตํ•˜๊ธฐ๋Š” ๋” ์–ด๋ ค์›Œ์ง„๋‹ค.

  • ์˜ค๋ฒ„ํ”ผํŒ…์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์„ ๊ฒฝ์šฐ ์ผ์–ด๋‚œ๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜ ๊นŠ์ด๊ฐ€ ๊นŠ์€ ๊ฒฝ์šฐ์—๋Š” ์˜ค๋ฒ„ํ”ผํŒ…์ด ์ผ์–ด๋‚˜์ง€ ์•Š์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ•™์Šต์—๋Ÿฌ์— ๋น„ํ•ด ํ…Œ์ŠคํŠธ์—๋Ÿฌ๊ฐ€ ํ›จ์”ฌ ํฌ๊ฒŒ ๋‚˜์˜จ๋‹ค.

๊ทธ๋ž˜์„œ ResNet์€ identity map(skip connection)์ด๋ผ๋Š” ๊ฒƒ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋“ค์–ด์˜จ x๋ฅผ convolution layer ํ•œ ์ธต์˜ ์ถœ๋ ฅ๊ฐ’์— ๋”ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๋งŒ๋“  block์„ Residual Block์ด๋ผ๊ณ  ํ•œ๋‹ค.

๊ธฐ์กด์˜ ์‹ ๊ฒฝ๋ง์€ ์ž…๋ ฅ๊ฐ’ x๋ฅผ ๋ชฉํ‘œ ์ถœ๋ ฅ๊ฐ’ y๋กœ ๋งคํ•‘ํ•˜๋Š” ํ•จ์ˆ˜ H(x)๋ฅผ ์–ป๋Š”๊ฒƒ์ด ๋ชฉํ‘œ์˜€๋Š”๋ฐ, ResNet์€ F(x)+x๋ฅผ ์ตœ์†Œํ™”์‹œํ‚ค๋Š”๊ฒƒ์ด ๋ชฉํ‘œ๋‹ค. ์ด ๋•Œ x๋Š” ์ •ํ•ด์ง„ ์ƒ์ˆ˜์ด๋ฏ€๋กœ F(x)๋ฅผ ์ตœ์†Œํ™”ํ•ด์•ผํ•œ๋‹ค. F(x) = H(x)-x, ์ฆ‰ ์ž”์ฐจ(Residual)์ด๋ฏ€๋กœ ์ž”์ฐจ๋ฅผ ์ตœ์†Œํ™”ํ•œ๋‹ค๊ณ  ํ•˜์—ฌ ResNet์ด๋ผ๋Š” ์ด๋ฆ„์ด ๋ถ™๊ฒŒ ๋œ๋‹ค.

์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

(7) ResNet (Residual Connection)

[CNN ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค] ResNet์˜ ๊ตฌ์กฐ

์ด๋ ‡๊ฒŒ ํ•™์Šต์‹œํ‚ค๊ฒŒ ๋˜๋ฉด, ์ด๋ฏธ ๋ฐฐ์› ๋˜ ๋‚ด์šฉ x๋ฅผ ์ œ์™ธํ•œ ์ฐจ์ด์ (f(x))๋งŒ์„ ํ•™์Šตํ•˜๋ฉด ๋˜๋ฏ€๋กœ ํ•™์Šต์ด ๋” ์ž˜์ด๋ฃจ์–ด์ง€๊ฒŒ ๋œ๋‹ค.

resnet

์ด ๋•Œ, ์œ„์˜ Simple Shortcut๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ๋‘๋ฒˆ์˜ conv๋ฅผ ๊ฑฐ์น˜๊ณ  ๋‚œ ๋’ค BN๊นŒ์ง€ ์ง„ํ–‰ํ•˜๊ณ  ๋‚˜์„œ์˜ (์ฑ„๋„)์ฐจ์›์ด ๊ธฐ์กด์˜ ์ž…๋ ฅ๊ฐ’ x์™€ ๊ฐ™์•„์•ผํ•œ๋‹ค. ๋งŒ์•ฝ ์ฐจ์›์ด ๋‹ค๋ฅด๋‹ค๋ฉด, ์ด๋ฅผ ๋งž์ถฐ์ฃผ๊ธฐ ์œ„ํ•ด 1x1 Conv๋กœ ์ฑ„๋„์„ ๋งž์ถฐ์ฃผ๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ Projected Shortcut์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • Projected Shortcut์ด ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š์œผ๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ Simple Shortcut์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

๋˜, ResNet์€ Batch Normalization์ด Convolution ๋’ค์— ์ผ์–ด๋‚œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ๋‹ค๋งŒ, Batch Normalization์„ ReLu ๋’ค์— ๋„ฃ๋Š”๊ฒƒ์ด ๋” ํ•™์Šตํšจ๊ณผ๊ฐ€ ์ข‹๋‹ค๋Š” ๋…ผ์Ÿ๋„ ์žˆ๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” ์œ„์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.

bottleneck

3x3 Conv๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ, Conv์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋Š” [3x3x์ž…๋ ฅ์ฑ„๋„x์ถœ๋ ฅ์ฑ„๋„]์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด 1x1 Conv๋กœ ์ž…๋ ฅ์ฑ„๋„์„ ์ค„์—ฌ์„œ ๋„ฃ๊ณ , ์ถœ๋ ฅ ํ›„์—๋Š” ์ฑ„๋„์„ ๋Š˜๋ฆด ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ Bottleneck architecture๋ผ๊ณ  ํ•œ๋‹ค.

DenseNet

ResNet์˜ Residual Block์—์„œ x๊ฐ’์„ ๋”ํ•ด(addition)์ฃผ๋ฉด ๋‘ ๊ฐ’์ด ์„ž์ด๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๊ณผ์ •์„ ์—ฐ์‡„์ ์œผ๋กœ ์ž‡๋Š” ๊ฒƒ(concatenation)์œผ๋กœ ๋Œ€์ฒดํ•œ๋‹ค.

densenet

๋ฌธ์ œ๋Š” concatenation ํ•˜๋ฉด ํ• ์ˆ˜๋ก ์ฑ„๋„์ˆ˜๊ฐ€ ์ ์  ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ปค์ง„๋‹ค๋Š”๋ฐ์— ์žˆ๋‹ค. ์ฑ„๋„ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด Conv ์—ฐ์‚ฐ ์‹œ ํŒŒ๋ผ๋ฏธํ„ฐ์ˆ˜๊ฐ€ ์ž์—ฐ์Šค๋ ˆ ๋งŽ์•„์ง€๋ฏ€๋กœ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„์— ์ฑ„๋„์ˆซ์ž๋ฅผ ์ค„์—ฌ์ฃผ๋Š” Transition Block์„ ๋ผ์›Œ๋„ฃ๋Š”๋‹ค.

  • Dense Block
    • ๊ฐ ์ธต์€ ๋ชจ๋“  ์ด์ „์ธต์˜ feature map์„ concatenateํ•œ๋‹ค.
    • ์ฑ„๋„์˜ ์ˆ˜๋Š” ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ปค์ง€๊ฒŒ ๋œ๋‹ค.
  • Transition Block
    • BatchNorm โ†’ 1x1 Conv โ†’ 2x2 AvgPooling
    • ์ฑ„๋„ ์ฐจ์›์„ ์ถ•์†Œํ•œ๋‹ค.(Dimension Reduction)

WRITTEN BY

์•ŒํŒŒ์นด์˜ Always Awake Devlog

Seoul