인공지능/딥러닝

에포크 학습 데이터/밸리데이션데이터와 오버피팅

공부짱짱열심히하기 2022. 12. 29. 11:45
def build_model():
  model = Sequential()
  model.add( Flatten() )
  model.add( Dense(128, 'relu') )
  model.add( Dense(64, 'relu') )
  model.add( Dense(10, 'softmax'))
  model.compile('adam', 'sparse_categorical_crossentropy', ['accuracy'])
  return model
model = build_model()
epoch_history = model.fit(X_train, y_train, epochs= 30 , validation_split= 0.2 )

모델링을 하면서 에포크의 숫자를 너무 과하게 할경우

 

epoch_history.history.keys()
dict_keys(['loss', 'accuracy', 'val_loss', 'val_accuracy'])
plt.plot( epoch_history.history['loss']  )
plt.plot( epoch_history.history['val_loss']  )
plt.legend( ['Train Loss', 'Validation Loss'] )
plt.show()

 

기존 데이터는 그냥 척보면 맞추지만 새로운 데이터는 얼타는 모습을 보여준다

 

 

정확도로 확인을 해보면

plt.plot( epoch_history.history['accuracy']  )
plt.plot( epoch_history.history['val_accuracy']  )
plt.legend( ['Train Accuracy', 'Validation Accuracy'] )
plt.show()

갈수록 빌빌기며 잘 오히려 정확도가 떨어지는 모습을 볼 수 있음