더북(TheBook)

 

4학습의 자동 중단

 

학습이 진행될수록 학습셋의 정확도는 올라가지만 과적합으로 인해 테스트셋의 실험 결과는 점점 나빠지게 됩니다. 케라스에는 이렇게 학습이 진행되어도 테스트셋 오차가 줄지 않으면 학습을 멈추게 하는 함수가 있습니다. 바로 EarlyStopping() 함수입니다. 이를 적용하기 위해 케라스에서 해당 함수를 불러오겠습니다.

 

from keras.callbacks import EarlyStopping

 

EarlyStopping() 함수에 모니터할 값과 테스트 오차가 좋아지지 않아도 몇 번까지 기다릴지를 정합니다. 이를 early_stopping_callback에 저장합니다.

 

early_stopping_callback = EarlyStopping(monitor='val_loss',

patience=100)

 

이제 앞서 정한 그대로 에포크 횟수와 배치 크기 등을 설정하고 early_stopping_callback 값을 불러옵니다.

 

model.fit(X, Y, validation_split=0.33, epochs=3500, batch_

size=500, callbacks=[early_stopping_callback])

 

이를 모두 적용하면 코드 14-4와 같습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.