Programming/Deep Learning
5. 머신러닝 Workflow
jinwook31
2021. 2. 1. 21:02
1. 문제정의 & Dataset 만들기
- 입력 데이터, 문제 유형(회기, 분류 등)을 명확히 정의하기
- Domain 지식을 활용해 목적에 맞는 Data 수집
- ML의 가정: 미래 Data는 과거 Data가 묘사하는 Pattern과 유사할 것!
2. 모델평가 기준
- Class Data 분포가 균등할 경우: ROC, AUC (Area Under the Curve)
- Class Data 분포가 불균등할 경우: 정밀도 (Precision, Recall)
- 랭킹 문제: mAP (mean Average Precision)
3. Dataset 평가
- Hold-out 검증 set / k-fold 교차 검증 / 반복 k-fold 검증
4. Data 준비
- Data Vectorization 후에 Tensor화 (정규화가 잘 되었는지 확인)
5. Baseline 모델
문제 유형 | 활성화 함수 | 오차 함수 |
이진 분류 | Sigmoid | CrossEntropyLoss |
다중 클래스 분류 | Sigmoid | CrossEntropyLoss |
다중 레이블 분류 | Sigmoid | CrossEntropyLoss |
회귀 | - | MSE |
벡터 회귀 | - | MSE |
- 최적화: Adam, RMSprop 주로 사용하지만 실험이 필요
6. Overfitting 정도의 모델
- Layer, weight, epoch 늘리기
- 학습 Acc는 증가, 검증 Acc는 증가 안하고 정확도가 떨어지기 시작하면 Overfitting으로 학습 중단시킴
7. 가중치 규제 적용
- Dropout 추가 (실험 필요)
- 아키텍쳐 변경
- L1, L2 규제 적용 (2개중 1개만)
- 특성추가 및 학습 Dataset 늘리기
- 학습률 변경: torch.optim.lr_schedular의 StepLR, MultiStepLR, ExponentialLR, ReduceLROpPlateau를 사용 (일정 주기로 LR을 조정함; 주로 오차 및 Acc이 정채될 때 변경하는 ReducedLROpPlateau를 사용함)