욜로 비전 선전
선전
지금 참여하기
용어집

콜백

머신 러닝에서 콜백의 필수적인 역할을 살펴보세요. 정확성, 유연성 및 효율성을 향상시키기 위해 모델 훈련을 모니터링, 제어 및 자동화하는 도구입니다.

머신 러닝에서 콜백은 모델 훈련 과정 중 특정 시점에 실행되는 자동화된 스크립트 또는 함수입니다. 이를 에포크, 훈련 배치 또는 전체 훈련 세션의 시작 또는 종료와 같이 미리 정의된 단계에서 훈련 프레임워크가 따르는 일련의 지침으로 생각하십시오. 콜백은 개발자가 모델 또는 훈련 루프의 핵심 코드를 변경할 필요 없이 훈련의 다양한 측면을 모니터링, 제어 및 자동화할 수 있는 강력한 메커니즘을 제공합니다. 이는 효율적이고 강력한 머신 러닝(ML) 파이프라인을 구축하는 데 필수적인 도구입니다.

콜백 작동 방식

학습을 시킬 때 신경망(NN), 이 과정은 다음을 반복하는 것을 포함합니다. 데이터 세트 여러 epoch 동안. 학습 루프는 모델에 데이터를 공급하고, 계산하는 것을 포함하는 이 프로세스를 관리합니다. 손실 함수, 그리고 업데이트 모델 가중치 통하여 역전파. 콜백은 특정 이벤트에서 이 루프에 연결됩니다. 예를 들어, on_epoch_end 콜백은 각 epoch가 완료된 직후에 코드를 정확하게 실행합니다. 이를 통해 다음과 같은 동적 개입이 가능합니다. 학습률, 모델의 최적 버전을 저장하거나 성능이 정체될 경우 학습을 조기에 중단합니다. 이러한 자동화는 잘 구성된 머신러닝 워크플로.

실제 사례

콜백은 다양한 컴퓨터 비전(CV) 작업에서 학습 결과를 개선하기 위해 널리 사용됩니다.

  1. 최고의 객체 탐지 모델 저장: 객체 탐지를 위해 Ultralytics YOLO 모델을 훈련할 때 ModelCheckpoint 콜백을 사용할 수 있습니다. 이 콜백은 유효성 검사 데이터 세트에서 평균 평균 정밀도(mAP)를 모니터링합니다. mAP 점수가 이전에 저장된 최고 점수보다 향상된 경우에만 모델의 가중치를 파일에 저장하여 가장 정확한 모델을 유지하도록 합니다. 모델 비교 페이지에서 다양한 모델의 성능을 확인할 수 있습니다.
  2. 이미지 분류에서 과적합 방지: 이미지 분류를 위해 ImageNet과 같은 복잡한 데이터 세트에 대해 모델을 학습한다고 가정해 보겠습니다. EarlyStopping 콜백은 검증 손실을 모니터링하도록 구성할 수 있습니다. 검증 손실이 설정된 epoch 수 동안 감소하지 않으면 콜백은 자동으로 학습을 중단합니다. 이렇게 하면 모델이 학습 데이터에 과적합되는 것을 방지하고 상당한 학습 시간과 계산 비용을 절약할 수 있습니다. 이미지 분류 작업과 이를 구현하는 방법에 대해 자세히 알아볼 수 있습니다.

콜백 vs. 기타 개념

콜백을 관련 용어와 구별하는 것이 도움이 됩니다.

  • 함수: 콜백은 함수의 한 유형이지만, 정의적인 특징은 다른 함수(훈련 루프)에 인수로 전달되고 특정 시간에 해당 함수에 의해 내부적으로 호출된다는 것입니다. 표준 함수는 일반적으로 프로그래머가 직접 호출합니다.
  • 훅(Hooks): 소프트웨어 엔지니어링에서 훅은 사용자 정의 로직을 삽입할 수 있도록 코드 내에 마련된 위치를 가리키는 일반적인 용어입니다. 머신 러닝 프레임워크의 콜백은 훅 개념의 구체적인 구현으로, 모델의 학습 라이프사이클 이벤트에 맞춰져 있습니다.
  • 하이퍼파라미터 튜닝: 이는 모델에 대한 최적의 하이퍼파라미터(예: 학습률 또는 배치 크기)를 찾는 프로세스입니다. 콜백은 예를 들어 학습률 스케줄러를 구현하여 하이퍼파라미터 튜닝지원할 수 있지만 튜닝 프로세스 자체는 아닙니다. 튜닝 프로세스는 더 높은 수준의 검색 또는 최적화 절차입니다.

콜백 사용의 이점

콜백을 학습 과정에 통합하면 다음과 같은 몇 가지 중요한 이점이 있습니다.

  • 자동화: 콜백은 모델 저장, TensorBoard와 같은 도구를 사용한 메트릭 로깅, 파라미터 조정과 같은 반복적인 작업을 자동화하여 긴 학습 실행 중에 수동 개입의 필요성을 줄입니다.
  • 유연성 및 사용자 정의: 개발자는 핵심 프레임워크 코드를 수정하지 않고도 훈련 루프에 사용자 정의 로직을 삽입하여 고도로 맞춤화된 훈련 동작을 구현할 수 있습니다. 이는 복잡한 실험이나 고급 훈련 기술을 구현하는 데 특히 유용합니다.
  • 효율성: Early Stopping 및 동적 학습률 조정과 같은 콜백은 계산 리소스를 절약하고 잠재적으로 모델 수렴 속도를 높여 훈련 효율성을 높일 수 있습니다.
  • 통찰력 및 모니터링: 상세한 로깅과 시간 경과에 따른 메트릭 시각화를 통해 훈련 역학에 대한 심층적인 통찰력을 제공하며, 이는 모델 평가에 매우 중요합니다.
  • 재현성: 훈련 중에 수행되는 작업(예: 기준 저장, 중지 조건)을 표준화함으로써 콜백은 보다 재현 가능한 머신 러닝 실험에 기여합니다.

KerasPyTorch Lightning와 같은 프레임워크는 광범위한 내장 콜백 컬렉션과 사용자 정의 콜백 생성을 위한 간단한 인터페이스를 제공합니다. Ultralytics는 또한 학습 파이프라인 내에서 내부적으로 콜백을 활용하여 Ultralytics YOLO11Ultralytics HUB 플랫폼과 같은 도구의 견고성과 사용자 친화성에 기여합니다. Ultralytics 문서를 참조하면 YOLO 모델 학습과 관련된 더 구체적인 예를 확인할 수 있습니다.

Ultralytics 커뮤니티에 참여하세요

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기
클립보드에 링크가 복사되었습니다.