① patience: 오차 개선이 없다고 바로 종료하지 않고 개선이 없는 에포크를 얼마나 기다려 줄지 지정합니다. 예제에서는 5라고 지정했기 때문에 개선이 없는 에포크가 다섯 번 지속될 경우 학습을 종료합니다.
② delta: 오차가 개선되고 있다고 판단하기 위한 최소 변화량을 나타냅니다. 변화량이 delta보다 적다면 개선이 없다고 판단합니다.
일반적으로 케라스에서 제공하는 콜백(keras.callbacks)을 이용하면 손쉽게 조기 종료를 구현할 수 있지만 파이토치에서는 조기 종료 함수 자체를 사용자가 직접 구현해야 합니다. 이러한 과정이 번거롭다면 케라스를 이용하면 편리합니다.
참고로 케라스의 콜백을 이용하는 방법은 다음과 같습니다.
from keras.callbacks import ModelCheckpoint, EarlyStopping checkpoint = ModelCheckpoint('checkpoint-epoch.h5'.format(EPOCH, BATCH_SIZE), ------ 파일명 지정 monitor='val_loss', ------ val_loss 값이 개선되었을 때 호출 verbose=1, ------ 로그 출력 save_best_only=True, ------ 가장 최적의 값만 저장 mode='auto' ------ auto 의미는 시스템이 알아서 best 값을 찾으라는 것 ) earlystopping = EarlyStopping(monitor='val_loss', ------ 학습률 업데이트 기준 설정(val_loss) patience=10 ------ 에포크가 진행되는 열 번 동안 모델의 오차가 개선되지 않는다면 종료 )