๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Data Science/Computer Vision

[ML] Residual Block์„ ํ™œ์šฉํ•œ ResNet(Residual Network)

๋ฐ˜์‘ํ˜•

๐Ÿ”Š ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๊ถŒ์ฒ ๋ฏผ๋‹˜์˜ CNN Fundamental ์™„๋ฒฝ ๊ฐ€์ด๋“œ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚œ ํ›„ ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชฉ์  ํ•˜์— ์ž‘์„ฑ๋˜๋Š” ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ํ•˜๋‹จ์˜ ํฌ์ŠคํŒ…์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์‹ค์Šต ์ฝ”๋“œ ๋ฐ ์ž๋ฃŒ๋Š” ํ•„์ž๊ฐ€ ์ง์ ‘ ์žฌ๊ตฌ์„ฑํ•œ ์ž๋ฃŒ์ด๋ฉฐ ๊ถŒ์ฒ ๋ฏผ๋‹˜์˜ ์ž๋ฃŒ๋ฅผ ๊ทธ๋Œ€๋กœ ์ธ์šฉํ•˜์ง€ ์•Š์•˜์Œ์„ ํ•„ํžˆ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. 

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Skip Connection ์ด๋ผ๋Š” ๊ฐœ๋…์„ ์ตœ์ดˆ๋กœ ํ™œ์šฉํ•ด์„œ Residual Block์„ ์—ฐ์†์ ์œผ๋กœ ์Œ“์•„ ๋งค์šฐ ๊นŠ์€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ˜•์„ฑํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด์ „ CNN ๋ถ„๋ฅ˜ ๋ชจ๋ธ์ธ GoogleNet ๋ณด๋‹ค ๋” ๋†’์€ ์„ฑ๋Šฅ์„ ์ด๋ˆ ResNet์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

ResNet์€ Residual Block์ด๋ผ๋Š” ๋ธ”๋ก์„ ์ด์šฉํ•œ๋‹ค


1. ResNet์€ ์™œ ๋“ฑ์žฅํ–ˆ์„๊นŒ?

์›์ดˆ์ ์ธ ์งˆ๋ฌธ์œผ๋กœ ๋Œ์•„๊ฐ€๋ณด์ž. ์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ๋ฐฐ์šด GoogleNet๋„ ์„ฑ๋Šฅ์ด ๋‚˜๋ฆ„ ๊ดœ์ฐฎ์€ ํŽธ์ด์˜€๋Š”๋ฐ, ์™œ ์ƒˆ๋กœ์šด ResNet์ด ๋“ฑ์žฅํ–ˆ์„๊นŒ? ๋‹น์—ฐํžˆ GoogleNet ๋ณด๋‹ค ๋” ์ข‹์€ ์„ฑ๋Šฅ์„ ๋งŒ๋“ค์–ด๋‚ด๊ธฐ ์œ„ํ•จ์ด ์ฃผ์š”์˜€์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ GoogleNet ๋ณด๋‹ค ๋” ์ข‹์€ ์„ฑ๋Šฅ์„ ์ด๋Œ๊ธฐ ์œ„ํ•ด์„œ ๊ทธ๋™์•ˆ ํ•ด์™”๋˜ ๋ฐฉ๋ฒ•์ธ ์ปค๋„ ์‚ฌ์ด์ฆˆ๋ฅผ ํŠœ๋‹ํ•˜๊ฑฐ๋‚˜ Dropout, Weight Decay์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด๋ณด์•˜์ง€๋งŒ ํ•œ๊ณ„์ ์— ๋„๋‹ฌํ–ˆ๋‹ค. ๊ฒฐ๊ตญ GoogleNet ๋ณด๋‹ค ๋” ๊นŠ์€ ๋„คํŠธ์›Œํฌ๋ฅผ ์Œ“์•„์•ผ ์ข‹์€ ์„ฑ๋Šฅ์„ ์ด๋Œ์–ด๋‚ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ ๊นŠ์€ ๋„คํŠธ์›Œํฌ๋ฅผ ์Œ“๊ฒŒ ๋œ๋‹ค๋ฉด Gradient Vanishing(๊ธฐ์šธ๊ธฐ ์†Œ์‹ค)๊ณผ ๊ฐ™์€ ์น˜๋ช…์ ์ธ ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ๊ทธ๋ž˜์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ๊นŠ๊ฒŒ ์Œ“์œผ๋ฉด์„œ๋„ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ผ๊นŒ ํ•˜๋Š” ๊ฒƒ์—์„œ ์ถœ๋ฐœํ•ด ResNet์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

2. Gradient Vanishing์„ ๋ง‰์œผ๋ ค๋ฉด?

๊ทธ๋ ‡๋‹ค๋ฉด ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์€ ์–ด๋–ป๊ฒŒ ๋ง‰์„ ์ˆ˜ ์žˆ์„๊นŒ? ์—ฐ๊ตฌ์ž ๋ถ„๋“ค์€ Identity Mapping์ด๋ผ๋Š” ๊ฒƒ์— ์ฃผ๋ชฉํ–ˆ๋‹ค. Identity Mapping์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•ด์„œ ์ž…๋ ฅ์„ ์–ด๋–ค ํŠน์ •ํ•œ ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐ€๊ฒŒ ํ•œ ํ›„ ๋‚˜์˜จ ์ถœ๋ ฅ์ด ์ž…๋ ฅ๊ณผ ๋™์ผํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฐ”๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ง์ด๋‹ค.

 

Identity Mapping

 

๊ทธ๋Ÿฐ๋ฐ ์ด๋ฅผ CNN์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ƒ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์œ„ Identity Mapping์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ๋˜‘๊ฐ™์€ $x$๊ฐ’์„ ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ํ™œ์„ฑํ•จ์ˆ˜์ธ $f(x)$๊ฐ€ ์ ์–ด๋„ ์„ ํ˜•ํ•จ์ˆ˜์—ฌ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. $y = x$ ์ฒ˜๋Ÿผ ๋ง์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ CNN์€ ์•Œ๋‹ค์‹œํ”ผ ํ™œ์„ฑํ•จ์ˆ˜๋ฅผ Relu ๊ฐ™์€ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ๊ทธ๋ž˜์•ผ ํ”ผ์ณ ๋งต์˜ ๋น„์„ ํ˜• ํŠน์ง•์„ ํ•™์Šตํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํŠน์ง•์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด CNN์—์„œ Identity Mapping์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ?

3. Residual์„ ํ™œ์šฉํ•˜์ž

๊ฐ‘์ž๊ธฐ Residual์ด ๋“ฑ์žฅํ–ˆ๋‹ค. ์ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ์šฐ์„  ์šฐ๋ฆฌ๊ฐ€ ์ž„์˜์˜ ํ•จ์ˆ˜ $H(x)$๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•ด๋ณด์ž. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋“ฑ์‹์„ ๋งŒ์กฑํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. $$F(x) = H(x) + x$$

์œ„ ์ˆ˜์‹์—์„œ $F(x)$๋Š” $x$๋ผ๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด์— ๋„ฃ์—ˆ์„ ๋•Œ ๊ทธ ์ถœ๋ ฅ๊ฐ’์„ ๋‚˜์˜ค๊ฒŒํ•˜๋Š” ์ผ์ข…์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ $x$๋ฅผ $F(x)$์— ๋„ฃ์–ด ๋‚˜์˜จ ๊ฐ’ ์ž์ฒด๋Š” ์ปจ๋ถˆ๋ฃจ์…˜ ๋ ˆ์ด์–ด๋ฅผ ํ†ต๊ณผํ•œ ์ถœ๋ ฅ๊ฐ’ ์ž์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ค๋ฅธ์ชฝ์˜ $H(x)$๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฐฉ๊ธˆ ์ถ”๊ฐ€ํ•œ ์ž„์˜์˜ ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๊ณ  $x$๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.(์ด ๋•Œ, $x$๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๋˜๋Š” ์ด์ „ ๋ ˆ์ด์–ด๋ฅผ ํ†ต๊ณผํ•ด์„œ ๋‚˜์˜จ ์ถœ๋ ฅ๊ฐ’์ด๋‹ค)

 

์œ„ ๋“ฑ์‹์—์„œ Identity Mapping์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์ž„์˜๋กœ ๋งŒ๋“  ํ•จ์ˆ˜ $H(x)$๋ฅผ 0์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ $F(x) = x$๊ฐ€ ๋˜๋‹ˆ๊นŒ ๋ง์ด๋‹ค. ์ด ๋•Œ, ์šฐ๋ฆฌ๋Š” $H(x)$๋ฅผ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๋งŒ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ํ•จ์ˆ˜๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๊ทธ ์ถœ๋ ฅ๊ฐ’์— $x$๋ฅผ ๋”ํ•ด์ฃผ๋Š” ๊ทธ๋ฆผ์„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๋„์‹ํ™”ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

Residual Block(Identity Block)

 

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ๋ณด๋ผ์ƒ‰ ์„ ์˜ addํ•  ๋•Œ ๋ฐฐ์—ด์˜ ์ฐจ์›์ˆ˜๋ฅผ ๋˜‘๊ฐ™์ด ๋งž์ถ”์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, Feature Map 1๊ณผ Input or Previous Layer๋ผ๊ณ  ๋˜์–ด ์žˆ๋Š” ๋ถ€๋ถ„์˜ shape๋ฅผ ๋งž์ถฐ ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ ๊ฐ’๋ผ๋ฆฌ ๋”ํ•˜๋Š” ์—ฐ์‚ฐ์„ ํ•˜๋Š” add ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด add ์—ฐ์‚ฐ์„ shortcut ๋˜๋Š” skip connection ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

์–ด์จŒ๊ฑด ์šฐ๋ฆฌ๋Š” ์ด์ œ $H(x)$๊ฐ€ 0์ด ๋˜๋„๋ก ํ•™์Šต์„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ $F(x) = H(x) + x$์—์„œ $x$๋ฅผ ์ดํ•ญ์‹œ์ผœ์ฃผ๋ฉด ์‹์ด ๋‹ค์Œ๊ณผ ๊ฐ™์•„์ง„๋‹ค. $$H(x) = F(x) - x$$

์ด ๋•Œ, $H(x)$๋Š” ์ž˜ ๋ณด๋ฉด ์ผ์ข…์˜ ์ž”์ฐจ๊ฐ€ ๋œ๋‹ค. ์ฆ‰, $F(x)$๋ผ๋Š” ์ปจ๋ณผ๋ฃจ์…˜์„ ๋ชจ๋‘ ๊ฑฐ์น˜๊ณ  ๋‚œ ํ›„์˜ ์ถœ๋ ฅ๊ฐ’๊ณผ $x$๋ผ๋Š” ์ž…๋ ฅ๊ฐ’์˜ ์ฐจ์ด๋Š” ์ถœ๋ ฅ๊ฐ’๊ณผ ์ž…๋ ฅ๊ฐ’์„ ๋˜‘๊ฐ™๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค๋Š” Identity Mapping ๊ด€์ ์—์„œ $H(x)$๋Š” ์ž”์ฐจ(Residual)๊ฐ€ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ResNet์ด Residual Network๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ด์œ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ Residual Block ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

๋˜ ์—ญ์ „ํŒŒ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด $F(x)$๋ฅผ ๋ฏธ๋ถ„ํ•ด์•ผ ํ•œ๋‹ค. $F(x)$๋ฅผ ๋ฏธ๋ถ„ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๊ณง $H(x) + x$๋ฅผ ๋ฏธ๋ถ„ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ์ด ๋•Œ ์•„๋ฌด๋ฆฌ ๋ฏธ๋ถ„์„ ํ•ด๋„ 1์ด ๋‚จ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋ฅผ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

4. Residual Block

ResNet์—์„œ ์‚ฌ์šฉํ•˜๋Š” Residual Block์€ ์œ„ ๋ชฉ์ฐจ์—์„œ ๋ณธ ๊ทธ๋ฆผ์ด๋ž‘ ์•ฝ๊ฐ„์€ ๋‹ค๋ฅด๋‹ค. ๋‹ค๋ฅด๋‹ค๊ณ  ํ•ด์„œ ํฐ ํ‹€์€ ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  Batch Normalization๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ์ถ”๊ฐ€ํ•œ ๊ฒƒ ๋ฟ์ด๋‹ค.

 

Resnet์—์„œ ์‚ฌ์šฉํ•˜๋Š” Residual Block

 

ResNet ์ „์ฒด ์•„ํ‚คํ…์ฒ˜๋Š” ์œ„์™€ ๊ฐ™์€ Residual Block์„ ์—ฐ์†์ ์œผ๋กœ ์ถ”๊ฐ€ํ•œ ๋ชจ๋ธ์ด๋‹ค.

 

ResNet VS ์ผ๋ฐ˜ ๊นŠ์€ Network VS VGG-19

 

์œ„ ๊ทธ๋ฆผ์—์„œ ํ™”์‚ดํ‘œ ๊ณก์„ ์œผ๋กœ ๋˜์–ด ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ Residual Block์—์„œ ๋ฐœ์ƒํ•˜๋Š” Skip Connection์„ ์˜๋ฏธํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ResNet์€ ์Œ“์€ Layer ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋ชจ๋ธ ์ด๋ฆ„์ด ResNet50, ResNet101, ResNet152 ๋“ฑ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ResNet50 ์ดํ›„๋กœ ๋ถ€ํ„ฐ๋Š” ๋ชจ๋ธ์˜ ๊นŠ์ด๊ฐ€ ๋งค์šฐ ๊นŠ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋„ ๋งŽ์•„์ง„๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— Residual Block ๋‚ด์—์„œ ์ปจ๋ณผ๋ฃจ์…˜ํ•  ๋•Œ 1 x 1 ์ปจ๋ณผ๋ฃจ์…˜์„ ๋งค๋ฒˆ ์ ์šฉํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ์ค„์—ฌ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ณ  ๊ฒฐ๊ตญ ์˜ค๋ฒ„ํ”ผํŒ…๋„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. 1 x 1 ์ปจ๋ณผ๋ฃจ์…˜์˜ ํšจ๊ณผ์— ๋Œ€ํ•ด์„œ๋Š” ์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ์–ธ๊ธ‰ํ–ˆ์œผ๋‹ˆ ์—ฌ๊ธฐ์„œ๋Š” ๋„˜์–ด๊ฐ€๊ฒ ๋‹ค.

 

๋ฐ˜์‘ํ˜•