Welcome! ๐Ÿ™‹โ€โ™‚๏ธ View more

AI

[D/L] CNN ์ด๋ž€? (feat. DACON)

DeepFlame 2022. 1. 16. 18:05

 

CNN(Convolutional Neural Networks)์ด๋ž€?


์ด๋ฏธ์ง€์ธ์‹๊ณผ ์Œ์„ฑ ์ธ์‹ ๋“ฑ์˜ ์ฃผ๋ณ€ ์ •๋ณด์— ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ์— ์ ํ•ฉํ•œ ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฒ•์ด๋‹ค.
Ex. ํฐ์ƒ‰ ์™€์ด์…”์ธ  ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด ํฐ์ƒ‰์˜ ํ”ฝ์…€ ์ฃผ๋ณ€์—๋Š” ํฐ์ƒ‰์ผ ํ™•๋ฅ ์ด ๋†’๋‹ค. ์ด๋Ÿฌํ•œ ํ˜•์ƒ์ด ๊ฐ€์ง„ ์ •๋ณด๋ฅผ CNN์€ ์ดํ•ดํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

๋งŒ์•ฝ ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๋ฅผ 1์ฐจ์› ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พผ ๋‹ค์Œ ๋‹จ์ˆœ ๋”ฅ๋Ÿฌ๋‹์„ ์ ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ํ˜•์ƒ์ด ๊ฐ€์ง„ ๊ณต๊ฐ„์ •๋ณด๋ฅผ ์ œ๋Œ€๋กœ ์‚ด๋ฆด ์ˆ˜ ์—†๋‹ค.

 

 

CNN์˜ ๊ตฌ์กฐ


1. Convolution (ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ)

์‚ฌ๋žŒ์€ ์‚ฌ๋ฌผ์„ ์ธ์‹ํ•  ๋•Œ ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์‚ฌ๋ฌผ์˜ ์œ„์น˜๋ฅผ ๋ณธ๋‹ค. ์ด๋ถ€๋ถ„์— ํ•ด๋‹น๋˜๋Š” ๊ฒƒ์ด Filter์ด๋‹ค. ์ฆ‰ ๊ฐ์ฒด๋ฅผ ๋‹จ์ˆœ 1์ฐจ์› ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๊ฐ€ ์ธ์‹๋œ ์ •๋ณด๋ฅผ ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด์–ด 1์ฐจ์› ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด๋‹ค.

CNN์€ Input๋œ ์ด๋ฏธ์ง€์— ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ€์ง„ Filter๋กœ ์ด๋™ํ•˜๋ฉฐ ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ์„ ํ•˜์—ฌ ์ด๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค.

๊ทธ๋ฆผ์œผ๋กœ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

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

์ด๋ฅผ ํ†ตํ•ด input๋œ ์ด๋ฏธ์ง€์˜ feature map์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. CNN ํ›ˆ๋ จ ๊ณผ์ •์—์„œ ์ด Filter์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๊ฒŒ๋œ๋‹ค.

 

 

2. Channel

์ด๋ฏธ์ง€์˜ ๋‹ค์–‘ํ•œ ํŠน์ง•๋“ค์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์ˆ˜์˜ Filter๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ๊ณก์„ ์„ ์ถ”์ถœํ•˜๋Š” Filter์™€ ์ง์„ ์„ ์ถ”์ถœํ•˜๋Š” Filter์˜ ๊ฐ€์ค‘์น˜๋Š” ๋‹ค๋ฅผ ๊ฒƒ์ด๋‹ค. 

๊ธฐ์กด์˜ ์ด๋ฏธ์ง€๋Š” ๋ณดํ†ต 3-Channel(R,G,B)๋ฅผ ๊ฐ€์ง„๋‹ค. ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๊ฐ€ 6๊ฐœ์˜ Filter์™€ ์—ฐ์‚ฐ๊ณฑ์„ ์‹œํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๊ฒฐ๊ณผ๋Š” 6-Channel์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

3-Channel Input ๋ฐ์ดํ„ฐ์— 6๊ฐœ์˜ Filter๋ฅผ ์ ์šฉํ•œ ๊ฒฐ๊ณผ

์œ„ ๊ทธ๋ฆผ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ๋ ˆ์ด์–ด๊ฐ€ ๊นŠ์–ด์ง€๋ฉด ๋„ˆ๋น„์™€ ๋†’์ด๋Š” ๊ฐ์†Œํ•˜๊ณ , ๊นŠ์ด๋Š” ๊นŠ์–ด์ง„๋‹ค. 

 

 

3. Padding

ํ•ฉ์„ฑ๊ณฑ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ

์œ„์˜ ๊ณผ์ •์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด Output ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ Input ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์•„์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํฌ๊ธฐ ๋ณ€ํ™”๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—†์–ด์ง„ ๊ณต๊ฐ„์— 0์„ ์ฑ„์›Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด zero padding ์ด๋‹ค.

zero padding

 

 

4. Pooling

์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ ์œ ์น˜ํ•œ ์ฑ„๋กœ Fully Connect ๋ ˆ์ด์–ด๋กœ ๊ฐ€๊ฒŒ๋œ๋‹ค๋ฉด ์—ฐ์‚ฐ๋Ÿ‰์ด ์—„์ฒญ๋‚˜๊ฒŒ ๋Š˜์–ด๋‚œ๋‹ค. ๋”ฐ๋ผ์„œ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ , ํŠน์ • Feature๋ฅผ ๊ฐ•์กฐํ•ด์•ผํ•˜๋Š”๋ฐ ๊ทธ ๋ฐฉ๋ฒ•์ด Pooling์ด๋‹ค. 

๋ณดํ†ต Max Pooling์„ ์ด์šฉํ•˜๋Š”๋ฐ, ์ด๋Š” ๋‰ด๋Ÿฐ์ด ๊ฐ€์žฅ ํฐ ์‹ ํ˜ธ์— ๋ฐ˜์‘ํ•˜๋Š” ๊ฒƒ์—์„œ ์ฐฉ์•ˆ๋˜์—ˆ๋‹ค.

Pooling ์˜ˆ์‹œ

 

 

์ „์ฒด ๊ตฌ์กฐ


CNN ๊ตฌ์กฐ

Convolution๊ณผ Pooling์„ ๋ฐ˜๋ณตํ•˜๋ฉด ์ด๋ฏธ์ง€์˜ ์ˆซ์ž๋Š” ๋งŽ์•„์ง€๋ฉด์„œ ํฌ๊ธฐ๋Š” ์ ์  ์ค„์–ด๋“ค๊ฒŒ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งŽ์•„์ง„ ๊ฐ ๋ฐ์ดํ„ฐ๋Š” ์ด๋ฏธ์ง€์˜ ๋Œ€ํ•œ ์ „์ฒด์ ์ธ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋ผ, ์ด๋ฏธ์ง€์˜ ํŠน์ • ๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ด ๋ง์€ ์ด์ œ ์ด ๋ฐ์ดํ„ฐ๋Š” 1์ฐจ์› ๋ฐ์ดํ„ฐ๋กœ ์ทจ๊ธ‰ํ•ด๋„ ๋ฌด๊ด€ํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ Flatten์„ ํ†ตํ•ด์„œ 1์ฐจ์› ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ฒŒ ๋˜๊ณ , ์ด๋ฅผ Fully Connected Neural Network์— ์ ์šฉํ•œ๋‹ค.

ํ›ˆ๋ จ์„ ๊ฑฐ์น ์ˆ˜๋ก ํ•„ํ„ฐ๋“ค์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์ˆ˜์ •๋œ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋žœ๋คํ•œ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ€์ง„ ํ•„ํ„ฐ๋“ค์ด์ง€๋งŒ, ํ›ˆ๋ จ์„ ๊ฑฐ์น ์ˆ˜๋ก ํ•„ํ„ฐ์˜ ๊ฐ€์ค‘์น˜ ๊ฐ’๋“ค์— ๊ทœ์น™์„ฑ์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค.

 

 


ํ•„์ž๋Š” DACON AI ๊ฒฝ์ง„๋Œ€ํšŒ์—์„œ CNN ๋ชจ๋ธ์„ ์ ์šฉํ•œ ๊ฒฝํ—˜์ด ์žˆ๋‹ค. 

Input ๋ฐ์ดํ„ฐ๊ฐ€ ์šด๋™์‹œ ๋””๋ฐ”์ด์Šค์—์„œ ์ธก์ •๋œ ์„ผ์„œ ๋ฐ์ดํ„ฐ์˜€์œผ๋ฉฐ, ์šด๋™์‹œ ์„ผ์„œ๊ฐ’์ด ํ‰ํ‰ํ•˜๊ฒŒ ์žˆ๋‹ค๊ฐ€ ํฐ ๋ณ€๋™์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. ์ด๋Š” ์šด๋™์„ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ์„ผ์„œ ๊ฐ’๋ผ๋ฆฌ ์˜ํ–ฅ์„ ๋งŽ์ด ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋ผ ์ƒ๊ฐํ–ˆ๊ณ , CNN ๋ชจ๋ธ์„ ์ ์šฉํ–ˆ๋‹ค. 

์•„๋ž˜๋Š” ๋งํฌ์—์„œ ํ•ด๋‹น ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ˜€

https://dacon.io/competitions/official/235689/codeshare/4133

 

[46th private | 0.74839] CNN Model

์šด๋™ ๋™์ž‘ ๋ถ„๋ฅ˜ AI ๊ฒฝ์ง„๋Œ€ํšŒ

dacon.io

 

 

 

 


์ถœ์ฒ˜
https://gruuuuu.github.io/machine-learning/cnn-doc/
https://ndb796.tistory.com/477
https://hobinjeong.medium.com/cnn-convolutional-neural-network-9f600dd3b395
https://youngq.tistory.com/40