AI Study/CS231n

[CS231n/#05] Convolutional Neural Networks

penguinnni 2023. 3. 30. 20:31

๐Ÿ“Œ CNN History

๐Ÿ”ธ A bit of history...(NN์ด ์ž˜ ์“ฐ์ด๊ฒŒ ๋˜๊ธฐ๊นŒ์ง€)

โ–ช๏ธ ํผ์…‰ํŠธ๋ก ์„ ๊ตฌํ˜„ํ•œ ์ตœ์ดˆ์˜ ๊ธฐ๊ณ„, ์ถœ๋ ฅ ๊ฐ’์ด 0 ๋˜๋Š” 1

โ–ช๏ธ ๊ฐ€์ค‘์น˜ W๋ฅผ updateํ•˜๋Š” ๊ทœ์น™์ด ์žˆ์œผ๋ฉฐ ์ด๋Š” backprop๊ณผ ์œ ์‚ฌํ•จ

โ–ช๏ธ backpropagation ๊ธฐ์ˆ ์ด ๋‚˜์˜ค๊ธฐ ์ด์ „๋ถ€ํ„ฐ ์‹œ์ž‘๋˜์—ˆ์Œ

 

 

โ–ช๏ธ 1960s : linear layer๋ฅผ ์Œ“๊ธฐ ์‹œ์ž‘ํ•จ (์ตœ์ดˆ์˜ multi layer, backprop ์ด์ „, train idea๋„ ์•„์ง ์—†์Œ)

 

 

โ–ช๏ธ 1986 : ์ตœ์ดˆ backpropagation ์†Œ๊ฐœ๋จ , ์ตœ์ดˆ๋กœ network๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ์— ๊ด€ํ•œ ๊ฐœ๋…์ด ์ •๋ฆฝ๋˜๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.

โ–ช๏ธ ๊ทธ๋Ÿฌ๋‚˜ NN์„ ๋” ํฌ๊ฒŒ ๋งŒ๋“ค์ง€ ๋ชปํ•˜๊ณ , ์ƒˆ๋กœ์šด ์ด๋ก ๋„ ๋‚˜์˜ค์ง€ ์•Š์•˜์Œ

โ–ช๏ธ ๋„๋ฆฌ ์‚ฌ์šฉ x ์ด๋‹ค๊ฐ€ 2000๋…„๋Œ€๊ฐ€ ๋˜์–ด์„œ ๋‹ค์‹œ ํ™œ๋ฐœํ•ด์ง

 

 

โ–ช๏ธ  DNN์˜ ํ•™์Šต ๊ฐ€๋Šฅ์„ฑ์„ ์„ ๋ณด์ด๊ณ , ํšจ๊ณผ์ ์ด๋ผ๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์คŒ

โ–ช๏ธ ํ˜„์žฌ ๋ชจ๋˜ํ•œ ๊ทธ๋Ÿฐ NN์€ ์•„๋‹ˆ์–ด์„œ backprop์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„ธ์‹ฌํ•œ ์ดˆ๊ธฐํ™” ํ•„์š”..

โ–ช๏ธ pretraining, ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด RBM์„ ์ด์šฉํ•œ ๊ฐ ํžˆ๋“ ๋ ˆ์ด์–ด ๊ฐ€์ค‘์น˜ ํ•™์Šต, ๊ทธ๋ฆฌ๊ณ  ์ „์ฒด full NN์ด ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜๋ฉด backprop๊ณผ fine tuning์„ ํ•œ๋‹ค.

 

 

โ–ช๏ธ NN์ด ์œ ๋ช…ํ•ด์ง„ ๊ฒƒ์€ 2012๋…„์œผ๋กœ ์Œ์„ฑ ์ธ์‹์—์„œ ์•„์ฃผ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์˜€์Œ

โ–ช๏ธ 2012๋…„ Hinton lab์—์„œ ์˜์ƒ ์ธ์‹์˜ ๊ด€ํ•œ paper๊ฐ€ ๋‚˜์™”๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ImageNet ๋ถ„๋ฅ˜์— ์ตœ์ดˆ๋กœ NN ์‚ฌ์šฉํ•จ (์ข‹์€ ๊ฒฐ๊ณผ)

โ–ช๏ธ AlexNet์˜ ๊ฒฝ์šฐ ImageNet์˜ benchmark์˜ ์—๋Ÿฌ๋ฅผ ๊ทน์ ์œผ๋กœ ๊ฐ์†Œ์‹œํ‚ด

โ–ช๏ธ ์ดํ›„ ConvNets์€ ๋„๋ฆฌ ์“ฐ์ด๊ฒŒ ๋จ.

 

 

๐Ÿ”ธ CNN์ด ์–ด๋–ป๊ฒŒ ์œ ๋ช…ํ•ด์กŒ์„๊นŒ?

โ–ช๏ธ 1950s Hubel๊ณผ Wiesel์˜ ์‹œ๊ฐํ”ผ์งˆ์˜ ๋‰ด๋Ÿฐ์— ๊ด€ํ•œ ์—ฐ๊ตฌ

โ–ช๏ธ ๊ณ ์–‘์ด์˜ ๋‡Œ์— ์ „๊ทน์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ž๊ทน์œผ๋กœ ์‹คํ—˜

โ–ช๏ธ ์ด ๋•Œ ๋‰ด๋Ÿฐ์ด oriented edges์™€ shapes ๊ฐ™์€ ๊ฒƒ์— ๋ฐ˜์‘์„ ํ•˜๋Š” ๊ฒƒ์„ ๊ด€์ฐฐ

โ–ช๏ธ ๋‡Œ์˜ ํ”ผ์งˆ ๋‚ด๋ถ€์— topographical mapping์ด ์žˆ์œผ๋ฉฐ ํ”ผ์งˆ ๋‚ด ์„œ๋กœ ์ธ์ ‘ํ•ด ์žˆ๋Š” ์„ธํฌ๋“ค์€ ์ง€์—ญ์„ฑ์„ ๋„๊ณ  ์žˆ์Œ

 

 

โ–ช๏ธ ๋‰ด๋Ÿฐ๋“ค์ด ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์ง€๋‹Œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

โ–ช๏ธ Retinal ganglion : ์‹œ๊ฐ์‹ ํ˜ธ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋„๋‹ฌํ•˜๋Š” ๊ณณ, retinal ganglion์€ ์›ํ˜•์œผ๋กœ ์ƒ๊ธด ์ง€์—ญ.

โ–ช๏ธ Simple cells : ๊ฐ€์žฅ ์ƒ์œ„์— ์žˆ๊ณ  ์ด ์„ธํฌ๋“ค์€ ๋‹ค์–‘ํ•œ edge๋“ค์˜ ๋ฐฉํ–ฅ, ๋น›์˜ ๋ฐฉํ–ฅ์— ๋ฐ˜์‘ํ•จ.

โ–ช๏ธ ๊ทธ๋ฆฌ๊ณ  complex cells๊ณผ simple cells์€ ์—ฐ๊ฒฐ ๋˜์–ด์žˆ๋Š”๋ฐ, complex์˜ ๊ฒฝ์šฐ ๋น›์˜ ๋ฐฉํ–ฅ, ์›€์ง์ž„์—์„œ ๋ฐ˜์‘ํ•จ

โ–ช๏ธ ์ด๋ ‡๊ฒŒ ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š”, hypercomplex cell์˜ ๊ฒฝ์šฐ end point๊ฐ™์€ ๊ฒƒ์—์„œ ๊นŒ์ง€ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ์Œ

โ–ช๏ธ (์ฆ‰ ๋ณต์žกํ• ์ˆ˜๋ก, ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ง•๋“ค์ด ๋งŽ์•„์ง€๋Š”..?)

 

 

 

โ–ช๏ธ 1980์— Fukishima๋Š” simple/complex cells์„ ๊ต์ฐจ์‹œ์ผœ ์ด ์•„์ด๋””์–ด๋ฅผ ์‚ฌ์šฉํ•œ ์ตœ์ดˆ์˜ NN์„ ์ œ์•ˆ. (neocognitron)

 

 

โ–ช๏ธ 1998 : backprop, gradient-based learning ์ ์šฉํ•œ NN

โ–ช๏ธ ๋ฌธ์„œ์ธ์‹, ์šฐํŽธ๋ฒˆํ˜ธ ์ˆซ์ž ์ธ์‹์— ์•„์ฃผ ์ž˜ ๋™์ž‘, ์šฐํŽธ ์„œ๋น„์Šค์—์„œ ์šฐํŽธ๋ฒˆํ˜ธ ์ธ์‹์— ๋„๋ฆฌ ์‚ฌ์šฉ๋จ.

โ–ช๏ธ ์ˆซ์ž๋ผ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋‹จ์ˆœํ–ˆ๊ณ  ์ด Network๋ฅผ ๋” ํฌ๊ฒŒ ๋งŒ๋“ค์ง€๋Š” ๋ชปํ–ˆ์Œ.

 

 

โ–ช๏ธ 2012 CNN์˜ ํ˜„๋Œ€ํ™” ๋ฐ”๋žŒ์„ ์ผ์œผํ‚ด. AlexNet, ์ด์ „ LeCun์˜ CNN๋ณด๋‹ค ๋” ํฌ๊ณ  ๊นŠ์–ด์ง„ ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค.

โ–ช๏ธ ImageNet dataset๊ณผ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , GPU parallel computing ํž˜๋„ ์žˆ๋‹ค.

โ–ช๏ธ ํ˜„์žฌ์—๋Š” ConvNets์€ ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์— ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค. (Detection, Segmentation, ์ž์œจ์ฃผํ–‰ ์ž๋™์ฐจ, ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ๋“ฑ)

โ–ช๏ธ CNN์€ ์–ผ๊ตด์ธ์‹, ๋น„๋””์˜ค, ๋‹จ์ผ ์ด๋ฏธ์ง€์˜ ์ •๋ณด ๋ฐ ์‹œ๊ฐ„์  ์ •๋ณด, pose recognition, ์˜ํ•™ ์˜์ƒ ํ•ด์„ ๋ฐ ์ง„๋‹จ ๋“ฑ๋“ฑ ๋งค์šฐ ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉ

 

 

โ–ช๏ธ Image Captioning : ์ด๋ฏธ์ง€๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋ฌธ์žฅ์œผ๋กœ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ!

 

โ–ช๏ธ ์ด์™ธ ์˜ˆ์ˆ  ์ž‘ํ’ˆ ๋งŒ๋“ค๊ธฐ๋„ ๊ฐ€๋Šฅํ•˜๊ณ  Deep Dream, Style Transfer๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ• ์ ์šฉ ๊ฐ€๋Šฅ

 


 

๐Ÿ“Œ CNN ๋™์ž‘ ์›๋ฆฌ

๐Ÿ”ธ Fully Connected Layer

โ–ช๏ธ FC Layer๋Š” ์–ด๋–ค ๋ฒกํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์—ฐ์‚ฐ์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

โ–ช๏ธ ์ž…๋ ฅ ๋ฐ›์€ 32x32x3 ์ด๋ฏธ์ง€๋ฅผ ๋ฒกํ„ฐ๋กœ(3072x1) ๋งŒ๋“ ๋‹ค. 

โ–ช๏ธ ๊ฐ€์ค‘์น˜ W์™€ ๋ฒกํ„ฐ๋ฅผ ๊ณฑํ•˜์—ฌ(Wx, ๋‚ด์ ) activation(output)์„ ์–ป๋Š”๋‹ค.

โ–ช๏ธ 1๊ฐœ์˜ ์ˆซ์ž ํ•˜๋‚˜๋ฅผ ์–ป๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Š” Neuron์˜ ํ•œ ๊ฐ’์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  10๊ฐœ์˜ ์ถœ๋ ฅ (10x1)์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

 

 

 

๐Ÿ”ธ Convolution Layer

โ–ช๏ธ Convolutional Layer๋Š” FC ๋ ˆ์ด์–ด์™€ ๋‹ค๋ฅด๊ฒŒ ๊ธฐ์กด์˜ ๊ตฌ์กฐ๋ฅผ ๋ณด์กด์‹œํ‚จ๋‹ค.

โ–ช๏ธ FC ๋ ˆ์ด์–ด์ฒ˜๋Ÿผ ๋ฒกํ„ฐ๋กœ ์ญ‰ ๋Š˜๋ฆฌ๊ธฐ ๋ณด๋‹ค๋Š”, ์ด๋ฏธ์ง€์˜ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค.

โ–ช๏ธ filter๋Š” ๊ฐ€์ค‘์น˜์ด๋ฉฐ ์ด ํ•„ํ„ฐ๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์Šฌ๋ผ์ด๋”ฉํ•˜๋ฉด์„œ ๊ณต๊ฐ„์ ์œผ๋กœ ๋‚ด์ ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

 

๐Ÿ”ธ Convolution ์ˆ˜ํ–‰ ์›๋ฆฌ

โ–ช๏ธ ํ•„ํ„ฐ๋Š” ์ž…๋ ฅ์ด ๊นŠ์ด (Depth, ์ฑ„๋„ ์ˆ˜) ๋งŒํผ ํ™•์žฅ๋œ๋‹ค. ์ด๋ฏธ์ง€๊ฐ€ 32x32x3์ผ ๋•Œ 3์ด depth์— ํ•ด๋‹นํ•จ

โ–ช๏ธ ํ•„ํ„ฐ 5x5๋Š” ๋‹ค๋ฅธ size๋„ ๊ฐ€๋Šฅ (ex. 3x3)

โ–ช๏ธ ์ด ์ด๋ฏธ์ง€ ์ผ€์ด์Šค์˜ ๊ฒฝ์šฐ filter๋Š” NxNx3์ด ๋˜์–ด์•ผ ํ•จ

โ–ช๏ธ ํ•„ํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ „์ฒด ์ด๋ฏธ์ง€์— ๋‚ด์  ์‹œํ‚จ๋‹ค. ์Šฌ๋ผ์ด๋“œ์ฒ˜๋Ÿผ ์ด๋ฏธ์ง€ ์–ด๋–ค ๊ณต๊ฐ„์— ๊ฒน์ณ ๋†“๊ณ  ๋‚ด์ ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

 

โœ๏ธ Question & Answer ์ •๋ฆฌ

โ–ช๏ธ W๋ฅผ Transpose ํ•˜๋Š” ๊ฒƒ์€ ์ˆ˜ํ•™์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ, ํ—น ๋ฒกํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

โ–ช๏ธ W๋ฅผ 5x5x3์ด์ง€๋งŒ ๊ฒฐ๊ตญ ๋‚ด์ ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด 1x75๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ๊ฒฐ๊ตญ ๋ชจ๋‘ ํŽด์„œ ๋ฒกํ„ฐ๊ฐ„ ๋‚ด์ ์„ ์ง„ํ–‰ํ•œ๋‹ค.

โ–ช๏ธ convolution์€ ์‹ ํ˜ธ์ฒ˜๋ฆฌ ๋ถ„์•ผ(ํ•„ํ„ฐ๋ฅผ ๋’ค์ง‘์€ ํ›„ ์—ฐ์‚ฐ)์˜ convolution๊ณผ ์˜๋ฏธ๊ฐ€ ์™„์ „ํžˆ ๊ฐ™์ง€๋Š” ์•Š๋‹ค.

 

 

๐Ÿ”ธ Convolution์—์„œ ์Šฌ๋ผ์ด๋”ฉ ์›๋ฆฌ

โ–ช๏ธ convolution์€ ์ด๋ฏธ์ง€์˜ ์™ผ์ชฝ ์ƒ๋‹จ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ  ํ•„ํ„ฐ์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ๋‚ด์ ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ํ•˜๋‚˜์˜ ๊ฐ’์„ ์–ป๊ฒŒ ๋œ๋‹ค.

โ–ช๏ธ ๊ทธ๋ฆฌ๊ณ  ์ด Output์„ activation map์— ํ•ด๋‹นํ•˜๋Š” ์œ„์น˜์— ์ €์žฅํ•œ๋‹ค.

โ–ช๏ธ ๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ ์ด๋ฏธ์ง€์™€ ์ถœ๋ ฅ activation map์˜ ์ฐจ์›์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์Šฌ๋ผ์ด๋”ฉ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์ง„๋‹ค.

โ–ช๏ธ ํ•˜๋‚˜์˜ ํ•„ํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ „์ฒด ์ด๋ฏธ์ง€์— conv ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ activation map์ด๋ผ๋Š” ์ถœ๋ ฅ ๊ฐ’์„ ์–ป์Œ

 

 

 

โ–ช๏ธ ๋ณดํ†ต ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด ์ด์œ ๋Š” ํ•„ํ„ฐ๋งˆ๋‹ค ๋‹ค๋ฅธ ํŠน์ง•์„ ์ถ”์ถœํ•˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

โ–ช๏ธ 5x5x3 ํ•„ํ„ฐ๊ฐ€ 6๊ฐœ๋ผ๋ฉด 6๊ฐœ์˜ activation map์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

 โ–ช๏ธ ์ด๋Ÿฐ ์‹์œผ๋กœ ์Œ“์•„์˜ฌ๋ ค์„œ CNN์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค!

โ–ช๏ธ ๊ฐ layer์˜ output์€ ๋‹ค์Œ layer์˜ input์ด ๋œ๋‹ค.

โ–ช๏ธ ๊ฐ layer๋งˆ๋‹ค ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•„ํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์ด ํ•„ํ„ฐ๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ์ถœ๋ ฅ map์„ ๋งŒ๋“ ๋‹ค.

 

 

 

โญ๏ธ ํŠน์ง•์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๊ณ , Layer์˜ ๊ณ„์ธต์— ๋”ฐ๋ผ ๋‹จ์ˆœ/๋ณต์žกํ•œ ํŠน์ง•๋“ค์ด ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ด์•ผ ํ•จ!

 

โ–ช๏ธ ์—ฌ๋Ÿฌ ๊ฐœ์˜ layer๋“ค์„ ์Œ“๊ณ  ๋‚˜์„œ ๋ณด๋ฉด ๊ฒฐ๊ตญ ๊ฐ ํ•„ํ„ฐ๋“ค์ด ๊ณ„์ธต์ ์œผ๋กœ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

โ–ช๏ธ ์•ž ์ชฝ์˜ ํ•„ํ„ฐ๋Š” low-level feature๋ฅผ ํ•™์Šตํ•˜๋Š”๋ฐ, edge ๊ฐ™์€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

โ–ช๏ธ mid-level์€ ์ข€ ๋” ๋ณต์žกํ•œ ํŠน์ง•์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. (corner, blob ๊ฐ™์€..)

โ–ช๏ธ high-level์˜ ๊ฒฝ์šฐ๋Š” ์ข€ ๋” ๊ฐ์ฒด์™€ ๋‹ฎ์€ ๊ฒƒ๋“ค์ด output์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

โ–ช๏ธ ๋„คํŠธ์›Œํฌ ์•ž์ชฝ์—์„œ๋Š” ๋‹จ์ˆœํ•œ ๊ฒƒ๋“ค์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋’ค๋กœ ๊ฐˆ์ˆ˜๋ก ์ ์  ๋” ๋ณต์žกํ•ด์ง„๋‹ค.

 

โ–ช๏ธ ์—ฌ๊ธฐ์— ์‹œ๊ฐํ™”๋œ ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋Š” ํ•˜๋‚˜์˜ grid๋Š” ํ•˜๋‚˜์˜ ๋‰ด๋Ÿฐ์ด๋‹ค.

โ–ช๏ธ ์ด ์‹œ๊ฐํ™”ํ•œ ๋‰ด๋Ÿฐ์˜ ๋ชจ์Šต์€ "์ด๋ฏธ์ง€๊ฐ€ ์–ด๋ ‡๊ฒŒ ์ƒ๊ฒจ์•ผ ํ•ด๋‹น ๋‰ด๋Ÿฐ์˜ ํ™œ์„ฑ์„ ์ตœ๋Œ€ํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”์ง€"๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

โ–ช๏ธ ์ด๋ฏธ์ง€๊ฐ€ ๋‰ด๋Ÿฐ์„ ๋น„์Šทํ•˜๊ฒŒ ์ƒ๊ฒผ์„์ˆ˜๋ก output ๊ฐ’์€ ํฐ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

โ–ช๏ธ ์‹œ๊ฐํ™”๋Š” ์—ญ์ „ํŒŒ๋ฅผ ํ†ตํ•ด์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

๐Ÿ”ธ Activation Example

โ–ช๏ธ ์Šฌ๋ผ์ด๋“œ์˜ ๊ทธ๋ฆผ๋“ค์€ ๊ฐ ํ•„ํ„ฐ๊ฐ€ ๋งŒ๋“  ์ถœ๋ ฅ๊ฐ’์ด๋ฉฐ, 5x5 ํ•„ํ„ฐ๋“ค 32๊ฐœ๋ฅผ ์‹œ๊ฐํ™”ํ•œ ๊ฒƒ์ž„

โ–ช๏ธ ๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ๋ฐ•์Šค์˜ ํ•„ํ„ฐ๋Š” edge๋ฅผ ์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ํ•„ํ„ฐ๋ฅผ ์Šฌ๋ผ์ด๋”ฉ ์‹œ์ผœ์„œ ํ•„ํ„ฐ์™€ ๋น„์Šทํ•œ ๊ฐ’๋“ค์˜ ๊ฒฝ์šฐ๋Š” ๊ฐ’์ด ๋” ์ปค์ง„๋‹ค.

โ–ช๏ธ activation์€ ์ด๋ฏธ์ง€๊ฐ€ ํ•„ํ„ฐ๋ฅผ ํ†ต๊ณผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋˜๊ณ , ์ด๋ฏธ์ง€ ์ค‘ ์–ด๋А ์œ„์น˜์—์„œ ํ•„ํ„ฐ๊ฐ€ ํฌ๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š”์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

 

 

 

 

๐Ÿ”ธ CNN ๊ณผ์ •

โ–ช๏ธ ์ฒ˜์Œ conv layer ํ›„ non-linear layer๋ฅผ ํ†ต๊ณผํ•œ๋‹ค.(ex. ReLU)

โ–ช๏ธ pooling์€ activation maps์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ค„์ธ๋‹ค.

 


 

๐Ÿ”ธ Spatial dimension

โ–ช๏ธ stride ํฌ๊ธฐ ๋งŒํผ ์ด๋™ํ•ด์„œ ๋‹ค์Œ convolution ์—ฐ์‚ฐ.

โ–ช๏ธ stride = 3์ธ ๊ฒฝ์šฐ, ์ด๋ฏธ์ง€๋ฅผ ์Šฌ๋ผ์ด๋”ฉ ํ–ˆ์„ ๋•Œ, ํ•„ํ„ฐ๊ฐ€ ๋ชจ๋“  ์ด๋ฏธ์ง€๋ฅผ ์ปค๋ฒ„ํ•  ์ˆ˜ ์—†์Œ (1-3, 4-6, ๋งˆ์ง€๋ง‰ ์—ด์˜ ๋ฐ์ดํ„ฐ๋Š” ์ปค๋ฒ„ x)

โ–ช๏ธ stride = 3์˜ ์ผ€์ด์Šค ์ฒ˜๋Ÿผ ์ด๋ฏธ์ง€์— ์ž˜ ๋งž์•„ ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์Œ..!

โ–ช๏ธ output size๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ˆ˜์‹์„ ํ†ตํ•ด์„œ ์ด๋ฏธ์ง€์™€ ์ž˜ ๋งž์•„ ๋–จ์–ด์ง€๋Š” ์‚ฌ์ด์ฆˆ๋กœ stride๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. + ์ถœ๋ ฅ๊ฐ’ ์ •๋ณด๋„ ์•Œ ์ˆ˜ ์žˆ์Œ

 

 

 

 

๐Ÿ”ธ Zero padding

โ–ช๏ธ ์ด๋ฏธ์ง€ ๊ฐ€์žฅ์ž๋ฆฌ์— 0์„ ์ฑ„์›Œ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•

โ–ช๏ธ ์ถœ๋ ฅ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์˜๋„๋Œ€๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

โ–ช๏ธ ๊ฐ€์žฅ์ž๋ฆฌ zero padding์„ ํ•œ ๊ฒฝ์šฐ, N = 9, F = 3 ์ด๋ฏ€๋กœ (9 - 3)/ 1 + 1 = 6 + 1 = 7์ด ๋˜๋ฏ€๋กœ output์€ 7 x 7 ์ด๋‹ค.

 

 

 

โœ๏ธ Question & Answer ์ •๋ฆฌ

โ–ช๏ธ zero-padding์„ ํ•˜๋Š” ์ด์œ ๋Š” ๋ ˆ์ด์–ด๋ฅผ ๊ฑฐ์น˜๋ฉด์„œ๋„ ์ž…๋ ฅ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

โ–ช๏ธ zero-padding์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์ถœ๋ ฅ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ค„์–ด๋“ค๊ฒŒ ๋œ๋‹ค.

โ–ช๏ธ ๊นŠ์€ ๋„คํŠธ์›Œํฌ์˜ ๊ฒฝ์šฐ ์ •๋ณด๋ฅผ ์žƒ๊ณ  ์›๋ณธ์ด๋ฏธ์ง€๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์€ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

 

โ–ช๏ธ ๋˜ํ•œ, zero-padding์„ ํ•˜๋ฉด, ํ•„ํ„ฐ์˜ ์ค‘์•™์ด ๋‹ฟ์ง€ ์•Š๋˜ (ex. ๋ชจ์„œ๋ฆฌ) ๋ถ€๋ถ„๋„ ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–ช๏ธ zero-padding์„ ํ•˜์ง€ ์•Š์•„์„œ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ค„์–ด๋“œ๋Š”๋ฐ, ์ด๋Š” ๋งค๋ฒˆ ๊ฐ ์ฝ”๋„ˆ์— ์žˆ๋Š” ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 


 

๐Ÿ”ธ Stride์™€ filter ์ผ๋ฐ˜์ ์œผ๋กœ ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

โ–ช๏ธ Filter : ์ฃผ๋กœ 3x3, 5x5, 7x7์„ ์‚ฌ์šฉํ•จ

โ–ช๏ธ Stride : ์ฃผ๋กœ filter๊ฐ€ 3x3 ์ธ ๊ฒฝ์šฐ์—๋Š” 1, 5x5 ์ธ ๊ฒฝ์šฐ์—๋Š” 2, 7x7 ์ธ ๊ฒฝ์šฐ์—๋Š” 3์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

๐Ÿ”ธ Parameter ์ˆ˜ ๊ตฌํ•˜๊ธฐ

โ–ช๏ธ parameter ์ˆ˜ = ((ํ•„ํ„ฐ ์‚ฌ์ด์ฆˆ)*(Depth) + 1 (bias))*(# of filters)

 

 

๐Ÿ”ธ Summary slide & hyperparameter common settings

 +) โ–ช๏ธ 1x1  convolution๋„ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค. ์ด ๋•Œ, ๊ณต๊ฐ„์ ์ธ ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

 


 

 

๐Ÿ”ธ Convolution Layer (brain/neuron ๊ด€์ )

โ–ช๏ธ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์€ ๊ฐ™์€ ์•„์ด๋””์–ด์ด๋‹ค.

โ–ช๏ธ ์ฐจ์ด์ ์€ ๋‰ด๋Ÿฐ์˜ ๊ฒฝ์šฐ local connectivity๊ฐ€ ์žˆ๋‹ค. (conv layer์ฒ˜๋Ÿผ ์Šฌ๋ผ์ด๋”ฉx, ํŠน์ • ๋ถ€๋ถ„์—๋งŒ ์—ฐ๊ฒฐ)

โ–ช๏ธ ๋‰ด๋Ÿฐ์˜ ๊ฒฝ์šฐ ํ•œ ๋ถ€๋ถ„๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ทธ๋Ÿฐ ๋‰ด๋Ÿฐ์ด ๋ชจ์—ฌ ์ „์ฒด ์ด๋ฏธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

โ–ช๏ธ ์ด๋ฅผ ์ •๋ฆฌํ•˜๋ฉด spatial structure๋ฅผ ์œ ์ง€ํ•œ ์ฑ„๋กœ layer์˜ ์ถœ๋ ฅ์ธ activation map์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

 

๐Ÿ”ธ ์ค‘์š” ์šฉ์–ด ์ •๋ฆฌ

โ–ช๏ธ 5x5 ํ•„ํ„ฐ๊ฐ€ ์žˆ์„ ๋•Œ ์ด๋Š” ํ•œ ๋‰ด๋Ÿฐ์˜ receptive field๊ฐ€ 5x5๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–ช๏ธ Receptive field : ํ•œ ๋‰ด๋Ÿฐ์ด ํ•œ ๋ฒˆ์— ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ

โ–ช๏ธ 5x5 ํ•„ํ„ฐ๊ฐ€ ์Šฌ๋ผ์ด๋”ฉํ•˜๋ฉด์„œ ๊ณ„์‚ฐ์„ ํ•  ๋•Œ, ํ•„ํ„ฐ ๊ฐ’์ด ํ•ญ์ƒ ๊ฐ™๋‹ค! โญ๏ธโญ๏ธ

 

 

๐Ÿ”ธ Output value

โ–ช๏ธ ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ•„ํ„ฐ๊ฐ€ 5๊ฐœ์˜ ์ข…๋ฅ˜์ผ ๋•Œ, 5๊ฐœ์˜ ์ ์€ ์ •ํ™•ํ•˜๊ฒŒ ๊ฐ™์€ ์ง€์—ญ์—์„œ ์ถ”์ถœ๋œ ์„œ๋กœ ๋‹ค๋ฅธ ํŠน์ง•์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

โ–ช๏ธ ๊ฐ ํ•„ํ„ฐ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํŠน์ง•์„ ์ถ”์ถœํ•œ๋‹ค!

 


 

๐Ÿ”ธ Pooling Layer

โ–ช๏ธ Pooling layer๋Š” representation๋“ค์„ ๋” ์ž‘๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•ด์ค€๋‹ค.

โ–ช๏ธ representation์„ ์ค„์ด๋Š” ์ด์œ ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ, ๊ทธ๋ฆฌ๊ณ  ์ผ์ข…์˜ ๊ณต๊ฐ„์ ์ธ ๋ถˆ๋ณ€์„ฑ์„ ์–ป๊ธฐ ์œ„ํ•จ์ด๋‹ค.

โ–ช๏ธ pooling layer๋Š” down sample์„ ํ•œ๋‹ค. (๊ณต๊ฐ„์ , row, col ๋ฐฉํ–ฅ์œผ๋กœ, depth์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ)!

 

 

 

 

โ–ช๏ธ ์ผ๋ฐ˜์ ์œผ๋กœ ํ’€๋ง์€ Max Pooling์ด ์‚ฌ์šฉ๋œ๋‹ค.

โ–ช๏ธ pooling๋„ ํ•„ํ„ฐ ํฌ๊ธฐ๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 

โ–ช๏ธ pooling์€ ๋˜ํ•œ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค. (๋ชฉ์ ์€ down sample์ด๋ฏ€๋กœ)

โ–ช๏ธ pooling๋„ ์ผ์ข…์˜ stride ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

โœ๏ธ ์™œ Max pooling์„ average pooling๋ณด๋‹ค ์ฃผ๋กœ ์‚ฌ์šฉํ• ๊นŒ?

โ–ช๏ธ ์šฐ๋ฆฌ๊ฐ€ ๋‹ค๋ฃจ๋Š” ๊ฐ’๋“ค์€ "์–ผ๋งˆ๋‚˜ ์ด ๋‰ด๋Ÿฐ์ด ๊ฐ ์œ„์น˜์—์„œ ํ™œ์„ฑ๋˜์—ˆ๋Š”์ง€"์ด๋‹ค.

โ–ช๏ธ ๋”ฐ๋ผ์„œ Max pooling์€ ์–ด๋–ค ์‹ ํ˜ธ์— ๋Œ€ํ•ด ์–ผ๋งˆ๋‚˜ ๊ทธ ํ•„ํ„ฐ๊ฐ€ ํ™œ์„ฑํ™” ๋˜์—ˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

โ–ช๏ธ ์ฆ‰ ์ธ์‹์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•  ๋•Œ, ์œ„์น˜๋ณด๋‹ค ๊ทธ ๊ฐ’์ด ์–ผ๋งˆ๋‚˜ ํฐ์ง€ ์ค‘์š”ํ•˜๋‹ค.

 

 

๐Ÿ”ธ Pooling Layer Design Choice

โ–ช๏ธ pooling layer๋Š” ๋ณดํ†ต padding์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

โ–ช๏ธ down sampling์ด ๋ชฉ์ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋ฉฐ, convolution์ฒ˜๋Ÿผ ์ฝ”๋„ˆ์˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์—†๊ธฐ ๋Œ€๋ฌธ์ด๋‹ค.

โ–ช๏ธ ๋ณดํ†ต ํ•„ํ„ฐ ์‚ฌ์ด์ฆˆ๋Š” 2x2, 3x3์„ ์‚ฌ์šฉํ•˜๊ณ  stride๋Š” 2๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

๐Ÿ”ธ ์š”์•ฝ

โ–ช๏ธ Typical architectures์—์„œ -๋Š” ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ์„ ์˜๋ฏธํ•จ

โ–ช๏ธ FC, Pooling์„ ์ค„์ด๋Š” ์ถ”์„ธ์ด๋‹ค.

โ–ช๏ธ class score๋ฅผ ๊ตฌํ•  ๋•Œ, softmax๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.