사전 학습된 모델

  • 프로젝트 팀원 분이 응가 사진 분류 사전 학습된 모델과 데이터셋을 찾아주셨다.

  • 무려 1500장 가량의 응가 사진이 있다...!
    https://universe.roboflow.com/smartgut/stool-classification-uvnqx

  • Roboflow 3.0 Instance Segmentation (Fast)로 YOLOv8-seg 혹은 YOLO11-seg의 경량화 버전을 기반으로 한다.

  • 그런데 우리의 목적인 7단계 분류만을 위해서는 내가 사용했던 모델인 EfficientNet-V2-S이 더 적합할 수 있겠다는 생각이 들었다.

  • 그래서 위 사이트에 공개된 데이터셋을 이용하여 EfficientNet-V2-S을 학습시켜보고자 한다.

두 모델의 비교

구분Roboflow 3.0 (Fast)EfficientNet-V2-S
주요 태스크인스턴스 분할 (Instance Segmentation)이미지 분류 (Image Classification)
출력 데이터객체의 위치(BBox), 클래스, 정교한 외곽선(Mask)이미지 전체에 대한 클래스 확률(Label)
복잡도객체 탐지 + 픽셀 단위 분류 (매우 높음)이미지 전역 특징 추출 (상대적으로 낮음)

어떤 것을 선택해야 할까요?

YOLO를 선택해야 하는 경우

  • 초당 30~60프레임 이상의 실시간 속도가 중요한 경우.

  • NVIDIA GPU와 같은 가속기를 사용하여 서비스 배포를 하려는 경우.

  • CCTV 분석, 자율 주행, 실시간 불량 검수 등.

EfficientNet을 선택해야 하는 경우

  • 이미지 전체의 특징을 파악하는 이미지 분류 작업이 주 목적인 경우.

  • 학습 데이터가 적고, 모바일 기기의 CPU 환경 등 메모리 제약이 심한 곳에 배포해야 하는 경우.

  • 의료 이미지 진단(질병 유무 판독)이나 정적 이미지의 카테고리 분류.


학습 시켜보자!

1. Train, Valid, Test의 이해와 활용

데이터셋은 목적에 따라 세 가지로 분리하여 관리한다.

데이터셋역할비유
Train (학습)모델의 가중치를 업데이트하는 직접적인 학습 자료교과서와 연습문제
Valid (검증)학습 도중 성능을 평가하여 하이퍼파라미터를 튜닝중간고사/모의고사
Test (평가)학습 완료 후 한 번도 보지 못한 데이터로 최종 성능 측정수능 시험

2. 에포크와 배치

내가 몰랐던 용어 간단히 정리.

  • Epoch (에포크): 전체 데이터셋을 총 몇 번 반복해서 학습할지 결정한다.
  • Batch Size (배치 크기): 한 번에 몇 장의 이미지를 묶어서 처리할지 결정한다. (예: 1,500장을 16장씩 나눠서 학습) 높을수록 학습이 빠르겠지만 하드웨어 성능을 고려해서 2의 거듭제곱 중 하나로 정한다.

3. 학습 실전 프로세스 및 지표 해석

학습은 [Train 1회 -> Valid 1회]의 루프를 반복하며 진행한다.
수업 후 쪽지 시험을 보는 것과 비슷하다.

  1. 확인해야 할 값: Train LossValid Loss를 비교한다.
  2. 의미 분석:
  • Loss가 낮아질수록 모델이 정답을 잘 맞히고 있다는 뜻이다.
  • Train Loss는 계속 낮아지는데 Valid Loss가 오르기 시작하면 과적합(Overfitting)이므로 학습을 멈춰야 한다. (과적합: 대충 말하면, 이해해서 맞추는게 아니라 샘플들만 달달 외워서 맞추는 것)
  1. 최종 단계: Valid 성능이 가장 좋았던 시점의 모델(best.pt)을 선택하여 마지막에 Test 데이터셋으로 최종 정확도를 산출한다.

4. 학습 후 평가 지표

지표 (Metric)의미비유
Precision모델이 정답이라고 한 것 중 실제 정답의 비율신중함: 틀린 답을 안 내놓는 능력
Recall실제 정답 중 모델이 찾아낸 비율꼼꼼함: 정답을 놓치지 않는 능력
mAP50예측과 실제 영역이 50% 이상 겹치는 평균 정밀도종합 성적: 모델의 전체적인 성능 점수
profile
개발 공부하는 30대 비전공자 직장인

0개의 댓글