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를 사용함)
'Programming > Deep Learning' 카테고리의 다른 글
7. Recurrent Neural Networks (RNN) & LSTM (0) | 2022.04.08 |
---|---|
6. Convolution Neural Network (CNN) (0) | 2021.02.04 |
4. 머신러닝 입문 (0) | 2021.01.22 |
3. 신경망 구조 (0) | 2021.01.19 |
2. 신경망 구성 요소 (0) | 2021.01.13 |