← imai 홈
measure-first · 화재 검출 · 진짜 cross-source held-out

화재 검출: 다른 출처로 가면 무너진다 — 정직하게 측정했다

서로 다른 AI-Hub 화재 데이터셋(058 과제71472 ↔ 089 과제71751)으로 cross-source 측정. 한쪽에서 학습해 다른 출처에서 시험하면 성능이 크게 붕괴한다. 3 독립시드(byte-identical 아님 검증)·서명 매니페스트. 이 리포트가 구 in-distribution 0.85 수치를 대체한다.

0.59–0.80
in-source mAP50 (같은 출처 held-out)
0.11–0.34
cross-source mAP50 (다른 출처 held-out)
−42~86%
출처가 바뀔 때 붕괴폭
3
독립시드(실변량 ±0.03, byte-identical 아님)

1. 결과 매트릭스 — 학습출처 × 시험출처 (mAP50, 3시드 mean±std)

학습 → 시험종류mAP50 mean±stdmin–max (3시드)
058 → 058in-source(상한)0.5930.0270.558–0.622
089 → 089in-source(상한)0.8000.0030.798–0.804
058 → 089cross-source0.1140.0370.073–0.163
089 → 058cross-source0.3430.0370.311–0.395
읽는 법: 대각선(같은 출처)은 높고, 비대각선(다른 출처)은 무너진다. 089→058(0.343)이 058→089(0.114)보다 나은 건 089가 훨씬 다양(주·야, 다수 장소·출처)해 전이가 잘 되기 때문 — 반대로 058은 실내 편중이라 다양한 089로 전이가 약하다. 다양한 데이터로 학습할수록 일반화가 낫다는 실증.

2. 적응 회복곡선 — 타깃 출처 데이터를 조금 주입하면 회복되나

058로만 학습한 상태에서 089(타깃) 학습 클립을 f 비율만 주입하고 089 held-out으로 시험. 붕괴가 소량 타깃 데이터로 회복되는지 = 현장 파일럿에서 "소량 라벨로 적응"이 통하는지의 실증.

기준선 주의: 여기 f=0(058만) 기준선 0.153은 회복곡선 전용 3독립시드 런이고, 위 1번 매트릭스의 058→089 0.114는 별개의 3독립시드 런이다(같은 조건, deterministic=False). 두 독립 평균의 차(0.04)가 각 런의 3시드 std(~0.037)보다 커, 실제 런-투-런 재현변량은 std보다 크다. 붕괴 수준은 0.11–0.15 범위로 읽는 게 정직하다(둘 다 in-source 0.80 대비 급락).
058만 (+0% 089) · 붕괴0.153 ±0.009
058 + 10% 089 (~86클립)0.528 ±0.014
058 + 25% 089 (~214클립)0.634 ±0.009
058 + 50% 089 (~429클립)0.728 ±0.012
089 in-source 상한 (참조)~0.800
핵심: 붕괴한 058→089(0.15)에 타깃 데이터 10%만 주입해도 0.53으로 점프 — 격차(0.15→0.80)의 약 57%를 단 10%로 회복. 25%→0.63, 50%→0.73으로 상한(0.80)에 수렴. 곧 수확체감이 오지만, "소량의 현장 라벨로 급속 회복"이 실측으로 확인된다 = 현장별 데이터 적응이 실제로 통한다는 정량 근거. 각 점 3 독립시드(std≤0.014). 주입 089 클립은 089 held-out(시험셋)과 완전 disjoint.

2-2. 적응 방법 A/B(2026-07-13 추가) — norm-only는 안 통하고, 타깃만 FT는 망각한다

"어떻게 적응할 것인가"를 3방법 A/B(모두 058학습 모델에서 시작, 3독립시드): AdaBN(라벨 0장 — BN 통계만 타깃으로 재추정), norm-affine FT(BN scale/shift만, 10% 클립 라벨), full-FT(전 파라미터, 같은 라벨). 회복(089 held-out)과 망각(058 유지력)을 동시 측정:

방법089 회복 mAP50058 유지 mAP50판정
zero-shot(참조)0.1140.593붕괴 상태
AdaBN (라벨 0장)0.101 ±0.0140.573무효 — 통계이동 갭이 아님
norm-affine FT (10%)0.117 ±0.0250.591무효
full-FT 타깃만 (10%)0.483 ±0.0180.356 ±0.015회복하나 원 도메인 −40% 망각
혼합 재학습 (058전량+10%, 위 회복곡선)0.528 ±0.014(058이 학습에 포함=유지)처방 ✓
정직한 결론: ① 화재 cross-source 갭은 BN 통계 이동이 아니라 의미/외형 수준의 갭 — norm-only 계열(라벨프리 AdaBN·norm-affine)은 회복 효과가 없다(문헌의 norm-only 만능론이 이 갭 유형엔 부적용, 자가검사: BN 통계변화 확인됨·trainable 30k vs 9.4M). ② 타깃만 full-FT는 회복(0.48)하지만 원 도메인을 40% 망각 — 파일럿에서 "현장 데이터로만 파인튜닝"은 함정. ③ 처방 = 기존+현장 혼합 재학습(0.528·유지 보존). 과거 "FT가 base보다 나빴다"(크랙 게이트)는 다른 사례지만, 여기서도 적응은 방법 선택이 결과를 가른다는 원칙이 실측으로 선다.

3. 정직성 노트 (무엇인가·무엇이 아닌가)

재현·검증: 데이터 sha256·코드 SHA·split 증명·per-metric 3시드·라벨 검증 서명을 담은 서명 매니페스트 동봉(게시 정직성 게이트 통과). 모델 yolo11s·60ep·imgsz640. 데이터=AI-Hub 개방데이터(이용약관 준수, 상업 제품화 전 약관 재확인).

immersivecast · measure-first 화재 검출 · cross-source held-out 실측 · 2026-07-11