모델을 만들기 전 목표 평가 지표를 정한다 → 그 목표의 정확도를 달성하면 모델을 선택
1. 어떤 모델을 선택해야하는가? 일반화된 모델
최적화 : trian data에서 최고의 성능을 얻으려고 파라미터들을 조정 = 모델을 학습
일반화된 모델 ⇒ 모델링을 통해 찾아야하는 목표
- 훈련된 모델이 처음 보는 데이터에 대해서도 잘 추론할 수 있는 특징을 찾음 = 학습을 통해 일반화된 특징 찾음
2. 모델 성능 문제와 개선 방향 Summary
과소적합문제와 과대적합 문제를 해결하여 그 중간의 적절한 정확도를 가지는 ‘일반화된 모델’을 선택해야한다.
2.1 과소적합
- 검증 결과 학습이 덜되어서(underfitting) Train set과 Validation 모두 성능이 안좋음
- 모델이 Train dataset 크기에 비해 너무 단순한 경우
- 개선 방법 ⇒ 학습을 더 많이 해서 모델을 복잡하게 만들자!
- 모델의 복잡도를 높임
- 모델 네트워크의 크기를 키운다 = Layer나 Unot 개수를 늘림
- 데이터셋 종류에 맞는 Feature 추출 Layer를 은닉층에 사용한다
- ex. Convolution layer, Recurrent layer 등
- Epoch(또는 Step)의 수를 늘려 더 학습시킨다.
- Train/Validation의 성능이 계속 좋아지는 상태에서 끝난 경우, 더 학습을 시킨다.
- 모델의 복잡도를 높임
2.2 과대적합
- 검증 결과 Train data set에 대해 학습을 과하게(overfitting)한 상태→ 필요없는 특징인 이상치(outlier)에 대해서도 학습
- Train set에 대한 성능은 좋은데 Validation set에 대한 성능이 안좋음 → 처음보는 데이터에 대해서 예측 성능이 떨어짐
- 모델이 Train dataset의 크기에 비해 너무 복잡한 경우
- 개선방법 ⇒ 모델을 더 단순하게 만들자!!
- 더 많은 data를 수집
- 데이터를 추가 수집(시간/비용 증가)하거나 데이터 증강 upsampling 기법을 사용해 데이터 증식
- 모델의 복잡도를 낮추고 단순한 모델을 만듦
- 네트워크 모델의 크기 자체를 작게 만들거나
- 모델의 학습을 규제하는 기법 사용
- Epoch(또는 Step)의 수를 늘려 더 학습시킨다.
- Validation의 성능 지표가 가장 좋았던 Epoch 까지만 학습시킨다.
- 더 많은 data를 수집
3. 모델의 복잡도에 영향을 끼치는 요인
모델의 복잡도를 조절하여 과소적합과 과대적합을 해결하는 방법을 자세히 알아보자.
모델의 성능을 loss가 개선되는 추이를 보고 확인한다.
- Epoch 수와 과적합
- DNN 모델 크기 변경
- Dropout Layer 추가를 통한 Overfitting 규제
- Batch Normalization (배치정규화)
- Optimizer의 Learning rate(학습율) 조정을 통한 성능 향상
- Hyper parameter tuning
이후 게시글에서 자세한 내용과 예제를 알아보자
'Data Science > ML & DL' 카테고리의 다른 글
딥러닝 모델 개선 | 4.Batch Normalization (배치정규화) (0) | 2023.10.30 |
---|---|
딥러닝 모델 개선 | 3. Dropout Layer 추가를 통한 Overfitting 규제 (1) | 2023.10.30 |
딥러닝 모델 개선 | 2. DNN 모델의 크기를 변경하는 방법 (0) | 2023.10.30 |
딥러닝 모델 개선 | 1. Epoch수와 과적합 (0) | 2023.10.26 |
딥러닝 개요 (0) | 2023.10.25 |