1. Generalization (일반화)
모델이 처음 보는 데이터에 대해 정확하게 예측 할 수 있으면, 이를 train 세트에서 test 세트로 일반화 되었다고 한다.
2. Overfitting (과대적합)
과대적합(overfitting)이란 머신러닝 모델을 학습할 때 train 데이터셋에 지나치게 최적화하여 발생하는 문제이다.
즉, 모델을 지나치게 복잡하게 학습하여 학습 데이터셋에서는 모델 성능이 높게 나타나지만
정작 새로운 데이터가 주어졌을 때 정확한 예측/분류를 수행하지 못한다.
3. Underfitting (과소적합)
과소적합(underfitting)이란 과대적합의 반대 개념으로서,
머신러닝 모델이 충분히 복잡하지 않아(최적화가 제대로 수행되지 않아)
train 데이터의 구조/패턴을 정확히 반영하지 못하는 문제이다.
4. 차트로 Overfitting 확인해보기
학습할 때 history를 변수에 저장할 수 있다. history는 딕셔너리로 저장된다.
epoch_history = model.fit(X_train, y_train, epochs=30, validation_split=0.2)
# loss의 차트
plt.plot( epoch_history.history['loss'] )
plt.plot( epoch_history.history['val_loss'] )
plt.legend(['Train Loss', 'Validation Loss'])
plt.show()
# accuracy의 차트
plt.plot( epoch_history.history['accuracy'] )
plt.plot( epoch_history.history['val_accuracy'] )
plt.legend(['Train Accuracy', 'Validation Accuracy'])
plt.show()
'Machine Learning > Deep Learning' 카테고리의 다른 글
Tensorflow - Callback 클래스를 이용해서, 원하는 조건이 되면 학습을 멈추기 (0) | 2022.12.29 |
---|---|
Tensorflow - Dropout 사용법 (0) | 2022.12.29 |
Tensorflow - ANN 분류 모델 activation, loss 함수 설정 방법 (0) | 2022.12.29 |
Tensorflow - 3개 이상 분류 문제의 인공신경망(ANN) (0) | 2022.12.29 |
Tensorflow - 콜백 EarlyStopping 사용법 (0) | 2022.12.29 |