[Competition] Data Creator Camp the Final Review

Doyun’s Journey
Doyun’s Lab
Published in
6 min readOct 23, 2020

Subject : Image Classification of Sundae, Fried Shrimp and Dumpling

Language : R, Python

Data : Image Pixel Data Set for Machine Learning (Deep Learning)

Team : 주구장창 (권도윤, 김병훈, 박명석, 박성아)

문제

Q > 당신은 분식점을 운영하고 있는 사장이다. 주력 메뉴는 만두, 새우튀김, 순대로 해당 메뉴가 매출에 큰 영향을 미친다. 따라서 주력 메뉴의 리뷰를 각각 관리하기 위해 주력 메뉴의 사진이 있는 리뷰 중 이미지만 모아 이를 분류하는 모델을 만들고자 한다. 만두, 새우튀김, 순대 사진을 분류하는 머신러닝 또는 딥러닝 모델을 만드시오.

  • 이미지 픽셀 값을 통해 만두, 새우튀김, 순대를 분류
  • Train Data의 개수는 600개(각 Class마다 200장씩), Test Data의 개수는 300개이다. Test Data를 예측하여 .npy로 제출하기
  • 성능 평가 기준 : Accuracy

1. Problem Definition

> 만두, 새우튀김, 순대 이미지를 분류하는 모델을 생성
> 이미지 픽셀 값을 통해 만두, 새우튀김, 순대를 분류하는 Multi-label Classification 문제

2. EDA

> Distribution 확인

  • Feature Importance가 가장 높은 Feature에 대한 분포를 나타냈다.
  • Importance가 높은 변수 모두 순대가 왼쪽, 새우튀김이 오른쪽에 치우쳐져 있는 것을 알 수 있으며 각 Label마다 평균이 확연히 차이가 났다.

3. Modeling

> LightGBM = lightGBM은 트리 기반 학습 알고리즘을 사용하는 Gradient Boosting Framework로 다른 트리 기반 학습 알고리즘들은 수평적으로 확장되는 반면 LGBM은 수직적으로 확장되기 때문에 다른 부스팅 알고리즘에 비해 더 많은 손실을 줄일 수 있습니다.

> Random Forest = Random Forest는 주어진 데이터로부터 여러 개의 모델을 학습 한 다음, 예측 시 여러 모델의 예측 결과들을 종합해서 사용하여 정확도를 높이는 기법입니다. 여러 개의 의사결정트리를 만들고 ,투표를 시켜 다수결로 결과를 결정하는 방법임으로 예측의 변동성이 적다는 점과 overfitting을 방지하는 점이 장점입니다.

> XGBoost = XGBoost는 앞서 본 GBM보다 빠르고 과적합 방지가 가능한 규제가 포함되어 있고 Greedy Algorithm을 사용하여 자동 가지치기로도 과적합 방지가 가능합니다. 그리고, 조기 종료를 제공하며 CART (Classification And Regression Trees)라 불리는 앙상블 모델을 사용하여 모든 leaf들이 모델의 최종 스코어가 연관이 되어있습니다. 같은 분류 결과를 갖는 모델끼리 모델의 우위를 비교할 수 있어 좋은 분류모델이라 할 수 있습니다.

> CNN = CNN은 특징을 직접 학습하기 때문에 특징을 수동으로 추출해야 할 필요가 없습니다. 또한, CNN은 가장 높은 수준의 인식 결과를 보입니다. 이미지의 공간 정보를 유지하면서 인접 이미지와의 특징을 효과적으로 인식하고 복수의 필터로 이미지의 특징 추출 및 학습 추출한 이미지의 특징을 모으고 강화하는 Pooling Layer Filter를 공유 Parameter로 사용하기 때문에, 일반 인공 신경망과 비교하여 학습 Parameter가 매우 적은 것이 장점입니다.

  • 학습 방법

> Machine Learning 기법

> Deep Learning 기법

— CNN은 모두 학습데이터가 너무 적어서 데이터 증강 기법을 사용하여 이미지를 확대/축소해 편향된 학습결과가 나오지 않도록 학습했다.

— CNN1 : Grey scale을 사용해서 이미지를 변경했는데, 성능이 매우 떨어지는 모습을 보였다. 이 문제는 색이 중요하다는 것을 알 수 있다.

— CNN2 : Data Argumentation의 zoom 기능 0.5로 활성화하여 예측했을 때 가장 좋은 성능을 보였다. (0.1 ~ 0.5로 random하게 값을 바꿔가며 사진을 zoom한 것과 하지 않은 것을 한 번에 학습했다.)

4. Conclusion

  • 최종 모델 : CNN (zoom 사용) / Accuracy = 83.5%

> 아쉬운점

  • Fine tuning을 진행했을 때, Train set에 대한 성능이 98%로 매우높아 과적합이라 판단했다. 발표를 마치고 생각해보니 Train set에서 Acc가 높은 것은 당연한 것이었는데 Fine tuning을 하지 못한 Model을 최종적으로 제출했다.
  • 왜 이러한 분석을 했는지에 대한 이유에 대해서 강조하면서 발표하기
  • 모델에 대해 다양한 방법을 시도한 이유를 구체적으로 발표하기

아쉬웠던 부분이 많았지만 ‘한국정보화진흥원 대상'을 받은 뜻깊은 대회였다.

이 대회를 통해서 EDA의 중요성을 되짚어 볼 수 있었고 팀워크의 중요성에 대해 알 수 있었다. 앞으로 EDA를 소홀히 여기지 않고 공부하여 Develop 할 것이며, 딥러닝을 실전에 활용할 수 있도록 더 공부할 것이다.

정말 이 대회를 참가한 것이 좋은 선택이었다.

깨닫고 와닿는 것 또한 많았다.

--

--