CLOSING THE GAPS · RATE-ADAPTIVITY + REACTIVE JAMMING

Two fixes attempted. One failed, one worked.

The rigorous v2 test left two honest gaps: the learned code lost to digital in good channels, and it faced only a non-reactive jammer. Here I tried to close both — an SNR-adaptive encoder/decoder, and a reactive jammer with adversarial training. Reporting both outcomes straight, including the one that didn't pan out.

Attempt 1 — rate adaptivity (did not close the gap)

Idea: condition the encoder and decoder on the operating SNR so they can encode fine detail when the channel is good and coarse-but-robust structure when it isn't — the JSCC analogue of adaptive modulation.

SNR-adaptive JSCCnon-adaptive JSCC (v2)rate-adaptive digital
23 25 26 27 29 30 -2 0 2 4 6 8 10 12 15 18 crossover SNR (dB) PSNR (dB)
The honest negative: the SNR-adaptive curve sits almost exactly on the non-adaptive one, and both still lose to digital above ~6 dB (by 2.9 dB at 18 dB). Conditioning made the model aware of the SNR but didn't give it more to send — a fixed-bandwidth analog code can't manufacture the extra information a good channel could carry. The low-SNR-analog / high-SNR-digital crossover is fundamental, not a tuning artifact. Genuinely closing it needs a different mechanism — variable bandwidth (send more symbols when SNR allows) or a hybrid digital-analog code — not just conditioning. Worth knowing, and worth not overclaiming.

Attempt 2 — reactive jamming & adversarial training (worked)

A follower jammer senses which symbols carry the most energy and jams exactly those; a worst-case adversarial jammer runs gradient ascent to find the most damaging power-constrained perturbation. We compare the standard adaptive model against one adversarially trained against the follower jammer.

standard modeladversarially-trained model
0 6 12 18 23 29 26.2 25.4 no jammer 19.9 22.9 follower jammer 22.6 23.0 worst-case adversarial
−6.3 dBthe follower jammer's damage to the standard model
+3.0 dBrecovered by adversarial training

A sensing jammer is a real threat to a neural link — it cuts the standard model from 26.2 to 19.9 dB. Training against it recovers 3.0 dB, and the robustness transfers to the worst-case adversarial jammer (23.0 vs 22.6 dB). The cost is small: 0.8 dB on a clean channel. This is the defense-relevant win — and it says a neural comms system must be adversarially hardened by design, not just trained on nice noise.

Honest verdict

Two attempts, reported straight: rate-adaptivity via conditioning failed to beat digital in good channels (the crossover is fundamental to analog JSCC — a real architectural limit, not a bug), while adversarial training succeeded at defending a reactive jammer that badly hurts an unhardened model. Net picture across v1→v3: this technology's honest home is the hard, contested, low-SNR regime — where it degrades gracefully, never outages, and (once hardened) resists smart jamming — and it should hand off to classical coding when the channel is good. Remaining gaps stay as stated in v2: still a simulation, perfect receiver CSI, information- theoretic digital baseline, and hallucination risk that argues for verifiable residuals in critical uses.

Reproduce: python3 train.py both && python3 evaluate.py && python3 make_report.py.