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
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
−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.