IT/AI

CNN (Convolutional Neural Networks)

zi0_0 2025. 3. 11. 08:20

๊ฐœ๋… 

: Convolutional Neural Network (ํ•ฉ์„ฑ๊ณฑ ์‹ ๊ฒฝ ๋ง)

์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ์™€ ์ปดํ“จํ„ฐ ๋น„์ „ ๋ถ„์•ผ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 

 

CNN ์•„ํ‚คํ…์ฒ˜ 

1. ์ž…๋ ฅ ๊ณ„์ธต : ์›๋ณธ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ
2. ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต : ์ด๋ฏธ์ง€ ํŠน์ง• ์ถ”์ถœ, ๊ณต๊ฐ„ ์ •๋ณด ์œ ์ง€ 
3. ํ’€๋ง ๊ณ„์ธต : ํŠน์ง• ๋งต ํฌ๊ธฐ ๊ฐ์†Œ, ์ค‘์š”ํ•œ ์ •๋ณด ์œ ์ง€
4. ์™„์ „ ์—ฐ๊ฒฐ์ธต : ์ตœ์ข… ๋ถ„๋ฅ˜ ์ˆ˜ํ–‰ 
5. ์ถœ๋ ฅ์ธต : ํ™•๋ฅ  ๋ถ„ํฌ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ตœ์ข… ์˜ˆ์ธก  

 

1. ์ž…๋ ฅ์ธต (Input layer)

  • ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋Š” 3D ํ…์„œ ๋ฐ์ดํ„ฐ์ด๋ฉฐ, (๊ฐ€๋กœ ํฌ๊ธฐ X ์„ธ๋กœ ํฌ๊ธฐ X ์ฑ„๋„ ์ˆ˜)๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ 

์ถœ์ฒ˜: saturncloud (A Guide to Convolutional Neural Networks — the ELI5 way)

 

 

2. ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต (Convolution layer)

  • ์„ค๋ช… : ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์™€ ์ปค๋„ (= ํ•„ํ„ฐ) ๊ฐ„์˜ ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ํŠน์ง•์„ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ • 
  • ๋ชฉ์  : 3์ฐจ์› ์ด๋ฏธ์ง€ ์ •๋ณด์—์„œ ์ด๋ฏธ์ง€์˜ ํŠน์ง•์„ ๋ฝ‘์•„๋‚ด๋Š” ๊ณ„์ธต = ์ด๋ฏธ์ง€ ํŠน์ง• ์ถ”์ถœ 
  • ์ด๋•Œ ์ถ”์ถœ๋œ ํŠน์ง•์„ Feature map ์ด๋ผ๊ณ  ํ•œ๋‹ค 

 

Kernel

  • ์ปค๋„ (Kernel) = ํ•„ํ„ฐ (Filter)
  • ์ด๋ฏธ์ง€์—์„œ ํŠน์ง• (์—ฃ์ง€, ํŒจํ„ด, ์งˆ๊ฐ ๋“ฑ..)์„ ๊ฐ์ง€ํ•˜๋Š” ์ž‘์€ ํ–‰๋ ฌ

์ปค๋„์€ CNN์ด ํ•™์Šตํ•˜๋Š” ๊ฐ€์ค‘์น˜์— ํ•ด๋‹นํ•˜๋ฉฐ, ํ•™์Šต์„ ํ†ตํ•ด ์ตœ์ ์˜ ๊ฐ’์„ ์ฐพ๋Š”๋‹ค. 

๋”ฐ๋ผ์„œ CNN์—์„œ ํ•™์Šตํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ, ๋งค์šฐ ์ค‘์š”ํ•œ ํ•ต์‹ฌ ์š”์†Œ์ด๋‹ค!

 

 

* ๊ทธ๋Ÿผ ์ปค๋„ ๊ฐ’์€ ๋ˆ„๊ฐ€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ธ์ง€โ“

์‚ฌ๋žŒ์ด ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์ด ํ•™์Šต์„ ํ†ตํ•ด ์ตœ์ ์˜ ๊ฐ€์ค‘์น˜๋กœ ์ž๋™ ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ์ด๋‹ค 
= ์ผ๋ฐ˜์ ์ธ ์‹ ๊ฒฝ๋ง์˜ ๊ฐ€์ค‘์น˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ์ดํ•ด~!

์ฆ‰, ํ•™์Šต ๊ณผ์ •์—์„œ ์†์‹ค ํ•จ์ˆ˜์™€ ์—ญ์ „ํŒŒ๋ฅผ ํ†ตํ•ด ๊ฐ€์ค‘์น˜ (= ์ปค๋„ ๊ฐ’)์ด ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ๋‹ค. 

 

๋˜ํ•œ, ์ปค๋„ ์ž์ฒด์˜ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์ค‘์š”ํ•œ ํ•˜์ดํผ ํŒŒ๋ฆฌ๋ฏธํ„ฐ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 
์ผ๋ฐ˜์ ์œผ๋กœ 3x3, 5x5 ํฌ๊ธฐ์˜ ์ปค๋„์ด ๊ฐ€์žฅ ๋งŽ์ด ์„ ํƒ๋˜์ง€๋งŒ, ๋ณต์žกํ•œ ํŠน์ง•์„ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 
์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•„ํ„ฐ (= ์ปค๋„)์„ ์Œ“๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ด๋‹ค. 

 

 

ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ (= ํ•„ํ„ฐ ์—ฐ์‚ฐ)

  • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ (์ด๋ฏธ์ง€)์™€ ํ•„ํ„ฐ (์ปค๋„)๋ฅผ ๊ณฑํ•œ ํ›„ ํ•ฉ์‚ฐํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ถœ๋ ฅ ๊ฐ’ (ํŠน์ง• ๋งต, feature map)์„ ์ƒ์„ฑํ•˜๋Š” ์—ฐ์‚ฐ

์ถœ์ฒ˜: saturncloud (A Guide to Convolutional Neural Networks — the ELI5 way)

ํ•˜์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ณต๊ฐ„ ์ •๋ณด๊ฐ€ ์ค„์–ด๋“œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 
๋”ฐ๋ผ์„œ padding์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค!

 

 

Padding

  • ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ ํ›„ ์ถœ๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“œ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์ฃผ๋ณ€์„ ํŠน์ • ๊ฐ’ (๋ณดํ†ต 0)์œผ๋กœ ์ฑ„์šฐ๋Š” ๊ธฐ๋ฒ• 
  • ํŒจ๋”ฉ์„ ์‚ฌ์šฉํ•˜๋ฉด, ์—ฐ์‚ฐ ํ›„์—๋„ ์ •๋ณด์˜ ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Œ = ์ •๋ณด ์†์‹ค ๋ฐฉ์ง€

์ถœ์ฒ˜: saturncloud (A Guide to Convolutional Neural Networks — the ELI5 way)

์œ„์˜ ์ด๋ฏธ์ง€๋Š” ํ˜„์žฌ Zero-Padding (์ œ๋กœ ํŒจ๋”ฉ)์„ ์ ์šฉํ•ด ์ž…๋ ฅ ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ
ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์Œ 

 

3. ํ’€๋ง ๊ณ„์ธต (Pooling layer)

  • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์—์„œ ๋Œ€ํ‘œ๊ฐ’ ์ถ”์ถœ์„ ํ†ตํ•ด ํฌ๊ธฐ๋ฅผ ์ค„์ด์ง€๋งŒ, ์ค‘์š”ํ•œ ์ •๋ณด๋Š” ์œ ์ง€ 
  • ์žฅ์ 
    • ๊ณ„์‚ฐ๋Ÿ‰์ด ์ ์–ด์ง 
    • ๊ณผ์ ํ•ฉ ๋ฐฉ์ง€ (= ๋ชจ๋ธ ์„ฑ๋Šฅ ๊ฐœ์„ ) : ๋ชจ๋ธ์ด ๋ถˆํ•„์š”ํ•œ ๋…ธ์ด์ฆˆ์— ๊ณผ์ ํ•ฉํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Œ 
    • ์œ„์น˜ ๋ณ€ํ™”์— ๊ฐ•ํ•จ : ์ด๋ฏธ์ง€๊ฐ€ ์ด๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์ž‘์€ ์œ„์น˜ ๋ณ€ํ™”์—๋„ ํŠน์ง•์ด ์œ ์ง€๋˜๋Š” ํšจ๊ณผ 

* ์‚ฌ์ง„ ์ถ•์†Œ๋ฅผ ํ†ตํ•ด ๋” ์ข‹์€ ์ด๋ฏธ์ง€๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ Max-pooling ์‚ฌ์šฉ 

 

Max-pooling

  • ๊ฐ ์˜์—ญ์˜ ์ตœ๋Œ“๊ฐ’ ์„ ํƒ 
  • ๊ฐ€์žฅ ๋šœ๋ ทํ•œ ํŠน์ง•์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Œ 
  • ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ 

์ถœ์ฒ˜: paperwithcode (Max Pooling)

max pooling ์™ธ์—๋„ Average pooling๋„ ์žˆ์œผ๋ฉฐ,
ํŠน์ง•์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์œ ์ง€ํ•ด์ค€๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ•์กฐํ•˜๋Š” ํšจ๊ณผ๊ฐ€ ์ ๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. 

 

์ตœ๊ทผ์—๋Š” global average pooling (์ „์ฒด ํŠน์ง• ๋งต์—์„œ ํ‰๊ท ๊ฐ’ 1๊ฐœ ์ถœ๋ ฅ)๋„ ๋งŽ์ด ํ™œ์šฉ๋œ๋‹ค. 

 

 

* pooling์€ ํ•™์Šต ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋‹ค! ์ด ์˜๋ฏธ๋Š”โ“

pooling์€ ํ•™์Šต ๊ณผ์ • ์—†์ด ๊ทธ๋ƒฅ ์ •ํ•ด์ง„ ๊ทœ์น™์— ๋”ฐ๋ผ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด๋‹ค = ๋‹จ์ˆœ ์—ฐ์‚ฐ๋งŒ ์ˆ˜ํ–‰!
์ฆ‰, weight๋‚˜ bias์™€ ๊ฐ™์€ ํ•™์Šต ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•™์Šตํ•˜์ง€ ์•Š์Œ

 

 

4. Flatten layer

  • ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ 1์ฐจ์› ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณ„์ธต 
  • ์ด๋ฅผ ํ†ตํ•ด Dense layer์— ์ž…๋ ฅ๋  ์ˆ˜ ์žˆ๋‹ค 

CNN์˜ convolution layer์—์„œ ์ถ”์ถœํ•œ ํŠน์ง•์„ 1์ฐจ์› ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ Dense layer์— ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ •!!!

 

 

5. Fully Connected Layer (Dense Layer)

  • ์ผ๋ฐ˜์ ์ธ ์ธ๊ณต์‹ ๊ฒฝ๋ง์ฒ˜๋Ÿผ ๋‰ด๋Ÿฐ์ด ๋ชจ๋“  ์ž…๋ ฅ๊ณผ ์—ฐ๊ฒฐ๋œ ์ธต 
  • ํ•ฉ์„ฑ๊ณฑ์„ ํ†ตํ•ด ์ถ”์ถœํ•œ ํŠน์ง•์„ ๋ฐ”ํƒ•์œผ๋กœ ์ตœ์ข… ๋ถ„๋ฅ˜๋ฅผ ์ˆ˜ํ–‰

 

CNN์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ Dense layer์„ ํ†ตํ•ด ์ตœ์ข… ๋ถ„๋ฅ˜ ์ˆ˜ํ–‰!!!!
์—ฌ๊ธฐ์„œ Action Function ์ ์šฉ 

 

 

6. Output layer - SoftMax

  • softmax ์ ์šฉ
  • ๋‰ด๋Ÿฐ ๊ฐœ์ˆ˜๋Š” ๋ผ๋ฒจ ๊ฐœ์ˆ˜์™€ ๋™์ผ (์ถœ๋ ฅ ๋‰ด๋Ÿฐ์˜ ๊ฐœ์ˆ˜ = ํด๋ž˜์Šค ๊ฐœ์ˆ˜)

 

๋ถ„๋ฅ˜ ๋ฌธ์ œ์—์„œ ๋ชจ๋ธ ๊ฒฐ๊ณผ๊ฐ’์„ ํ™•๋ฅ ๊ฐ’์œผ๋กœ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜!!!

'IT > AI' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ƒ์„ฑํ˜•AI] Prompt Engineering  (0) 2025.03.25
Copy