๐Ÿšฉ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ์ดˆ - part21. CNN ํ™œ์šฉํ•˜๊ธฐ (feat.์ „์ด ํ•™์Šต & ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•)

vincaยท2022๋…„ 12์›” 15์ผ
0

๐ŸŒ“ AI/DL - theory

๋ชฉ๋ก ๋ณด๊ธฐ
21/24

Introduction

CNN์„ ์ดํ•ดํ•ด ๋ณด์•˜์œผ๋‹ˆ ์ด์ œ ํ™œ์šฉํ•ด๋ณผ ์ฐจ๋ก€์ด๋‹ค.
ํ•œ๋ฒˆ ํ™œ์šฉํ•ด๋ณด์ž!

CNN - VGG16 ๋ชจ๋ธ

์ด๋ฏธ์ง€๋„ท ๊ฒฝ์ง„๋Œ€ํšŒ(ILSVRC)์˜ ๋Œ€ํ‘œ์ ์ธ ๋ชจ๋ธ์ด๊ณ , ๊ฐ€์žฅ ๋„“๊ฒŒ ํ™œ์šฉ๋˜๊ณ  ์žˆ๋Š” CNN์˜ ๋Œ€ํ‘œ์ ์ธ ๋ชจ๋ธ VGG16์„ ์•Œ์•„๋ณด๊ณ  ํ™œ์šฉํ•ด๋ณด์ž.

VGG16์ด๋ž€?


2014๋…„ ์ด๋ฏธ์ง€๋„ท ๊ฒฝ์ง„๋Œ€ํšŒ(ILSVRC)์—์„œ 2๋“ฑ์„ ์ฐจ์ง€ํ•œ ๋ชจ๋ธ์ด๋‹ค.
์ด๋Ÿฌํ•œ VGG๋„ท์€ CNN ํ•™์Šต์˜ ํ‘œ์ค€ ๋ชจ๋ธ๋กœ ์ž๋ฆฌ๋งค๊น€ํ•˜์˜€๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š” ๊ตฌ์กฐ๊ฐ€ ๋งค์šฐ ๋‹จ์ˆœํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ฆ‰, CNN์˜ ๊ธฐ๋ณธ ์•„ํ‚คํ…์ฒ˜๋งŒ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

CNN์˜ ๊ธฐ๋ณธ ์•„ํ‚คํ…์ฒ˜

  • Convolution layer (feature๋ฅผ ์ถ”์ถœ)
  • Pooling layer (์ฃผ์š” feature๋งŒ์„ ์••์ถ•ํ•˜๋Š” ํ˜•ํƒœ๋กœ feataure map์„ ๊ฐ„์†Œํ™” ์‹œ์ผœ, overfitting์˜ ๋ฌธ์ œ ๋ฐ ํ•™์Šต๋Ÿ‰์˜ ๊ณผ๋„ํ•จ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ)
  • Fully connected layer (ํ•™์Šต์ด ์ผ์–ด๋‚จ)

์ด๋“ค์„ ์ž˜ ์กฐํ•ฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด๋ƒˆ๋‹ค.



source : ๋ชจ๋‘์˜ ๋”ฅ๋Ÿฌ๋‹, ์กฐํƒœํ˜ธ, ๊ธธ๋ฒ—

๋ฐ์ดํ„ฐ ์ฆ๊ฐ•

  • ํ•™์Šต๋ฐ์ดํ„ฐ์˜ ์–‘์„ ๋Š˜๋ ฅ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋„๋ชจํ•œ๋‹ค(test data์— ๋Œ€ํ•ด์„œ๋Š” ์ ์šฉํ•  ํ•„์š” X)
  • ํšŒ์ „์ด๋‚˜ ์ž๋ฅด๊ธฐ ๋“ฑ์˜ ๋ณ€ํ™˜์„ ์ ์šฉ์‹œ์ผœ ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ๋‹ค์–‘์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

datagen = ImageDataGenerator(rescale=1./255,
horizontal_flip=True, # ์ˆ˜ํ‰ ๋Œ€์นญ ์ด๋ฏธ์ง€๋ฅผ 50% ํ™•๋ฅ ๋กœ ๋งŒ๋“ค์–ด์„œ ์ถ”๊ฐ€ 
width_shift_range=0.1, # ์ „์ฒด ํฌ๊ธฐ์˜ 10%๋ฒ”์œ„์—์„œ ์ขŒ, ์šฐ๋กœ ์ด๋™ 
height_shift_range=0.1, # ์ „์ฒด ํฌ๊ธฐ์˜ 10%๋ฒ”์œ„์—์„œ ์ƒ, ํ•˜๋กœ ์ด๋™ 
rotation_range=5,
shear_range=0.7,
zoom_range=[0.9, 2.2],
vertical_flip=True,
fill_mode='nearest')
train_generator = datagen.flow_from_directory(
'trainโ€™, # ํ•™์Šต ๋ฐ์ดํ„ฐ๊ฐ€ ์œ„์น˜ํ•œ ํด๋”์˜ ์œ„์น˜
target_size=(150, 150), # ์˜์ƒ์˜ ํฌ๊ธฐ
batch_size=5,
class_mode='binaryโ€™) # ์ด์ง„ ๋ถ„๋ฅ˜

์ „์ด ํ•™์Šต

๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•™์Šตํ•œ ๊ธฐ์กด ๋ชจ๋ธ์„ ๊ฐ€์ง€๊ณ  ์™€์„œ ๋‚ด ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•˜์—ฌ ํ•™์Šตํ•˜๋Š” ๊ฒƒ.

  • ํ•™์Šต์— ํ•„์š”ํ•œ ์‹œ๊ฐ„ ๋Œ€ํญ ๊ฐ์†Œ (ํ•™์Šต ์ดํ›„ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ๋˜ํ•œ ๋†’์Œ)
  • ์ปจ๋ณผ๋ฃจ์…˜ ์ธต์€ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ
    • ์ปจ๋ณผ๋ฃจ์…˜ ์ธต์€ feature๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •
      feature๋ฅผ ํ•™์Šตํ•˜๋Š” FC์ธต๋งŒ ๋ชฉ์ ์— ๋งž๊ฒŒ ๊ตฌ์„ฑ

์ „์˜ํ•™์Šต์˜ ๋ฏธ์„ธ์กฐ์ •

  • ๊ธฐ์กด ๋ชจ๋ธ์˜ ์ปจ๋ณผ๋ฃจ์…˜ ์ธต์„ ๊ณ ์ •์‹œํ‚ค์ง€ ์•Š๊ณ (๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ) ์ผ๋ถ€ ๋‚ด๊ฐ€ ๋งŒ๋“  ํ•ฉ์„ฑ๊ณฑ ๋ ˆ์ด์–ด๋ฅผ ๋„ฃ์–ด FC์ธต๊ณผ ํ•จ๊ป˜ ํ›ˆ๋ จํ•˜๋Š” ๊ฒƒ.
profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

0๊ฐœ์˜ ๋Œ“๊ธ€