ConvNet์˜ ์ž‘๋™์›๋ฆฌ

ConvNet์˜ ์ž‘๋™์›๋ฆฌ

Convolution Layer


Convolution Layer์™€ Fully Connected Layer์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ย ๊ณต๊ฐ„๊ตฌ์กฐ๋ฅผ ๋ณด์กดํ•˜๊ณ  ์‹ถ์–ดํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ€์ค‘์น˜์— ํ•ด๋‹นํ•˜๋Š” ํ•„ํ„ฐw๋Š” ๊ฐ€๋กœ์™€ ์„ธ๋กœ์˜ ํฌ๊ธฐ๋Š” input์˜ ํฌ๊ธฐ๋ณด๋‹ค ํฌ์ง€๋งŒ ์•Š์œผ๋ฉด ๋˜์ง€๋งŒ, ๊นŠ์ด๋Š” ๋ฌด์กฐ๊ฑด input๊ฐ’๊ณผ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. filter๋ฅผ, ์™ผ์ชฝ ์œ„๋ถ€ํ„ฐ ๋ชจ๋“  ๋ถ€๋ถ„๋งˆ๋‹ค ๋‚ด์ ์„ ํ•ด์ฃผ๋Š”๊ฒŒ ํฌ์ธํŠธ๋‹ค (). ์˜ˆ๋ฅผ ๋“ค์–ด, 32*32*3 ์ด๋ฏธ์ง€์— 5*5*3 ํ•„ํ„ฐ์˜ ๋‚ด์ ์„ ์‹ค์‹œํ•˜๋ฉด 28*28*1์˜ ํ™œ์„ฑํ™” ๋งต์ด ๋‚˜์˜จ๋‹ค.
notion image
notion image
notion image
notion image
notion image
notion image
๋‚ด์ ์„ ์‹ค์‹œํ•˜๋Š” ์›๋ฆฌ๋Š” ๋ณดํญ์— ๋”ฐ๋ผ ํ•„ํ„ฐ๋ฅผ ๋ฐ€์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์œ„๋Š” 7*7 ์ธํ’‹์— ๋ณดํญ์„ 1๋กœ ์„ค์ •ํ•œ ํ›„, 3*3์˜ ๋‚ด์ ์„ ์‹ค์‹œํ•˜๋Š” ๋ชจ์Šต์ด๋‹ค. ์•„์›ƒํ’‹์€ (N(ํฌ๊ธฐ)-F(ํ•„ํ„ฐ)) / stride(๋ณดํญ) + 1์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋ณดํญ์€ ๋ฐ˜๋“œ์‹œ ์•„์›ƒํ’‹์„ ์ž์—ฐ์ˆ˜๋กœ ๋งŒ๋“œ๋Š” ๊ฐ’์ด์–ด์•ผํ•œ๋‹ค.
ย 
๋งŒ์•ฝ ๊ฐ€์žฅ์ž๋ฆฌ์— zero padding์„ ์ ์šฉํ•œ๋‹ค๋ฉด, ์‚ฌ์ด์ฆˆ๋Š” (N+2)*(N+2)๋กœ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์œ ๋…ํ•ด ๊ณต์‹์„ ์ ์šฉํ•ด ์•„์›ƒํ’‹์„ ๊ตฌํ•ด์•ผํ•œ๋‹ค. ์ด์ฒ˜๋Ÿผ zero padding์„ ์ ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์ „์ฒดํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. ๋˜ํ•œ ํ•„ํ„ฐ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ˆ˜๋Š”ย F*F*๊นŠ์ด + bย ์ด๋‹ค.
ย 
๐Ÿฅ‘
padding ์ด๋ž€? Convolution layer๋ฅผ ํ†ต๊ณผํ–ˆ์„ ๋•Œ activation map์˜ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋ฏธ์ง€์˜ Size๋ฅผ ์œ ์ง€ํ•˜์—ฌ ๊ฐ€์žฅ์ž๋ฆฌ์˜ ์ •๋ณด๋ฅผ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€ ์ฃผ๋ณ€์„ ํŠน์ •๊ฐ’์œผ๋กœ ์ฑ„์›Œ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค.
notion image
ย 
CNN์€ ํ•˜๋‚˜์˜ ํ•„ํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ๋‹ค์–‘ํ•œ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹ค์–‘ํ•œ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ํ•„ํ„ฐ๋งˆ๋‹ค ๋‹ค๋ฅธ ํŠน์ง•์„ ๋‚˜ํƒ€๋‚ด๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ํ•„ํ„ฐ๋ณ„๋กœ ํ™œ์„ฑํ™”๋งต์„ ๋งŒ๋“ค์–ด๋‚ด๊ณ , ํ™œ์„ฑํ™”๋งต ๊ฐœ์ˆ˜์˜ ๋ณผ๋ฅจ์„ ๊ฐ€์ง€๋Š” ์ถœ๋ ฅ์ด ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ย Convolution layer์™€ ReLU์™€ ๊ฐ™์€ ํ™œ์„ฑํ™”ํ•จ์ˆ˜๋ฅผ ๊ฐ™์ด ์Œ“์•„์˜ฌ๋ฆฌ๊ณ , Pooling Layer๊ฐ€ ๊ณณ๊ณณ์— ๋“ค์–ด๊ฐ„ ํ˜•ํƒœ๊ฐ€ ๋ฐ”๋กœ CNN์ด๋‹ค.
์ด๋Ÿฌํ•œ ํ•„ํ„ฐ ๊ณ„์ธต ๊ตฌ์กฐ๋Š” ๋ ˆ๋ฒจ์ด ๋†’์•„์งˆ์ˆ˜๋ก ๋ชจ์„œ๋ฆฌ, ์–ผ๋ฃฉ๋ถ€ํ„ฐ ๋ณต์žกํ•œ ํŠน์ง•๊นŒ์ง€ ํŒŒ์•…ํ•˜๊ฒŒ ๋œ๋‹ค.
ย 
ย 
ย 
ย 
notion image
๐Ÿฅ‘
์ •๋ฆฌ (W=๊ฐ€๋กœ, H=์„ธ๋กœ, D=๊นŠ์ด, ํ•„ํ„ฐ๊ฐœ์ˆ˜ = K, ํ•„ํ„ฐํฌ๊ธฐ =F, ๋ณดํญ = S, ํŒจ๋”ฉ์ˆ˜ = P) input size = ์ผ๋•Œ, output size =
K๋Š” 2์˜ ์ œ๊ณฑ( 32,64,128,512 ๋“ฑ) ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ , [F=3, S=1, P=1], [F=5, S=1, P=2], [F=5, S=2, P=?(whatever fits)], [F=1, S=1, P=0] ๋“ฑ์ด ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.
ย 

ReLU


Activation Functions ๋ฌธ์„œ ์ฐธ๊ณ 
notion image
ย 

Pooling Layer


notion image
Conv Layer์„ ๊ฑฐ์ณ ๋‚˜์˜จ activation map, ๊ทธ๋ฆฌ๊ณ  ReLu๋ฅผ ๊ฑฐ์นœ ์ถœ๋ ฅ์˜ ํฌ๊ธฐ๋ฅผ ๊นŠ์ด๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ downsampling ํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด๋‹ค. ์‚ฌ์ด์ฆˆ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŒจ๋”ฉ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์“ฐ์ด๋Š” ๋ฐฉ๋ฒ•์€ Max Pooling์œผ๋กœ, ํ•„ํ„ฐ๊ฐ€ ์Šฌ๋ผ์ด๋”ฉํ•˜๋ฉฐ ํ•„ํ„ฐ ์•ˆ์— ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค. ๋‹ค์–‘ํ•œ pooling ์‚ฌ์ด์ฆˆ, ํ•„ํ„ฐ ํฌ๊ธฐ, ๋ ˆ์ด์–ด ์ˆ˜ ๋“ฑ์„ ์‹œ๋„ํ•ด ๋ณด๋Š” ๋“ฑ์˜ Cross-validation์ด ํ•„์š”ํ•˜๋‹ค.
๐Ÿฅ‘
์ •๋ฆฌ (W=๊ฐ€๋กœ, H=์„ธ๋กœ, D=๊นŠ์ด, Pooling Layer ํ•„ํ„ฐํฌ๊ธฐ =F, ๋ณดํญ = S) input size = ์ผ๋•Œ, output size =
ย 

Fully Connected Layer(FC layer)


notion image
์œ„์˜ ์ถœ๋ ฅ์„ 1์ฐจ์› ๋ฒกํ„ฐ๋กœ ๋งŒ๋“ค์–ด ๋ชจ๋“  ์ถœ๋ ฅ์„ ์—ฐ๊ฒฐํ•œ๋‹ค. ์ด๋•Œ๋Š” ๊ณต๊ฐ„์  ๊ตฌ์กฐ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•œ ๋‹ค์Œ, ํด๋ž˜์Šค ์Šค์ฝ”์–ด๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ถœ๋ ฅ๋œ ๊ฐ’์€ ๊ณ„์ธต๊ตฌ์กฐ์˜ ์ตœ์ƒ์œ„ ๊ฐ’์œผ๋กœ, ๊ฐ ๊ฐ’๋“ค์ด ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€ ํ•„ํ„ฐ์˜ Template์ด ์–ผ๋งˆ๋‚˜ ํ™œ์„ฑํ™”๋˜์—ˆ๋Š”๊ฐ€์ด๋‹ค.
ย