4편에서 확인했던 핵심은 이거였습니다.
- depth를 붙이면 좋아지는 게 아니라,
- RGB와 depth를 “어디서, 얼마나, 어떻게 믿을지”를 설계해야 성능이 안정적으로 올라갑니다.
그래서 main-teacher(RGB-D)는 PCAM/PSAM/CBPG로 “믿고 섞는 행동”을 학습했습니다.
그런데 최종 목표는 여전히 RGB-only student입니다.
즉, 여기서 어려워지는 것이 depth 없이도, teacher가 했던 ‘신뢰도 기반 융합 행동’을 student에게 어떻게 옮길 수 있을지에 대해 고민해보아야 합니다.
이번 5편은 그 답을 지난 연구 과정을 따라 정리하는 편입니다.
왜 “그냥 KD”로는 부족했을까?
악천후에서는 RGB-only가 무너지는 패턴이 반복됩니다. 이때 단순한 logit KD(teacher 출력만 따라가기)는 이런 한계가 생깁니다.
- teacher가 강해진 이유는 “출력이 똑똑해서”도 있지만,
- 더 본질적으로는 픽셀마다 “무엇을 믿고 판단했는지”가 달라졌기 때문입니다.
즉, logit만 맞추면 student는 결과는 비슷하게 낼 수 있어도,
그 결과를 만드는 “판단 기준(행동)”은 못 배울 수 있습니다.
그래서 VD-MKDF는 distillation을 3층 구조로 설계합니다.
- logit-level: “무엇을 예측할지”
- feature-level: “어떤 표현을 만들지”
- gating-level: “픽셀별로 얼마나 확신/불확신을 가져야 할지(=teacher의 융합 행동을 간접적으로 흉내)”
Multi-teacher를 둔 이유: 악천후 별 편향은 단일 teacher으로는 불가
논문 구조는 이렇게 갑니다.
- main-teacher: RGB-D(깊이 기반 구조/거리 단서 포함) → “EF 전반에서 통하는 구조적 일반화”를 제공
- sub-teachers(4개): rain/snow/fog/flare 각각에 특화된 RGB-only teacher → “조건별 appearance 붕괴 패턴”을 더 잘 반영


환경 적응형 가중치
MobileNetV2 기반 EF classifier로 입력 EF를 추정하고, 그 결과로 sub-teacher 가중치를 샘플마다 조절합니다.

- main-teacher는 항상 0.5(절반) 정도의 “기본 안정화 신호”를 줍니다.
- 나머지 0.5를 sub-teachers가 나눠 갖는데, classifier가 선택한 EF의 sub-teacher에 큰 가중치, 나머지 3개 sub-teacher에는 작은 가중치를 줍니다.
이렇게 설계하는데에는 굉장히 중요한 이유가 있습니다.

- 위의 그림에서와 같이 기본적으로는 분류가 잘 되는 편입니다만, 어쨌든 classifier가 100% 정확하지 않기 때문입니다.
- 그래서 “hard하게 하나만 선택”하면, 오분류 한 번에 KD가 엉뚱한 방향으로 크게 흔들릴 수 있습니다.
- 논문은 그 위험을 인정하고, soft weighting으로 안전장치를 둡니다.
Logit-level & Feature-level distillation 으로 예측과 표현 보정
Logit-level:

student logits을 main-teacher logits 및 sub-teacher logits과 맞춥니다.
여기서 포인트는 KL이 아니라 L1 거리를 쓴다는 점입니다.
이는 CACKD 때와 유사한데,
- EF마다 logit 분포의 “스케일/샤프니스”가 달라질 수 있고
- KD 초기에 KL 기반 확률 정렬은 학습이 예민해질 수 있습니다.
- L1은 “픽셀별 출력값을 회귀처럼 안정적으로 끌어오는” 성격이라, 초기 학습 안정성에 유리합니다.
Feature-level:

teacher의 stage별 feature와 student feature를 맞추는데, student와 teacher의 채널 수가 다르므로, student feature에 1×1 conv projection을 붙여 채널을 맞춘 뒤 L1으로 정렬합니다.
악천후에서 흔히 생기는 실패가 “출력만 흔들리는 게 아니라 중간 표현이 붕괴”되는 겁니다.
feature-level KD는 그 붕괴를 stage별로 잡아주기 때문에, logit-only보다 훨씬 안정적으로 갑니다.
Gating-level distillation로 “융합 행동”을 증류
여기서부터가 VD-MKDF의 색깔입니다. 우선 대전제는 teacher의 gate map은 “중요도(attention)”가 아닙니다
논문은 gate map을 이렇게 정의합니다.
- 값이 크면: 각 모달리티가 자기 신호를 더 유지하는 쪽
- 값이 작으면: 반대 모달리티를 더 참고하는 게 이득인 쪽
즉, 일반적인 attention처럼 “여기가 중요하니 크게 보자”가 아니라, “이 픽셀에서는 RGB만 믿어도 되나, 아니면 depth의 도움(구조 단서)을 받아야 하나?” 를 반영한 픽셀 단위 모달 신뢰도/결합 행동의 결과물입니다.
하지만 student는 depth가 없는데, gate를 어떻게 따라 하지? 라고 할 수 있습니다. 물론 student는 depth가 없지만, 대신 자기 예측이 불확실한지(uncertainty)는 계산할 수 있습니다.
그 불확실성의 대표 지표가 entropy입니다.

student logits로 softmax 확률을 구하고 픽셀별 엔트로피를 계산합니다.
- 엔트로피가 크다 = 확률이 퍼져있다 = 불확실
- 엔트로피가 작다 = 확률이 뾰족하다 = 확신
최대 엔트로피(클래스 수에 따른 logC)로 정규화한 뒤, complement를 취해 를 만듭니다.
- c(u) 가 크면 “이 픽셀은 student가 꽤 확신한다”
- c(u) 가 작으면 “이 픽셀은 student가 불안하다”
즉, student의 확신 지도(confidence map) 같은 역할을 합니다.
이후 main teacher의 gate map을 라벨 해상도에 맞게 보간하고, ignore label(void 등)은 마스크로 제외한 뒤, Lgate와 같이 L1로 맞춥니다.
정리하자면,
- teacher는 depth까지 보고 “여긴 RGB가 불안하니 depth를 더 믿자” 같은 결정을 합니다.
- 그 결정의 흔적이 gate map에 남습니다.
- student는 depth가 없지만,
- “여긴 내가 불안해야 하는 위치다(확신 낮춤)”
- “여긴 내가 확신해도 되는 위치다(확신 유지)”
를 teacher의 gate landscape에 맞추도록 학습됩니다.
그래서 결과적으로 student는,
depth 없이도 “구조적으로 위험한 픽셀”에서
과도하게 확신해버리는(=오분류로 직행하는) 패턴을 줄이고,
경계/반사/하이라이트 같은 구간에서 예측 안정성을 얻습니다.
6) 최종 KD loss: 식 (30)~(32)
논문은 KD 전체를 이렇게 묶습니다.


최적 가중치는 실제 실험적으로 찾았고, 그 결과를 Table 9 정리했습니다.
Ablation Study

main만 쓰면 EF별 편향을 못 잡고, sub만 쓰면 구조 일반화가 아쉽고, 균등 가중치는 상황에 덜 맞고,
결국 환경 적응형 가중치+ main의 안정화 신호를 같이 쓰는 제안 방식이 가장 높습니다.

즉, logit/feature만으로는 한계가 있었고, gate-level(행동)까지 옮겨야 성능이 확 올라갑니다.
정리: VD-MKDF의 KD는 “정답 복사”가 아니라 “판단 기준 복사”
- main-teacher는 depth로 구조/거리 단서를 얻고,
- sub-teachers는 EF별 RGB 붕괴 패턴을 학습하며,
- student는 EF classifier 기반 가중치로 “누구를 얼마나 믿을지”를 샘플마다 조절하고,
- 마지막으로 teacher의 gate map(픽셀별 융합 행동)을
student의 entropy complement(확신 분포)로 맞추면서, - depth 없이도 “구조적으로 위험한 영역에서 확신을 조절하는” 행동을 배우게 됩니다.
'Research > VD-MKDF' 카테고리의 다른 글
| 7. Experiments & Discussions & Conclusion (0) | 2026.02.12 |
|---|---|
| 6. CamVid-EF / KITTI-EF (0) | 2026.02.11 |
| 4. RGB-D Fusion (0) | 2026.02.11 |
| 3. RGB와 Depth를 어떻게 믿어야 할까 (0) | 2025.12.16 |
| 2. RGB-D main-teacher 셜계 (0) | 2025.12.16 |