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

+ Recent posts