3 학습하기
앞에서도 설명했듯이, 과적합은 공부할 때 문제집은 잘 풀지만 시험을 보면 응용을 못해서 점수를 못 받는 것에 비유할 수 있다. 과적합을 피하기 위한 여러 방안이 마련되어 있는데 여기서는 가장 많이 쓰이는 콜백 함수로 조기 종료(earlyStopping)하는 방법을 사용해 보겠다.
종료 시점은 monitor로 찾는다. val_loss 또는 val_accuracy를 사용할 수 있는데 여기서는 기본값인 val_loss를 사용할 것이다. loss는 상승과 하강을 반복하기 때문에 하강한다고 해서 바로 종료하지 않고 몇 번의 에포크 동안 종료를 미룰 것인지 설정할 수 있다. patience를 설정해 주면 해당 횟수만큼 더 이상 monitor에 지정한 지표가 감소하지 않으면 학습을 멈춘다. 여기서는 5로 설정해 주었다.
from tensorflow.keras.callbacks import EarlyStopping early_stop = EarlyStopping(monitor='val_loss', patience=5)