A A
[DL] Convolution Neural Network - CNN (ํ•ฉ์„ฑ๊ณฑ ์‹ ๊ฒฝ๋ง), Convolution Layer, Pooling Layer
Convolutional Neural Network, CNN์€ ์ด๋ฏธ์ง€ ์ธ์‹ & ์Œ์‹ ์ธ์‹๋“ฑ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ํŠนํžˆ ์ด๋ฏธ์ง€ ์ธ์‹ ๋ถ„์•ผ ์—์„œ ๋”ฅ๋Ÿฌ๋‹์„ ํ™œ์šฉํ•œ ๊ธฐ๋ฒ•์€ ๊ฑฐ์ด ๋‹ค CNN์„ ๊ธฐ์ดˆ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

CNN ์ „์ฒด ๊ตฌ์กฐ

Convolution Layer(ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต)๊ณผ Pooling Layer(ํ’€๋ง ๊ณ„์ธต)์ด ์ด๋ฒˆ์— ์ƒˆ๋กœ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ๊ฐ€ ๋ณธ ์ง€๊ธˆ๊นŒ์ง€์˜ Neural Network(์‹ ๊ฒฝ๋ง)์€ ๋ชจ๋“  Neuron๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฅผ Fully-Connected (FC) - ์™„์ „์—ฐ๊ฒฐ ์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์™„์ „ํžˆ ์—ฐ๊ฒฐ๋œ Layer๋Š” 'Affine ๊ณ„์ธต' ์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ Affine ๊ณ„์ธต์„ ์‚ฌ์šฉํ•˜๋ฉด, Layer๊ฐ€ 5๊ฐœ์ธ Fully-Connected Neural Network(FC ์‹ ๊ฒฝ๋ง)์€ ์•„๋ž˜์˜ ๊ตฌ๋ฆผ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™„์ „์—ฐ๊ฒฐ ๊ณ„์ธต(Affine ๊ณ„์ธต)์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋„คํŠธ์›Œํฌ

  • Fully-Connected Neural Network(์™„์ „์—ฐ๊ฒฐ ์‹ ๊ฒฝ๋ง)์€ Affine ๋’ค์— Activation Function (ํ™œ์„ฑํ™” ํ•จ์ˆ˜)๋ฅผ ๊ฐ€์ง€๋Š” ReLU or Sigmoid ๊ณ„์ธต์ด ์ด์–ด์ง‘๋‹ˆ๋‹ค. 
  • ๊ทธ๋Ÿฌ๋ฉด Convolutional Neural Network(CNN)์˜ ๊ตฌ์กฐ๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅผ๊นŒ์š”? ์•„๋ž˜์˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด์„œ ํ•œ๋ฒˆ ๋ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

CNN์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋„คํŠธ์›Œํฌ. Conv(ํ•ฉ์„ฑ๊ณฑ), Pooling(ํ’€๋ง) ๊ณ„์ธต์ด ์ถ”๊ฐ€๋จ

  • ์ฃผ์š”ํ•œ ํŠน์ง•์€ Conv(ํ•ฉ์„ฑ๊ณฑ), Pooling(ํ’€๋ง) ๊ณ„์ธต์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜ํ•œ Output(์ถœ๋ ฅ)์— ๊ฐ€๊นŒ์šด ์ธต์—์„œ๋Š” ์ง€๊ธˆ๊นŒ์ง€ 'Affine-ReLU' ๊ณ„์ธต์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๊ณ , ๋งˆ์ง€๋ง‰ Output ๊ณ„์ธต์—์„œ๋Š” 'Affine-Softmax' ์กฐํ•ฉ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. 

Convolution Layer - ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต

CNN์—์„œ๋Š” Padding(ํŒจ๋”ฉ), Stride(์ŠคํŠธ๋ผ์ด๋“œ)๋“ฑ CNN์˜ ๊ณ ์œ ์˜ ์šฉ์–ด๊ฐ€ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ฐ Layer(๊ณ„์ธต) ์‚ฌ์ด์—๋Š” 3-Dimenion(3์ฐจ์›) ๋ฐ์ดํ„ฐ๊ฐ™์ด ์ž…์ฒด์ ์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ํ๋ฅธ๋‹ค๋Š” ์ 
์—์„œ Fully-Connected Neural Network(์™„์ „์—ฐ๊ฒฐ ์‹ ๊ฒฝ๋ง)๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  • Fully-Connected Layer(์™„์ „์—ฐ๊ฒฐ ๊ณ„์ธต)์—์„œ์˜ ๋ฌธ์ œ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”?
  • ์ผ๋‹จ, Fully-Connected Layer(์™„์ „์—ฐ๊ฒฐ ๊ณ„์ธต)์—์„œ๋Š” ์ธ์ ‘ํ•˜๋Š” Layer(๊ณ„์ธต)์˜ Neuron์ด ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜๊ณ  Output์˜ ์ˆ˜๋Š” ์ž„์˜๋กœ ์ •ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋งŒ ๊ทธ๋Ÿฌ๋ฉด ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ๋Š” '๋ฐ์ดํ„ฐ์˜ ํ˜•์ƒ์ด ๋ฌด์‹œ'๋œ๋‹ค๋Š” ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋ฏธ์ง€๋Š” ๊ฐ€๋กœ, ์„ธ๋กœ, ์ฒด๋„(์ƒ‰์ƒ)์œผ๋กœ ๊ตฌ์„ฑ๋œ 3์ฐจ์› ๋ฐ์ดํ„ฐ์ธ๋ฐ, ์ด๊ฑธ Fully-Connected Layer(์™„์ „์—ฐ๊ฒฐ ๊ณ„์ธต)์— ์ž…๋ ฅํ• ๋•Œ๋Š” 3์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ํ‰ํ‰ํ•œ 1์ฐจ์› ๋ฐ์ดํ„ฐ๋กœ Flatten(ํ‰ํƒ„ํ™”)ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • CNN์—์„œ๋Š” Convolution Layer(ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต)์˜ input, output data๋ฅผ 'Feature map(ํŠน์ง•๋งต)'์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    • input data๋ฅผ ์ž…๋ ฅ ํŠน์ง• ๋งต(input feature map), output data๋ฅผ ์ถœ๋ ฅ ํŠน์ง• ๋งต(output feature map)์ด๋ผ๊ณ  ํ•œ๋‹ค.

Convolution ์—ฐ์‚ฐ - ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ

Convolution Layer (ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต)์—์„œ 'ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ' ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ์€ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ์—์„œ ๋งํ•˜๋Š” 'filter ์—ฐ์‚ฐ'์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ํ•œ๋ฒˆ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด์„œ ์„ค๋ช…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Convolution ์—ฐ์‚ฐ์€ Input data์— filter๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
Data filter์˜ ํ˜•์ƒ: (๋†’์ด-height, ๋„“์ด-width)๋กœ ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ์ž…๋ ฅ์€ (4,4), filter๋Š” (3,3), ์ถœ๋ ฅ์€ (2,2)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. filter๋ฅผ ๋‹ค๋ฅธ๋ง๋กœ Kernel(์ปค๋„)์ด๋ผ๊ณ  ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
  • Convolution ์—ฐ์‚ฐ์€ filter์˜ window(์œˆ๋„์šฐ)๋ฅผ ์ผ์ • ๊ฐ„๊ฒฉ์œผ๋กœ ์ด๋™ํ•ด ๊ฐ€๋ฉด์„œ input data์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” window๋Š” ์•„๋ž˜์˜ ๊ทธ๋ฆผ์˜ ํšŒ์ƒ‰ 3x3 ๋ถ€๋ถ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ๊ณผ filter์—์„œ ๋Œ€์‘ํ•˜๋Š” ์›์†Œ๋ผ๋ฆฌ ๊ณฑํ•œํ›„ ๊ทธ ์ดํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ์ด ๋ฉ๋‹ˆ๋‹ค.
    • ์ด๊ณ„์‚ฐ์„ '๋‹จ์ผ ๊ณฑ์…‰-๋ˆ„์‚ฐ(fused multifly-add, FMA)' ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ๊ณผ์ •์„ ๋ชจ๋“  ์žฅ์†Œ์—์„œ ์ˆ˜ํ–‰ํ•˜๋ฉด Convolution ์—ฐ์‚ฐ์˜ ์ถœ๋ ฅ์ด ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.

Convolution(ํ•ฉ์„ฑ๊ณฑ) ์—ฐ์‚ฐ์˜ ๊ณ„์‚ฐ ์ˆœ์„œ

  • ๋˜ํ•œ Fully-Connected Neural Network(์™„์ „์—ฐ๊ฒฐ ์‹ ๊ฒฝ๋ง)์—๋Š” Weight(๊ฐ€์ค‘์น˜), Bias(ํŽธํ–ฅ)์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • CNN์—์„œ๋Š” filter์˜ parameter๊ฐ€ ๊ทธ๋™์•ˆ์˜ 'Weight(๊ฐ€์ค‘์น˜)'์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Bias(ํŽธํ–ฅ)๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • Bias(ํŽธํ–ฅ)๋„ ํฌํ•จํ•˜๋ฉด ์•„๋ž˜์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ Flow๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Convolution ์—ฐ์‚ฐ์˜ Bias(ํŽธํ–ฅ)

 

  • ๊ทธ๋ฆฌ๊ณ  Bias(ํŽธํ–ฅ)์€ ํ•ญ์ƒ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค(size๋Š” 1x1), ๊ทธ๋ฆฌ๊ณ  ๊ทธ ํ•˜๋‚˜์˜ ๊ฐ’์„ filter์— ์ ์šฉํ•œ ๋ชจ๋“  ์›์†Œ์— ๋”ํ•ฉ๋‹ˆ๋‹ค. 

Padding (ํŒจ๋”ฉ)

ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— Input Data ์ฃผ๋ณ€์„ ํŠน์ •๊ฐ’ - 0 ์œผ๋กœ ์ฑ„์šฐ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํŒจ๋”ฉ(padding)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
Convoultion ์—ฐ์‚ฐ์—์„œ ์ž์ฃผ ์ด์šฉํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • ์•„๋ž˜ ๊ทธ๋ฆผ์œผ๋กœ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด (4,4) ํฌ๊ธฐ์— input data์˜ ํญ์ด 1์ธ padding์„ ์ ์šฉํ•œ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.
  • ํญ์ด 1์งœ๋ฆฌ padding์ด๋ฉด input data ์‚ฌ๋ฐฉ 1 pixel์„ ํŠน์ • ๊ฐ’์œผ๋กœ ์ฑ„์šฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ฒ˜์Œ์˜ ํฌ๊ธฐ๊ฐ€ (4, 4)์ธ Input data์— padding์ด ์ถ”๊ฐ€๋˜์–ด (6, 6)์ด ๋ฉ๋‹ˆ๋‹ค.
  • ์ด Input data์— (3, 3) ํฌ๊ธฐ์˜ filter๋ฅผ ๊ฑธ๋ฉด (4,4)ํฌ๊ธฐ์˜ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • ์ค‘์š”ํ•œ๊ฑด 'Padding'์€ ์ฃผ๋กœ ์ถœ๋ ฅ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

Stride (์ŠคํŠธ๋ผ์ด๋“œ)

filter๋ฅผ ์ ์šฉํ•˜๋Š” ์œ„์น˜์˜ ๊ฐ„๊ฒฉ์„ Stride๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋ณธ ์˜ˆ์ œ๋Š” Stride๊ฐ€ 1์ด์˜€์ง€๋งŒ, Stride๋ฅผ 2๋กœ ํ•˜๋ฉด filter๋ฅผ ์ ์šฉํ•˜๋Š” Window๊ฐ€ ๋ชจ๋‘ 2์นธ์”ฉ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

Stride๊ฐ€ 2์ธ Convolution(ํ•ฉ์„ฑ๊ณฑ) ์—ฐ์‚ฐ

  • ์œ„์˜ ์˜ˆ์‹œ์—์„œ Stride๊ฐ€ (7,7)์ธ Input Data์— Stride๋ฅผ 2๋กœ ์‚ฌ์šฉํ•œ filter๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ด์ฒ˜๋Ÿผ Stride๋Š” filter๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ŠคํŠธ๋ผ์ด๋“œ๋ฅผ ํ‚ค์šฐ๋ฉด ์ถœ๋ ฅ ํฌ๊ธฐ๋Š” ์ž‘์•„์ง€๊ณ , ํŒจ๋”ฉ์„ ํฌ๊ฒŒ ํ•˜๋ฉด ์ถœ๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ปค์ง„๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฉด Padding, Stride, Output ํฌ๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ ํฌ๊ธฐ๋ฅผ (HW), ํ•„ํ„ฐ ํฌ๊ธฐ๋ฅผ (FHFW), ์ถœ๋ ฅ ํฌ๊ธฐ๋ฅผ (OHOW), ํŒจ๋”ฉ์„ P, ์ŠคํŠธ๋ผ์ด๋“œ๋ฅผ S๋ผ๊ณ  ํ•˜๋ฉด ์ถœ๋ ฅ ํฌ๊ธฐ๋Š” ์•„๋ž˜์˜ ์‹์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹จ, ์ด ๋‘ ์‹์€ ๋ชจ๋‘ ์ •์ˆ˜๋กœ ๋‚˜๋ˆ ๋–จ์–ด์ง€๋Š” ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.
OW=(W+2P+FW)/S +1
OH=(H+2P+FH)/S +1

3-Dimension Data(3์ฐจ์› ๋ฐ์ดํ„ฐ)์˜ Convolution(ํ•ฉ์„ฑ๊ณฑ) ์—ฐ์‚ฐ

2์ฐจ์›์ผ๋•Œ์˜ Convolution(ํ•ฉ์„ฑ๊ณฑ) ์—ฐ์‚ฐ๊ณผ๋Š” ๋‹ค๋ฅธ ์ ์€, ๊ธธ์ด(Channel) ๋ฐฉํ–ฅ์œผ๋กœ Feature map (ํŠน์ • ๋งต)์ด ๋Š˜์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.
  • ์ฑ„๋„์ชฝ์œผ๋กœ ํŠน์ง• ๋งต์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์œผ๋ฉด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์™€ filter๋กœ Convolution ์—ฐ์‚ฐ์„ Channel๋ณ„๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋”ํ•ด์„œ ํ•˜๋‚˜์˜ ์ถœ๋ ฅ์„ ์–ป์Šต๋‹ˆ๋‹ค.
  • ์ฃผ์˜ํ•ด์•ผ ํ• ์ ์€ 3์ฐจ์› ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ์—์„œ ์ฃผ์˜ํ•  ์ ์€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ฑ„๋„ ์ˆ˜์™€ ํ•„ํ„ฐ์˜ ์ฑ„๋„ ์ˆ˜๊ฐ€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


Block์œผ๋กœ ์ƒ๊ฐํ•˜๊ธฐ

3-Dimension์˜ Convolution ์—ฐ์‚ฐ์€ Data & filter๋ฅผ ์ง์œก๋ฉด์ฒด ๋ธ”๋ก์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ์Šต๋‹ˆ๋‹ค.
  • 3-Dimension(3์ฐจ์›) ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋Š” (Channel-์ฑ„๋„, Height-๋†’์ด, Width-๋„ˆ๋น„) ์ˆœ์„œ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์ฑ„๋„์ˆ˜ C, ๋†’์ด H, ๋„ˆ๋น„ W์ธ ๋ฐ์ดํ„ฐ์˜ ํ˜•์ƒ -> (C,H,W), ํ•„ํ„ฐ์˜ ํ˜•์ƒ -> (C,FH,FW) ์ด๋Ÿฐ ํ˜•์‹์œผ๋กœ ์”๋‹ˆ๋‹ค.
  • ์ฑ„๋„์ˆ˜ C, ํ•„ํ„ฐ ๋†’์ด FW, ํ•„ํ„ฐ ๋„ˆ๋น„ FW์˜ ๊ฒฝ์šฐ (C, FH, FW)๋กœ ์”๋‹ˆ๋‹ค.

์ž…๋ ฅ ๋ฐ์ดํ„ฐ * ํ•„ํ„ฐ → ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ (1,OH,OW)

  • ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด filter๋ฅผ FN๊ฐœ ์ ์šฉ์‹œํ‚ค๋ฉด ์ถœ๋ ฅ๋งต๋„ FN๊ฐœ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ด ํ˜•์ƒ์„ ๋ชจ์œผ๋ฉด (FN, OH, OW)์ธ ๋ธ”๋ก์ด ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • ์ด ์™„์„ฑ๋œ ๋ธ”๋ก์„ ๋‹ค์Œ Layer๋กœ ๋„˜๊ธฐ๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด CNN์˜ ์ฒ˜๋ฆฌ ํ๋ฆ„์ž…๋‹ˆ๋‹ค.

Convoultion ์—ฐ์‚ฐ์˜ ์ฒ˜๋ฆฌ ํ๋ฆ„ (bias ์ถ”๊ฐ€)

  • ์ถœ๋ ฅ์œผ๋กœ ๋‹ค์ˆ˜์˜ Channel์„ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด filter๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ(FN๊ฐœ) ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฉด filter์˜ Weight(๊ฐ€์ค‘์น˜) ๋ฐ์ดํ„ฐ๋Š” 4์ฐจ์›์ด ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Bias(ํŽธํ–ฅ)์€ ์ฑ„๋„ ํ•˜๋‚˜์— ๊ฐ’ ํ•˜๋‚˜์”ฉ์œผ๋กœ (FN, 1, 1) ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  filter์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ์˜ ํ˜•์ƒ์€ (FN, OH, OW)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Batch ์ฒ˜๋ฆฌ

Convolution ์—ฐ์‚ฐ์—์„œ ๊ฐ ๊ณ„์ธต์„ ํ๋ฅด๋Š” ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›์„ ํ•˜๋‚˜ ๋Š˜๋ ค 4์ฐจ์› ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅํ•˜์—ฌ Batch ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ (๋ฐ์ดํ„ฐ ์ˆ˜, ์ฑ„๋„ ์ˆ˜, ๋†’์ด, ๋„ˆ๋น„) ์ˆœ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๊ฐ€ N๊ฐœ์ผ ๋•Œ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๊ฐ€ ์•„๋ž˜์˜ ํ˜•ํƒœ์ฒ˜๋Ÿผ ๋ฉ๋‹ˆ๋‹ค.

Convoultion ์—ฐ์‚ฐ์—์„œ์˜ ์ฒ˜๋ฆฌ ํ๋ฆ„ (Batch ์ฒ˜๋ฆฌ)

  • batch ์ฒ˜๋ฆฌ์‹œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด, ๊ฐ ๋ฐ์ดํ„ฐ์˜ ์„ ๋‘์— ๋ฐฐ์น˜์šฉ ์ฐจ์›์„ ์ถ”๊ฐ€ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋Š” 4์ฐจ์› ํ˜•์ƒ์„ ๊ฐ€์ง„ ์ฑ„ ๊ฐ Layer๋ฅผ ํƒ€๊ณ  ํ๋ฆ…๋‹ˆ๋‹ค.
  • ์ฃผ์˜ํ•ด์•ผ ํ• ์ ์€ Neural Network(์‹ ๊ฒฝ๋ง)์— 4์ฐจ์› ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜ ํ๋ฅผ๋•Œ ๋งˆ๋‹ค, ๋ฐ์ดํ„ฐ N๊ฐœ์— ๋Œ€ํ•œ Convoultion ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด ์ง„๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ฆ‰ NํšŒ ๋ถ„์˜ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋ฒˆ์— ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Pooling Layer - ํ’€๋ง ๊ณ„์ธต

Pooling์€ ์„ธ๋กœ * ๊ฐ€๋กœ ๋ฐฉํ–ฅ์˜ ๊ณต๊ฐ„์„ ์ค„์ด๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. 
  • ์•„๋ž˜์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด 2 x 2 ์˜์—ญ์„ ์›์†Œ ํ•˜๋‚˜๋กœ ์ง‘์•ฝํ•˜์—ฌ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.

Max Pooling์˜ ์ฒ˜๋ฆฌ ์ˆœ์„œ

  • ์œ„์˜ ๊ทธ๋ฆผ์€ 2 x 2 Max Pooling์„ Stride 2๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.
  • Max Pooling์€ ์ตœ๋Œ€๊ฐ’(max๊ฐ’)์„ ๊ตฌํ•˜๋Š” ์—ฐ์‚ฐ์œผ๋กœ, '2 x 2'๋Š” ๋Œ€์ƒ ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค.
  • ์ฆ‰, 2 x 2 ์˜ Max Pooling์€ 2 x 2 ํฌ๊ธฐ์˜ ์˜์—ญ์—์„œ ๊ฐ€์žฅ ํฐ ์›์†Œ ํ•˜๋‚˜๋ฅผ ๊บผ๋ƒ…๋‹ˆ๋‹ค.
  • ์ฐธ๊ณ ๋กœ Pooling์˜ Window ํฌ๊ธฐ & Stride๋Š” ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋Š”๊ฒƒ์ด ๋ณดํ†ต์ž…๋‹ˆ๋‹ค.

Pooling Layer์˜ ํŠน์ง•

Polling Layer์˜ ํŠน์ง•์€ ๋ฌด์—‡์ผ๊นŒ์š”?
  • ํ•™์Šตํ•ด์•ผํ•  ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
    • Pooling Layer๋Š” Convoultion Layer(ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต)๊ณผ ๋‹ฌ๋ฆฌ Training(ํ•™์Šต)ํ•ด์•ผ ํ•  Parameter๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
    • Pooling์€ ๋Œ€์ƒ ์˜์—ญ์—์„œ ์ตœ๋Œ€๊ฐ’ or ํ‰๊ท ์„ ์ทจํ•˜๋Š” ์ฒ˜๋ฆฌ์ด๋ฏ€๋กœ ๋”ฑํžˆ ํ•™์Šตํ•ด์•ผ ํ•  ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • Channel ์ˆ˜๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • Pooling ์—ฐ์‚ฐ์€ Input data์˜ Channel ์ˆ˜ ๊ทธ๋Œ€๋กœ Output Data๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
    • Channel๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ ๋–„๋ฌธ์ž…๋‹ˆ๋‹ค.

Pooling์€ Channel์ˆ˜๋ฅผ ๋ด๊พธ์ง€ ์•Š๋Š”๋‹ค.

  • ์ž…๋ ฅ์˜ ๋ณ€ํ™”์— ์˜ํ–ฅ์„ ์ ๊ฒŒ ๋ฐ›์Šต๋‹ˆ๋‹ค. (๊ฐ•๊ฑดํ•˜๋‹ค)
    • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์กฐ๊ธˆ ๋ณ€ํ•ด๋„ Pooling์˜ ๊ฒฐ๊ณผ๋Š” ์ž˜ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์ž…๋ ฅ๋ฐ์ดํ„ฐ์˜ ์ฐจ์ด๊ฐ€ ์žˆ์–ด๋„ Pooling์ด ํก์ˆ˜ํ•ด ์‚ฌ๋ผ์ง€๊ฒŒ ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€๋กœ๋กœ 1์›์†Œ ๋งŒํผ ์–ด๊ธ‹๋‚˜๋„ ์ถœ๋ ฅ์€ ๊ฐ™๋‹ค. (๋‹จ, ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ์ˆ˜๋„ ์žˆ๋‹ค.)