[딥러닝] EarlyStopping이란?

지현·2022년 5월 4일
0

이번 포스팅에서는 Keras의 Early stopping 함수에 대해서 알아보고 정리해볼 계획이다.


Early Stopping in Keras

overfitting 되는 모델의 경우, epoch가 커질수록 val_loss가 줄어들다가 다시 늘게 되는 경우가 생기는데 이때 학습을 종료시켜주는 콜백함수이다.

⭐ 콜백함수란?

다른 코드의 인자로서 넘겨주는 실행 가능한 코드를 말한다.

⭐ import

from keras.callbacks import EarlyStopping

⭐ 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

profile
TMI가 많은 iOS 개발자의 블로그

0개의 댓글