지식 증류가 어떻게 대규모 교사 모델의 지능을 소형 학습 모델로 이전하는지 알아보세요. 빠르고 효율적인 에지 배포를 위해 Ultralytics 최적화하세요.
지식 증류는 기계 학습에서 정교한 기법으로, 소형 신경망(학생)을 훈련시켜 더 크고 복잡한 신경망(교사)의 동작과 성능을 재현하도록 합니다. 이 과정의 주요 목적은 모델 최적화로, 개발자가 무거운 아키텍처의 예측 능력을 리소스 제약 하드웨어에 배포하기 적합한 경량 모델로 이전할 수 있게 합니다. 교사 예측에 인코딩된 풍부한 정보를 포착함으로써 학생 모델은 원시 데이터만으로 훈련했을 때보다 훨씬 높은 정확도를 달성하는 경우가 많으며, 이는 고성능과 효율성 사이의 격차를 효과적으로 해소합니다.
전통적인 지도 학습에서는 모델이 훈련 데이터로부터"확정 라벨"을 사용하여 훈련됩니다. 여기서 이미지는 명확하게 분류됩니다(예: 100% "개" 및 0% "고양이"). 그러나 사전 훈련된 교사 모델은 모든 클래스에 확률을 할당하는 소프트맥스 함수를 통해 출력을 생성합니다. 이러한 확률 분포는 "소프트 레이블" 또는 "암시적 지식"으로 알려져 있습니다.
예를 들어, 교사 모델이 늑대 이미지를 분석할 때 90% 늑대, 9% 개, 1% 고양이로 예측할 수 있습니다. 이 분포는 늑대가 개와 시각적 특징을 공유한다는 점을 보여주는데, 이는 하드 레이블이 무시하는 맥락 정보입니다. 증류 과정에서 학생 모델은 쿨백-라이블러 분산과 같은 손실 함수를 최소화하여 자신의 예측을 교사 모델의 소프트 라벨과 일치시킵니다. 제프리 힌턴의 연구로 대중화된 이 방법은 학생 모델의 일반화 능력을 향상시키고 소규모 데이터셋에서의 과적합을 줄여줍니다.
지식 증류는 계산 자원이 부족하지만 고성능이 필수적인 산업 분야에서 핵심적인 역할을 합니다.
지식 증류는 다른 압축 전략과 근본적으로 다른 방식으로 모델을 수정하므로, 이를 구분하는 것이 중요하다.
실용적인 워크플로우에서는 먼저 학생 역할을 수행할 경량 아키텍처를 선택합니다. Ultralytics 활용하여 데이터셋을 관리하고 이러한 효율적인 모델들의 track 수 있습니다. 아래는 엣지 배포에 이상적이며 학생 네트워크로 활용하기에 적합한 컴팩트한 YOLO26 모델을 초기화하는 예시입니다:
from ultralytics import YOLO
# Load a lightweight YOLO26 nano model (acts as the student)
# The 'n' suffix denotes the nano version, optimized for speed
student_model = YOLO("yolo26n.pt")
# Train the model on a dataset
# In a custom distillation loop, the loss would be influenced by a teacher model
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)