데브허브 | DEVHUB | [딥러닝 프로젝트] 8강. 고급 CNN 모델과 전이 학습 | ③전이 학습으로 피스타치오 이미지 분류하기[딥러닝 프로젝트] 8강. 고급 CNN 모델과 전이 학습 | ③전이 학습으로 피스타치오 이미지 분류하기
- 전이 학습은 사전 훈련된 신경망의 전체 또는 일부를 새로운 문제에 적용하는 기법입니다. 🔄
- 일반적으로 사전 훈련된 모델의 합성곱 층 대부분을 재사용하고, 마지막 분류 층만 새로운 문제에 맞게 교체합니다. 🏗️
- 이미지넷 등으로 훈련된 모델은 색상, 패턴, 모서리 등 저수준 특성을 학습하여 유사 도메인 문제에 효과적입니다. 🔍
- 새로운 클래스 분류를 위해 기존 모델의 마지막 분류 층을 제거하고, 현재 작업에 맞는 층을 추가합니다. ✂️
- 사전 훈련된 층의 가중치를 동결하고 새로 추가된 층만 훈련하여 비용 효율적인 학습이 가능합니다. ❄️
- 합성곱 신경망(CNN)은 이미지 크기에 구애받지 않아 컴퓨터 비전 문제의 전이 학습에 널리 활용됩니다. 🖼️
- 과거 순환 신경망(RNN)은 텍스트 종류에 따라 가중치 적용이 어려워 자연어 처리 전이 학습에 한계가 있었습니다. 📜
- 단어 임베딩과 트랜스포머 모델의 등장으로 자연어 처리 분야에서도 전이 학습이 확산되었습니다. 🤖
- 사전 훈련된 모델은 Keras 패키지, TensorFlow Hub (Kaggle), Hugging Face Transformers 라이브러리를 통해 로드할 수 있습니다. 📦🌐🤗
- 피스타치오 이미지 분류 예제에서는 EfficientNet B0 모델을 활용하여 키르미지 및 시리트 품종을 분류합니다. 🌰
- 사전 훈련된 EfficientNet을 피스타치오 이미지에 직접 적용하면 이미지넷에 없는 클래스이므로 엉뚱한 예측을 합니다. ❌
- 전이 학습을 위해 EfficientNet의 마지막 분류 층을 제거하고, 전역 평균 풀링 및 두 개의 완전 연결 층을 추가하여 모델을 구성합니다. 🛠️
- 동결된 EfficientNet 베이스 모델과 새로 추가된 층을 훈련한 결과, 피스타치오 품종을 약 97%의 높은 정확도로 성공적으로 분류했습니다. ✅