- 음식 및 식당 사진에 대하여 '음식', '실내', '실외' 등으로 자동 분류하는 image classification 프로그램 개발
- CNN에 기반한 image classification 알고리즘 개발 및 성능 분석
- '음식', '실내', '실외'로 분류된 이미지 7만장를 학습 데이터로 사용 (Example Images 참고)
- train 및 text 데이터로 구분하여 모델을 학습시킴
- train 및 text 데이터로 이미지를 구분할 때, 데이터가 클래스별로 잘 섞일 수 있도록 seed를 123으로 설정
- keras.preprocessing.image의 ImageDataGenerator를 사용하여 이미지의 각 픽셀 값을 0~1로 변환 - 위와 같은 외부 정규화 방법을 사용하였을 때, 가장 좋은 성능을 보였던 모델의 성능 평가 - - - - Exploding gradient 문제를 해결하기 위해 tensorflow.keras.layer의 Batch Normalization 사용 - Batch Normalization : 각 레이어에 들어가는 input을 정규화하여 학습을 가속하며, Vanishing / Exploding gradient 문제를 해결하기 위한 방법 - 위와 같은 레이어 구조에서 Batch Normalizastion을 사용한 모델의 성능 평가 - - -
- Conv2D에서 kernel의 크기를 3으로 strides를 1로, MaxPooling2D에서 poolsize를 2로 하였을 때, 인풋 크기가 너무 작지 않을 정도로 레이어 선정 (인풋 크기가 너무 작을 때 정확도가 떨어질 것을 걱정)
-
- 0 : Food, 1 : Interior, 2 : Exterior












