第 9 章 深度联合信源信道编码:语义通信的主要实现路线
9.1 什么叫做“联合信源信道编码”
传统系统:
$$ X\xrightarrow{\text{压缩}}\text{bits}\xrightarrow{\text{纠错}}\text{coded bits}\xrightarrow{\text{调制}}\text{signals}\to\text{channel} $$联合信源信道编码(JSCC)希望:
$$ X\xrightarrow{\text{一个映射}}\text{channel input}\to\text{channel}\to\text{channel output}\xrightarrow{\text{一个映射}}\hat X\ \text{或}\ \hat V $$也就是说,不再把“压缩”和“纠错”当作两个独立的模块,而是让编码器直接为信道生成合适的输入。
9.2 深度 JSCC 的基本结构
一个典型的 Deep JSCC 图像传输系统可以写成:
$$ \mathbf{x}\in\mathbb{R}^{H\times W\times C} $$编码器:
$$ \mathbf{z}=f_\theta(\mathbf{x})\in\mathbb{R}^{B} $$功率归一化:
$$ \mathbf{s}=\sqrt{P}\frac{\mathbf{z}}{\|\mathbf{z}\|_2} $$AWGN 信道:
$$ \mathbf{y}=\mathbf{s}+\mathbf{n},\qquad \mathbf{n}\sim\mathcal{N}(0,\sigma^2\mathbf{I}) $$解码器:
$$ \hat{\mathbf{x}}=g_\phi(\mathbf{y}) $$训练损失:
$$ \mathcal{L}=\mathbb{E}\left[d(\mathbf{x},\hat{\mathbf{x}})\right] $$其中 $d$ 可以是 MSE、L1、SSIM 或任务损失。
关键设计问题:
- 编码器输出维度 $B$ 怎么定?它决定“传给信道多少个符号”,相当于码率。
- 信道噪声强度怎么处理?是固定训练,还是让模型适应不同 SNR?
- 解码器是做“重建”还是“任务”?
- 要不要加量化、调制、熵模型?
- 接收端是否也有预训练先验/模型?
9.3 为什么深度学习 JSCC 有潜力
9.3.1 有限码长
香农分离定理是渐近结果。在短包、低延迟场景中,最优数字编码可能不是“先压缩再纠错”。
9.3.2 端到端任务
传统系统优化的是比特错误率,但用户真正关心的是任务。Deep JSCC 可以直接优化:
$$ \mathcal{L}=\lambda_d\,d(\mathbf{x},\hat{\mathbf{x}})+\lambda_t\,\ell(V,\hat V) $$9.3.3 信道鲁棒性
如果编码器在训练时见到多种信道噪声或衰落情况,它可以学会不把“脆弱但重要”的信息放在容易被噪声破坏的维度上。这正是“信道感知”的语义编码。
9.3.4 天然的可微性
如果信道模型是可知的,噪声采样和信道增益可以作为计算图中的操作,梯度可以顺利回传到编码器。
9.4 连续传输 vs 数字传输
许多 Deep JSCC 论文在仿真中使用“连续值传输”:
$$ \mathbf{y}=\mathbf{s}+\mathbf{n} $$这相当于把编码器的输出直接当作信道输入,不经过离散调制。优点是便于端到端训练和优化。缺点是:
- 并非所有实际无线系统都支持连续值传输;
- 对信道状态信息、量化、同步、硬件非线性敏感;
- 难以直接和现有 5G/6G 协议兼容。
因此,很多后续工作研究:
- 把输出量化成离散符号;
- 在连续特征和传统调制之间做近似;
- 用 Gumbel-Softmax 或直通估计处理离散操作;
- 设计“可微调制器”。
9.5 信道失配与自适应
实际中最常见的问题之一是:训练时的信道和测试时的信道不一样。
常见应对方法:
- 固定 SNR 训练:简单,但换一个 SNR 后性能可能急剧下降。
- 多 SNR 训练:在多个 SNR 下同训练,提高鲁棒性。
- SNR 感知编码:把 SNR 作为条件信息输入编码器/解码器。
- SNR 自适应解码:解码器根据估计的信道状态调整权重。
- 元学习/在线自适应:终端根据当前信道快速微调。
- 用户/任务自适应:不同接收端有不同的任务,需要不同的编码策略。
9.6 语义任务类型与损失
按任务分类:
| 任务 | 典型评价指标 | 语义编码重点 |
|---|---|---|
| 图像重建 | PSNR、SSIM | 保留视觉结构和纹理 |
| 图像分类 | Top-1 Accuracy | 保留类别判别特征 |
| 目标检测 | mAP | 保留位置、类别、尺度 |
| 图像检索 | Recall@K | 保留检索/嵌入相似度 |
| 文本翻译 | BLEU、TER、人工评分 | 保留句子语义,允许改写 |
| 语音识别 | WER | 保留音素/语言信息 |
| 语义分割 | mIoU | 保留区域与类别边界 |
| 机器人控制 | 任务成功率 | 保留动作、状态、代价 |
重点:不要在论文中只报一个 PSNR,就声称是“语义通信”。 最好同时报:
- 比特/符号级指标;
- 语义/任务级指标;
- 不同 SNR、不同压缩率下的曲线;
- 与传统数字方案、独立压缩+信道编码方案的对比。
9.7 典型研究场景举例
9.7.1 图像语义传输
发送端输入图片,编码器输出信道符号;接收端用解码器重建图像。常用损失包括 MSE、SSIM 和感知损失。
9.7.2 面向分类的图像语义传输
发送端只传与类别相关的特征,接收端直接分类。这样可以大幅压缩传输量,但不再保证可以重建原图。
9.7.3 图像检索
不传完整图片,而是发送图片嵌入向量;接收端在数据库中进行相似度检索。目标不是 PSNR,而是“检索到的结果是否正确”。
9.7.4 文本语义传输
发送端编码句子的语义表示,接收端用语言模型生成语义相同但表达不同的句子。这样可以容忍词级的差异。
9.7.5 语音语义传输
发送端提取音素、语义标签或语音嵌入,接收端进行语音识别或语音合成。目标可能是 WER 或任务指令理解率,而不是波形完全一致。
9.7.6 生成式语义通信
发送端只传高层语义描述,例如:
$$ \text{“一个人拿着狗在公园跑步”} $$接收端用生成模型生成一个符合语义的图像或视频。这种方式压缩率极高,但必须评估生成内容的准确性、一致性和幻觉风险。
9.7.7 大模型辅助语义通信
发送端把原始数据转化为语义 token 或 prompt;接收端用大语言模型、视觉语言模型补全上下文。这时:
- 大模型提供共享先验;
- 通信链路主要负责传“关键语义提示”;
- 安全和隐私、可验证性成为新问题。
9.8 Deep JSCC 与数字方案如何比较
在比较时,必须统一“公平”条件:
- 同样的带宽/符号数;
- 同样的 SNR;
- 同样的信道模型;
- 同样的任务和评价指标;
- 是否考虑延迟、复杂度、硬件实现。
文献中常见的结论大致是:
- 在低 SNR 或信道不确定时,Deep JSCC 常常更有鲁棒性;
- 在高 SNR 和工程约束较强时,经过良好设计的分立数字方案也可能更有优势;
- Deep JSCC 更适合任务导向、短包、低延迟、信道多变、需要语义级适应的场景。
不要轻易说“神经网络一定比传统系统好”。这是研究中最常见的误导。
9.9 鲁棒性与安全性
语义通信系统面临的新风险:
- 信道失配:训练/测试信道不一致。
- 语义攻击:攻击者篡改语义特征,使接收端误判或误导任务。
- 隐私泄露:语义特征可能包含敏感信息,即使不重建原图也能推断用户图像内容。
- 模型投毒/后门:共享模型被篡改后可能产生恶意行为。
- 语义缺失:发送方省略太多信息,接收方错误地“补全”内容。
- 跨域泛化:在训练数据上表现好,在未知场景/任务上退化。
如果你研究语义通信,鲁棒性、安全隐私、可信评估很可能比“单纯提高压缩率”更重要。
9.10 一个可以开始的实验思路
你可以从最简单的实验开始:
- 使用一个图像数据集,例如 CIFAR-10。
- 定义编码器、信道、解码器。
- 信道设为 AWGN,设置 SNR。
- 编码器输出固定长度向量,做功率归一化。
- 损失函数用 MSE 或分类交叉熵。
- 比较不同 SNR、不同压缩率、不同任务下的性能。
- 再和“JPEG + LDPC + QPSK”等传统方案对比。
这个实验会立刻让你体会到:
- 信道噪声如何影响学习到的表示;
- 压缩率和任务性能之间的权衡;
- 为什么“语义级评价”和“像素级评价”会给出不同结论。
第 9 章小结
- Deep JSCC 是语义通信最重要的工程实现路线之一。
- 它通过可微信道把发送端、信道、接收端和任务接在一个网络中。
- 连续传输便于训练,但实际硬件需要量化/调制适配。
- 信道失配、跨任务泛化、安全隐私是常见研究难点。
- 比较时最重要是公平,不要只报一个好看的数字。