ⓔ factor: 학습률을 얼마나 감소시킬지 지정하는 파라미터입니다. 새로운 학습률은 기존 학습률 * factor가 됩니다. 예를 들어 현재 학습률이 0.01이고 factor가 0.5일 때, 콜백 함수가 실행된다면 그다음 학습률은 0.005가 됩니다.
ⓕ min_lr: 학습률의 하한선을 지정합니다. 예를 들어 현재 학습률이 0.1이고 factor가 0.5, min_lr이 0.03이라면 첫 번째로 콜백 함수가 적용될 때 학습률의 하한선 값은 0.03×(0.1×0.5)처럼 계산됩니다.
ⓖ verbose: 조기 종료의 시작과 끝을 출력하기 위해 사용합니다. 1로 설정할 경우 조기 종료가 적용되면 적용되었다고 화면에 출력되지만, 0으로 설정할 경우 아무런 출력 없이 학습을 종료합니다.
Note ≡ | 콜백 함수(callback)
개발자가 명시적으로 함수를 호출하는 것이 아니라 개발자는 단지 함수 등록만 하고 특정 이벤트 발생에 의해 함수를 호출하고 처리하도록 하는 것이 콜백 함수입니다. 콜백 함수로는 동기적(synchronous) 함수와 비동기적(asynchronous) 함수가 있습니다. 동기적 함수는 코드가 위에서 아래로, 왼쪽에서 오른쪽으로 순차적으로 실행되는 함수이며 비동기 함수는 병렬 처리와 같다고 이해하면 됩니다. 어떤 코드를 실행했을 때 상당한 시간을 기다려야 하는 경우 해당 코드가 완료될 때까지 기다리는 것이 아닌 다른 코드가 먼저 처리되도록 하는 것이 비동기 함수입니다.
② 실제로 학습률을 업데이트합니다. 에포크 단위로 검증 데이터셋에 대한 오차(val_loss)를 받아서 이전 오차와 비교했을 때 차이가 없다면 학습률을 업데이트합니다.
이번에는 조기 종료에 대한 클래스입니다. 특정 에포크 후에도 오차가 개선되지 않을 때 훈련을 조기 종료합니다.