AI/Framework

[Tensorflow] ReduceLROnPlateau CallBack 정리

Linuxias 2024. 9. 9. 22:00
반응형

ReduceLROnPlateau 콜백은 Keras에서 학습 과정 중에 모델의 성능이 향상되지 않을 때 학습률(Learning Rate)을 줄여주는 역할을 합니다. 학습률을 적절하게 조정하면 모델이 더 나은 성능을 낼 수 있는데, 이 콜백은 성능이 개선되지 않으면 학습률을 자동으로 감소시켜 학습의 안정성최적화 효율성을 높여줍니다.

주요 파라미터:

  • monitor: 성능을 평가할 지표(예: val_lossaccuracy)를 지정합니다. 기본값은 val_loss입니다.
  • factor: 학습률을 얼마나 줄일지 설정합니다. 예를 들어, factor=0.1이면 학습률을 10%로 줄입니다.
  • patience: 성능 개선이 없을 때 학습률을 줄이기 전에 기다릴 에포크 수를 지정합니다.
  • min_lr: 학습률이 이 값 이하로 내려가지 않도록 최소 학습률을 설정합니다.
  • cooldown: 학습률이 조정된 후 다시 지표를 모니터링하기 전에 기다리는 기간입니다.
  • mode: 'auto', 'min', 'max' 중 선택할 수 있습니다. 'min'은 성능 지표의 최소값을 모니터링하고, 'max'는 최대값을 모니터링합니다. 'auto'는 지표 이름에 따라 자동으로 선택됩니다.

예시 코드:

from tensorflow.keras.callbacks import ReduceLROnPlateau

reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=3, min_lr=0.001)

model.fit(X_train, y_train, epochs=50, validation_data=(X_val, y_val), callbacks=[reduce_lr])

위 예시에서는 val_loss가 3번 연속으로 향상되지 않으면 학습률을 20%로 감소시키며, 최소 학습률은 0.001입니다.

반응형