Ablation Experiment Plan for VLM Emotion Rating Study

Status: Planned (generated from Ralph Loop review feedback, 2026-03-25)
Related Manuscript: docs/manuscript/manuscript_VLM_emotion_2026_v5.md
Motivation: 6명의 리뷰어 (ruthless-paper-reviewer, cognitive-psychology, ai-ml, Hinton, Feynman, Bengio)가 공통으로 지적한 실험적 공백을 해소하기 위한 계획


Priority 1: Critical Ablations (논문 투고 전 필수)

Ablation 1: Text-Only Arousal Estimation

목적: VLM의 arousal “advantage”가 visual perception인지 language-based inference인지 분리
설계:

  • 이미지 없이 emotion label만 제공 (“The facial expression is angry. Rate the arousal from 1-9.“)
  • 동일 1,440개 라벨에 대해 Gemma3 + LLaMA 실행
  • VLM arousal (image+label) vs VLM arousal (label-only) 상관 비교
    예상 결과: label-only 조건에서도 높은 arousal 상관이 나오면 → arousal advantage는 language prior에서 기인
    구현: src/models/ollama_vlm.py에 text-only mode 추가, src/config.py에 ablation flag
    예상 소요: ~2시간 (inference only, 모델 이미 배포됨)

Ablation 2: No-Context (Single-Shot) Prompting

목적: Context-carry의 error propagation + anchoring 효과 분리
설계:

  • 한 번의 프롬프트로 emotion + valence + arousal 동시 추출
  • JSON 출력: {"emotion": "...", "valence": N, "arousal": N}
  • Context-carry 결과와 비교: κ, r, MAE, SD 모두 비교
    예상 결과: single-shot에서 within-category variance가 증가하면 → context-carry의 anchoring이 variance를 억제
    구현: src/config.pyPromptConfig에 single-shot template 추가
    예상 소요: ~2시간

Priority 2: High-Priority Ablations (논문 경쟁력 강화)

Ablation 3: Temperature Variation

목적: Greedy decoding이 fixed-value output pattern의 주된 원인인지 검증
설계:

  • Temperature = {0, 0.3, 0.7, 1.0}에서 각각 3회 반복 실행
  • Within-category SD를 temperature별로 비교
  • Multiple runs의 평균과 SD 보고
    예상 결과: temperature 증가 시 within-category SD 증가 → output 제약이 주 원인
    구현: configs/default.yaml에 temperature 설정 추가, inference loop에 반복 로직
    예상 소요: ~8시간 (4 temperatures × 3 runs × 2 models)

Ablation 4: FP16 vs 4-bit Quantization

목적: Quantization이 output discretization에 미치는 독립적 기여 분리
설계:

  • Gemma3-4B를 FP16과 4-bit QAT에서 각각 실행 (동일 프롬프트, temperature=0)
  • LLaMA-3.2-11B는 M1 Max 32GB에서 FP16이 불가능할 수 있음 → Gemma3만 비교
  • Within-category SD, MAE, κ 비교
    예상 결과: FP16에서 약간의 variance 증가 (Hinton 추정: 20-30% variance restoration)
    구현: configs/ 에 fp16 variant 추가, MLX FP16 모드 확인
    예상 소요: ~3시간

Ablation 5: Dark Knowledge (Softmax Distribution) Analysis

목적: Output token의 argmax가 아닌 전체 softmax 분포에 within-category variance가 존재하는지 확인
설계:

  • 이미 수집된 logits NPZ 파일 활용 (output_scores=True 설정)
  • Token ID 1-9에 대한 softmax probability 추출
  • Emotion category 내에서 probability distribution의 entropy 계산
  • 높은 entropy = 모델이 내부적으로 변별하고 있음 (output만 동일)
    예상 결과: Entropy > 0이면 → “dimensional collapse”는 output-level 현상, 모델 내부는 변별 가능
    구현: src/analysis/ 에 dark_knowledge_analysis.py 추가
    예상 소요: ~1시간 (데이터 이미 존재)
    Note: CLAUDE.md에 “Dark knowledge = top-50 softmax distributions per generation step, saved as NPZ files”로 기록되어 있음 → 데이터 이미 수집 완료

Ablation 6: Additional VLM Models (Qwen Series)

목적: N=2에서 N=4+로 VLM 수 확대하여 일반화 가능성 확보
설계:

  • Qwen2-VL-7B, Kimi-VL, SmolVLM2 등 추가 모델
  • 동일 context-carry 프롬프팅 전략
  • 동일 분석 파이프라인
    구현: src/models/ 에 이미 ollama_vlm.py 백엔드 존재 → config만 추가
    예상 소요: 모델당 ~4시간 (1,440 images)

Priority 3: Medium-Priority (Revision 대응용)

Ablation 7: Real Face Stimuli Comparison

목적: AI-generated faces의 OOD 효과 분리 (Bengio 지적)
설계:

  • FER-2013 또는 AffectNet subset에서 동일 6 emotions 이미지 선택
  • 동일 VLM + FER 모델로 평가
  • AI face vs real face 결과 비교
    예상 소요: ~6시간

Ablation 8: False Positive Rate by Race

목적: Angry classification의 race bias가 accuracy 차이인지 over-attribution인지 구분
설계:

  • 비-분노 얼굴 중 분노로 분류된 비율 (FPR)을 race별 산출
  • FPR(Black) > FPR(Korean)이면 → 실제 over-attribution
    구현: 기존 predictions.jsonl에서 산출 가능, 추가 실험 불필요
    예상 소요: ~30분

Ablation 9: Hidden State Analysis (CKA/RSA)

목적: VLM 내부 표상에 within-category 변별 정보가 존재하는지 확인 (Hinton 권고)
설계:

  • Gemma3의 중간 hidden states 추출
  • Image-level hidden state similarity matrix 구축
  • CKA/RSA로 human rating pattern과 비교
    구현: output_attentions=True로 이미 attention data 수집 중 → hidden states 추가 추출 필요
    예상 소요: ~4시간

실행 우선순위 및 일정

순서Ablation예상 소요누적논문 영향
1A5: Dark Knowledge1h1hSection 5.1 근본적 보강 (데이터 이미 존재!)
2A8: FPR by Race0.5h1.5hSection 4.5 bias 해석 정밀화
3A1: Text-Only Arousal2h3.5hStrength inversion claim 해소/확인
4A2: Single-Shot Prompting2h5.5hContext-carry confound 분리
5A3: Temperature Variation8h13.5hFixed-value pattern 원인 분리
6A6: Qwen Series4h/model17.5h+N=2 → N=4+ 일반화
7A4: FP16 Comparison3h20.5hQuantization 기여 분리
8A7: Real Face Comparison6h26.5hOOD generalization
9A9: Hidden State CKA4h30.5hRepresentation vs output 구분

최소 투고 요건: A1 + A2 + A5 + A8 (총 ~5.5시간)
경쟁력 있는 투고: A1-A6 (총 ~17.5시간)
완전체: A1-A9 (총 ~30.5시간)


코드 구현 참조

파일역할수정 필요
src/config.py : PromptConfig프롬프트 템플릿text-only, single-shot 추가
src/models/ollama_vlm.pyVLM inferencetext-only mode flag
configs/default.yaml실험 설정temperature, ablation flags
src/analysis/bias.pyLMM 분석FPR 계산 함수 추가
outputs/mlx/*/logits/Dark knowledge NPZ이미 수집됨 → 분석만
src/models/__init__.py모델 레지스트리Qwen 등록