1. 개요
- 기간 : 2023.5.10 ~ 5.15 (총 6일)
- 과제 : 직접 선택한 데이터셋을 사용해 머신러닝 예측 모델 구축, 성능 평가 및 인사이트 공유
- 코드 보러가기
1-1. 문제 정의
- 국토부, 2020년 11월부터 ‘도배 하자 판정 기준’ 강화
- 시공사인 한솔데코로 하자 문의 급증해 이전보다 빠르고 효율적인 고객 대처 방안이 필요하다
- 이에 인공지능을 통한 도배 하자 분류 시스템을 적용하고자 한다
- 고객이 문자 또는 메신저로 도배 하자를 카메라로 찍어 전송하면 딥러닝 모델을 통해 자동 분류하고 해당 부서 또는 현장인력에게 전달하여 대응하는 시스템 구상
1-2 데이터
- 데이터 : 3300여개의 도배 하자 이미지와 라벨
- 출처 : 데이콘 (https://dacon.io/competitions/official/236082/data)
- 문제 유형 : 딥러닝 / 지도 학습 / 이미지 처리 / 다중 분류
- 예측 대상 : 이미지로 도배 하자 유형 분류. 수정, 면불량, 오염, 울음, 곰팡이, 녹오염, 반점 등 19가지 유형
- 타겟 클래스 불균형 확인. Image Augment를 통해 부족한 클래스의 데이터를 늘리고 싶었지만 프로젝트 기간이 짧아 모델 구축부터 진행했다
2. 모델 학습 및 선정
2-1. Custom CNN
- 대표적 이미지 분류 알고리즘
- 장점 : 단순하고 빠르다
- 단점 : 레이어를 직접 쌓고 훈련을 zero-base에서 시작해야 한다
- 구성 : 3개의 Convolution층과 2개의 Dense 층
- 학습 : 전체 레이어의 가중치 업데이트 / early stopping 적용
- 학습 시간 : 총 40분
- 기준 모델로 이용
2-2. ResNet
- 대표적 이미지 분류 사전학습모델
- 2015년 이미지넷 챌린지 우승
- 장점 : 어려운 학습에서도 좋은 성능을 보인다
- 단점 : 복잡한 구조로 메모리 사용량이 크고 학습이 느리다
- 현재 GPU 환경에 가장 적합한 ResNet50V2 선택
- 구성 : 기존 ResNet 모델에 2개의 Custom Dense 층을 추가
- 학습 : 사전학습모델 가중치는 freeze, 추가한 custom layer 가중치만 업데이트 / early stopping 적용
- 학습 시간 : 총 28분
2-3. EfficientNet
- 대표적 이미지 분류 사전학습모델
- 2019년 이미지넷 챌린지 우승
- 장점 : 적은 파라미터로 높은 성능을 보인다
- 단점 : ResNet보다 파라미터수가 많아 학습시간이 길고 튜닝이 까다롭다
- 현재 GPU 환경에 가장 적합한 EfficientNetV2B2 선택
- 구성 : 기존 EfficientNet 모델의 층을 2개의 Custom Dense 층을 추가
- 학습 : 사전학습모델 가중치는 freeze, 추가한 custom layer 가중치만 업데이트 / early stopping 적용
- 학습 시간 : 총 33분
2-4. 모델 학습 후 결과 비교
Validation set을 적용했을 때, loss가 가장 적고 Accuracy가 가장 높은 ResNet 선택
3. 성능 향상
3-1. Fine Tuning
- 사전학습모델 190개 레이어 중 160개 고정
- 나머지 30개 레이어와 커스텀 레이어를 train set에 맞게 가중치 업데이트
3-2. Hyperparameter Tuning
- Learning Rate, Batch_size, Optimizer 탐색
- 베이지안 서치 이용
4. 최종 테스트
- 직접 촬영한 이미지를 통해 모델 시험
- 의도한대로 이미지 분류하며 잘 작동함을 확인
- 결과 : 3개 중 2개만 맞히고 1개 틀림
5. 모델 적용 기대효과
- 고객 서비스 만족도 상승으로 시장 점유율 상승
- 하자 유형 자동 분류로 유관 부서 단순 노동 업무 감소
- 문자 또는 메신저 응대로 고객지원센터 피로도 감소
- 효율적인 데이터 수집 파이프라인 구축
6. 개선 방향
- 클래스 불균형 해결 : 이미지를 기울이고 뒤집고 밝기를 낮추는 방식의 왜곡으로 이미지를 늘려 모델 재학습
- EifficinetNet 개선 : 해당 모델의 결과가 예상과 다르게 매우 낮음. 원인을 찾아보고 바로 잡아 다시 비교하는 과정 필요
- Post Processing 시스템 구축 : 모델이 결과와 함께 '확신 정도'를 함께 반환해 확신 정도가 낮을 경우 유관부서에 전송해 직원이 직접 분류하는 시스템 추가
'My Project' 카테고리의 다른 글
[코드스테이츠 / Flask] 머신러닝 모델을 웹서비스로 구현하기 (0) | 2023.06.26 |
---|---|
[코드스테이츠 / 데이터 분석] 다음 분기에 어떤 게임을 기획할까? (0) | 2023.05.26 |
[코드스테이츠 / 머신 러닝] 신용카드 고객 연체 예측 모델 구축 (Random Forest, XGBoost) (0) | 2023.05.26 |