CNN์ ์ดํดํด ๋ณด์์ผ๋ ์ด์ ํ์ฉํด๋ณผ ์ฐจ๋ก์ด๋ค.
ํ๋ฒ ํ์ฉํด๋ณด์!
์ด๋ฏธ์ง๋ท ๊ฒฝ์ง๋ํ(ILSVRC)์ ๋ํ์ ์ธ ๋ชจ๋ธ์ด๊ณ , ๊ฐ์ฅ ๋๊ฒ ํ์ฉ๋๊ณ ์๋ CNN์ ๋ํ์ ์ธ ๋ชจ๋ธ VGG16์ ์์๋ณด๊ณ ํ์ฉํด๋ณด์.
2014๋
์ด๋ฏธ์ง๋ท ๊ฒฝ์ง๋ํ(ILSVRC)์์ 2๋ฑ์ ์ฐจ์งํ ๋ชจ๋ธ์ด๋ค.
์ด๋ฌํ VGG๋ท์ CNN ํ์ต์ ํ์ค ๋ชจ๋ธ๋ก ์๋ฆฌ๋งค๊นํ์๋๋ฐ, ๊ทธ ์ด์ ๋ ๊ตฌ์กฐ๊ฐ ๋งค์ฐ ๋จ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ, CNN์ ๊ธฐ๋ณธ ์ํคํ ์ฒ๋ง์ ์ฌ์ฉํ์๋ค.
CNN์ ๊ธฐ๋ณธ ์ํคํ ์ฒ
- Convolution layer (feature๋ฅผ ์ถ์ถ)
- Pooling layer (์ฃผ์ feature๋ง์ ์์ถํ๋ ํํ๋ก feataure map์ ๊ฐ์ํ ์์ผ, overfitting์ ๋ฌธ์ ๋ฐ ํ์ต๋์ ๊ณผ๋ํจ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ)
- Fully connected layer (ํ์ต์ด ์ผ์ด๋จ)
์ด๋ค์ ์ ์กฐํฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด๋๋ค.
source : ๋ชจ๋์ ๋ฅ๋ฌ๋, ์กฐํํธ, ๊ธธ๋ฒ
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โ) # ์ด์ง ๋ถ๋ฅ
๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ตํ ๊ธฐ์กด ๋ชจ๋ธ์ ๊ฐ์ง๊ณ ์์ ๋ด ํ๋ก์ ํธ์ ์ฌ์ฉํ์ฌ ํ์ตํ๋ ๊ฒ.