이번 포스팅에서는 Keras의 Early stopping 함수에 대해서 알아보고 정리해볼 계획이다.
overfitting 되는 모델의 경우, epoch가 커질수록 val_loss가 줄어들다가 다시 늘게 되는 경우가 생기는데 이때 학습을 종료시켜주는 콜백함수이다.
다른 코드의 인자로서 넘겨주는 실행 가능한 코드를 말한다.
from keras.callbacks import EarlyStopping
EarlyStopping(monitor='val_loss', min_delta=0, patience=0, verbose=0, mode='auto') (-> default 값으로 구성)
monitor : 학습 조기 종료를 위해 관찰하는 항목으로 val_loss(default)나 val_acc를 주로 사용한다.
min_delta : 개선되고 있다고 판단하기 위한 최소 변화
patience : 개선이 없어도 바로 종료하지 않고 그러한 epoch를 기다리는 횟수
verbose : 얼마나 자세하게 정보를 표현할 것인지를 지정 (0, 1, 2) (생략 가능)
mode : monitor에 대해 개선이 없다고 판단하기 위한 기준. min은 monitor 항목이 감소가 멈출 때 종료, max는 증가가 멈출 때 종료, auto(default)는 관찰하는 이름에 따라 자동으로 설정
ex) monitor = 'val_loss'인 경우에는 감소가 멈출 때 종료되어야 하므로 min으로 설정
학습 모델 mode.fit()에 callback=early_stopping을 사용하면 된다.
history = model.fit(X_train, Y_train, epochs=1000, batch_size=10, callbacks=[early_stopping])
출처
Early Stopping 의 개념과 Keras 를 통한 구현
https://ssongnote.tistory.com/11