포스트

Soft Teacher는 라벨 1%에서 왜 강했나: Pseudo Label 신뢰도 설계

Soft Teacher는 비라벨 이미지의 모든 예측을 정답처럼 쓰지 않고, 분류 신뢰도와 박스 안정성을 따로 확인해 Student가 배울 pseudo label의 오류를 줄입니다.

Soft Teacher의 이득은 비라벨 데이터를 많이 넣는 데서 나오지 않고, 어떤 예측을 학습 신호로 받아들일지 세밀하게 고르는 데서 나옵니다. Teacher의 초기 오류와 클래스별 편향을 보지 않으면 신뢰도 필터가 오히려 잘못된 라벨을 반복 강화할 수 있습니다.

라벨 데이터와 비라벨 데이터의 역할을 나눈다

라벨이 있는 COCO 이미지는 일반 객체 탐지 정답으로 사용하고, 라벨이 없는 이미지는 Teacher의 예측을 임시 정답으로 사용합니다.

Soft Teacher 전체 흐름

학습 흐름은 다음 순서입니다.

  1. 라벨 데이터로 출발한 Teacher가 비라벨 이미지를 예측합니다.
  2. 신뢰할 수 있는 예측만 pseudo label 후보로 남깁니다.
  3. Student가 라벨 정답과 pseudo label을 함께 학습합니다.
  4. Student의 개선을 Teacher에 반영하고 이 과정을 반복합니다.

핵심 위험은 Teacher가 틀린 박스를 만들면 Student가 그 오류까지 학습한다는 점입니다. Soft Teacher의 차별점은 pseudo label의 “있다/없다”보다 얼마나 믿을지를 학습 신호에 반영하는 데 있습니다.

분류와 박스 신뢰도를 같은 기준으로 보지 않는다

원문이 소개한 첫 장치는 confidence score가 낮은 예측을 제거하는 필터링입니다. 남은 예측도 모두 같은 무게로 다루지 않고 soft labeling으로 예측 확률을 반영합니다. 높은 점수의 pseudo label은 더 강하게, 불확실한 결과는 덜 강하게 학습에 영향을 줍니다.

Box Jittering은 예측 박스 주변을 흔들어 위치가 안정적인지 확인하는 장치로 소개됩니다. 분류 점수가 높더라도 좌표가 조금만 바뀌어 크게 흔들리는 박스라면 회귀 정답으로 쓰기 어렵다는 판단입니다.

따라서 구현을 볼 때는 하나의 confidence threshold만 찾으면 부족합니다.

  • 분류 pseudo label을 어떤 점수로 거르는가
  • 남은 점수를 loss weight에 어떻게 반영하는가
  • 박스 좌표의 안정성을 어떤 jitter 결과로 판단하는가
  • 라벨 데이터와 비라벨 데이터 loss 비중이 어떻게 나뉘는가

이 네 항목을 분리해야 성능이 떨어졌을 때 pseudo label의 양과 질 중 어느 쪽이 문제인지 찾을 수 있습니다.

COCO 결과는 라벨 비율별로 비교한다

원문에 제시된 STAC 대비 결과는 다음과 같습니다.

라벨 비율STACSoft Teacher차이
1%13.97 mAP20.46 mAP+6.49
5%24.38 mAP30.74 mAP+6.36
10%28.64 mAP34.04 mAP+5.40

세 설정 모두 Soft Teacher가 높고, 절대 차이는 1% 라벨 조건에서 가장 큽니다. 이 결과는 라벨이 적을수록 비라벨 데이터의 활용 가치가 커질 수 있음을 보여 줍니다.

다만 표는 COCO의 특정 분할과 실험 설정입니다. 자신의 데이터에서 클래스 불균형, 작은 객체 비율, Teacher 초기 품질이 다르면 같은 향상 폭을 기대할 수 없습니다. 먼저 소량의 비라벨 표본에서 pseudo label을 직접 확인해 오탐과 누락 비율을 파악하는 것이 좋습니다.

원문 명령은 8 GPU 학습 예시다

원문 저장소 설치와 데이터 준비 명령은 다음과 같습니다.

1
2
3
4
5
git clone https://github.com/microsoft/SoftTeacher
cd SoftTeacher
make install
ln -s ${YOUR_COCO_DATASET} data
bash tools/dataset/prepare_coco_data.sh conduct

10% 라벨 조건을 8 GPU로 실행하는 예시는 다음 한 줄입니다.

1
bash tools/dist_train_partially.sh semi 1 10 8

평가와 이미지 시각화 예시도 경로 placeholder를 실제 설정과 checkpoint로 바꿔야 합니다.

1
2
bash tools/dist_test.sh <CONFIG_FILE_PATH> <CHECKPOINT_PATH> <NUM_GPUS> --eval bbox
python demo/image_demo.py /path/to/image.png configs/soft_teacher_faster_rcnn_r50.py work_dirs/checkpoint.pth --output work_dirs/

이는 원문 작성 시점의 저장소 인터페이스를 보여 주는 핵심 조각입니다. COCO 데이터 링크, 설정 파일, 학습된 checkpoint와 GPU 환경이 없으면 완전 실행되지 않습니다. 현재 저장소의 설치 조건과 스크립트 인자를 확인하고, 먼저 평가 명령으로 checkpoint와 데이터 경로가 맞는지 검증한 뒤 분산 학습을 시작해야 합니다.

Pseudo label 품질을 숫자 하나로 합치지 않는다

분류 confidence가 높아도 box가 물체 일부만 덮을 수 있고, 위치가 안정적인 box라도 class를 틀릴 수 있습니다. 검증용 비라벨 표본에만 임시 정답을 붙여 class precision, box IoU, 누락률을 따로 재면 어느 threshold를 조정해야 하는지 알 수 있습니다. 전체 평균뿐 아니라 작은 객체와 드문 class를 분리해야 다수 class의 높은 점수가 실패를 가리는 일을 줄일 수 있습니다.

Teacher가 만든 label을 confidence 구간별로 나누어 사람이 표본 검사하는 방법도 유용합니다. threshold 바로 위의 표본에서 오탐이 급증한다면 고정 임계값보다 class별 기준이 필요할 수 있습니다. box jitter를 적용했을 때 위치가 크게 달라지는 예측은 안정적인 정답처럼 쓰지 않는 편이 낫습니다.

작은 재현 실험은 무엇을 비교해야 하나

같은 labeled split과 seed에서 supervised baseline, hard pseudo label, soft classification, box jitter를 단계별로 추가합니다. 각 구성의 최종 mAP뿐 아니라 초반 Teacher 정확도, epoch별 pseudo label 수, class 분포, 학습 시간을 기록해야 성능 차이의 원인을 찾을 수 있습니다.

라벨 비율이 낮을수록 시작 Teacher가 약하므로 첫 반복부터 많은 pseudo label을 허용하면 confirmation bias가 커질 수 있습니다. warm-up 뒤에 비라벨 손실 비중을 늘리거나, 사람이 확인한 소량 표본으로 threshold를 먼저 정하는 편이 안전합니다. 새 도메인에서는 COCO의 향상 폭보다 실제 이미지에서 어느 종류의 오류가 반복되는지를 우선 판단해야 합니다.

라벨 비율을 낮춘 실험에서는 같은 이미지 split과 학습 횟수를 유지해야 합니다. 비라벨 pool까지 달라지면 개선이 교사 갱신 때문인지 데이터 구성 때문인지 구분할 수 없으므로, seed별 pseudo box 수와 사람 검수 오탐률도 함께 남깁니다.

함께 읽으면 이해가 이어지는 글

자주 묻는 질문

Soft Teacher는 비라벨 예측을 모두 학습에 쓰나요?

아닙니다. 분류 신뢰도와 박스 안정성을 기준으로 pseudo label을 걸러 쓰며, 낮은 품질의 예측이 Student에 전달되지 않도록 설계합니다.

분류 confidence만 높으면 좋은 pseudo label인가요?

그렇지 않습니다. class가 맞아도 box 위치가 불안정할 수 있으므로 분류와 localization 품질을 별도로 검사해야 합니다.

COCO 1% 결과가 다른 데이터에도 그대로 나오나요?

보장되지 않습니다. 클래스 불균형, 객체 크기, Teacher 초기 품질이 다르므로 같은 labeled split에서 baseline과 직접 비교해야 합니다.

실패를 일찍 발견하는 세 개의 그래프

첫 그래프에는 epoch별 pseudo label 수를 class별로 그립니다. 특정 class만 빠르게 늘면 Teacher가 쉬운 범주에 편향된 것일 수 있습니다. 두 번째에는 confidence 구간별 실제 precision을 표시해 점수가 calibration돼 있는지 봅니다. 세 번째에는 labeled validation의 작은, 중간, 큰 객체 AP를 그려 비라벨 학습이 어느 크기에 도움 또는 손해를 주는지 확인합니다.

Teacher와 Student의 차이도 표본으로 남겨야 합니다. Teacher가 계속 같은 오탐을 내고 Student가 이를 더 강하게 예측한다면 confirmation bias 신호입니다. 반대로 Student의 새로운 정답이 Teacher 갱신 뒤 반영된다면 반복 구조가 유효하게 작동한 것입니다. 평균 mAP가 오르더라도 드문 class의 recall이 급감하면 threshold와 비라벨 loss 비중을 다시 조정해야 합니다.

실제 데이터에서는 시간이나 장소별 분포 차이도 봅니다. labeled set은 낮 장면인데 unlabeled set에 야간이 많다면 confidence가 낮다는 이유로 야간 표본이 거의 학습되지 않을 수 있습니다. pseudo label이 없는 표본도 버리지 말고 어떤 조건에서 Teacher가 침묵했는지 분석해야 다음 라벨링 대상을 고를 수 있습니다.

THE END / OPSOAI

여기까지 읽었습니다

핵심 장면을 한 번 더 떠올려 보세요. 이해가 남았다면 이 책은 제 역할을 다했습니다.

다른 책 고르기
표지 1

키와 좌우 스와이프를 지원합니다. 읽던 페이지는 이 기기에 저장됩니다.

CONTENTS

이 책의 목차

    9개 장 14 분읽는 시간