docs/research/sota-2026-05-22/R5-subcarrier-saliency.md
Status: in-flight · Started: 2026-05-21
cog-pose-estimation (Conv1d 56 → 64 → 128 → 128) and cog-person-count (same backbone, different heads) both consume 56-subcarrier × 20-frame CSI windows. The 56 came from the upstream align-ground-truth.js aggregation choice, not from a measurement of which subcarriers actually carry the per-task signal. If we could rank subcarriers by their first-order influence on the trained model's output, three concrete wins follow:
This thread starts with the first item: measure per-subcarrier first-order influence on the v0.0.2 count model + the v0.0.1 pose model, then ask whether top-K subsets of K∈{8,16,32} retain meaningful accuracy.
For each model:
cog/artifacts/count_v1.safetensors and cog/artifacts/pose_v1.safetensors).S_k = mean_over_samples( |∂loss/∂x_k| · |x_k| ) for each subcarrier k. This is the standard "input × gradient" saliency from Sundararajan et al. (Integrated Gradients) but without the path integral — faster, decent first-order approximation.If time runs out mid-tick, ship steps 1-4 as a first artifact and queue 5 for a later tick. Steps 1-4 alone produce a real result (a ranked-subcarrier list per task).
ADR-097 mentions "subcarrier attention" abstractly; nothing measured. Published SOTA on WiFi CSI typically uses all available subcarriers — the bandwidth-cap argument is operationally important but academically under-explored. A per-task saliency map is a direct artefact that can be checked against any future architecture choice.
This tick's deliverable is:
examples/research-sota/r5_subcarrier_saliency.py that computes the saliency vector for either model.Step 5 (retrain on top-K) is queued for a subsequent tick.
cog-person-count v0.0.2 (this tick, 128 samples)| Rank | Subcarrier | Saliency |
|---|---|---|
| 1 | 41 | 0.0128 |
| 2 | 52 | 0.0120 |
| 3 | 30 | 0.0100 |
| 4 | 31 | 0.0097 |
| 5 | 10 | 0.0088 |
| 6 | 35 | 0.0088 |
| 7 | 2 | 0.0087 |
| 8 | 38 | 0.0083 |
Max-to-mean ratio: 2.85× — meaningful but moderate concentration. Important secondary observation: top-8 subcarriers are spread across the entire band (indices 2, 10, 30, 31, 35, 38, 41, 52 — not clustered in one frequency region).
wifi-densepose-signal's existing subcarrier selection in subcarrier.rs.