더북(TheBook)

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 ------ 에포크가 진행되는 열 번 동안 모델의 오차가 개선되지 않는다면 종료
                             )
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.