跳到主要内容

3.2 深度学习DOA估计的基本任务形式

进入正题之前,先做一件事:建立全局地图。

深度学习 DOA 估计的文献读多了,很容易在各种方法的细节里迷失——这篇用分类、那篇用回归,这篇输入协方差矩阵、那篇直接输入 IQ 数据,输出有角度值、有概率向量、有伪谱……各种组合看起来眼花缭乱。但只要把"输入是什么"和"输出是什么"这两个维度想清楚,整个方法空间就会豁然开朗。

本节的核心锚点就是下面这张表。读者朋友们先把它看懂,后续 3.4 至 3.6 节的内容都是在这张表的框架下展开的。

维度主要选项简要说明
输入特征协方差矩阵(CM)对观测数据做二阶统计,损失相位绝对参考
原始 IQ 数据直接输入阵列复数采样,信息最完整
任务形式分类(Classification)角度空间离散化,预测信号落在哪个格点
直接角度回归(Regression)直接输出连续角度值
伪空间谱回归(Spectrum Regression)输出一条空间谱曲线,峰值对应 DOA
信源数处理单信源输出单个角度或单标签概率
多信源(数目固定)输出多个角度或多标签概率
多信源(数目未知)由伪谱峰值检测或额外分支估计

这张表定义了深度学习 DOA 估计的"设计空间"。接下来,我们把每个维度逐一讲清楚。


3.2.1 输入特征:给网络喂什么数据

网络的第一道门槛,是决定把观测数据以什么形式送进去。

协方差矩阵(Covariance Matrix,CM) 是目前文献中最常见的输入形式。回忆第一章的推导:

R^=1NXXHCM×M\hat{\mathbf{R}} = \frac{1}{N}\mathbf{X}\mathbf{X}^H \in \mathbb{C}^{M \times M}

协方差矩阵浓缩了阵列数据的二阶统计信息,MUSIC、ESPRIT 都是以它为出发点的。用它作为网络输入,是"在经典方法已证明有用的数据表示上进行深度学习",也是最早期深度学习 DOA 研究的主流选择。

协方差矩阵是复数 Hermitian 矩阵,神经网络通常处理实数,所以实际输入时需要做格式转换。常见的做法有两种:一是只取下三角部分(因为 Hermitian 矩阵上下三角互为共轭,不含额外信息),将其实部和虚部展开成一个实数向量,送入 MLP;二是将整个矩阵的实部、虚部(有时还加上相位)分别作为独立通道,拼成一个三通道的"图像",送入 CNN。后者能更好地保留矩阵的二维空间结构,卷积层可以提取局部的相关模式,在低 SNR 场景中被证明有更强的特征提取能力。

协方差矩阵输入的主要局限,在于它是一种"有损压缩":从 XCM×N\mathbf{X} \in \mathbb{C}^{M \times N}R^CM×M\hat{\mathbf{R}} \in \mathbb{C}^{M \times M},快拍之间的相位绝对关系被消掉了(协方差只保留了两个采样点之间的相关性,而非各快拍的绝对相位)。也就是说,协方差矩阵本身不是"最优统计量",仍有信息被丢弃。

原始 IQ 数据 是另一种路线。把阵列各阵元在 NN 个快拍时刻的复数采样直接送入网络,不经过协方差矩阵这一步。具体做法是,将第 mm 阵元的观测序列 xm[n]x_m[n] 拆分为实部序列 Rm[n]R_m[n] 和虚部序列 Im[n]I_m[n],然后按阵元排列成矩阵:

MIQ=[R1[0]R1[1]R1[N1]RM[0]RM[N1]I1[0]I1[1]I1[N1]IM[0]IM[N1]]R2M×N\mathbf{M}_{\text{IQ}} = \begin{bmatrix} R_1[0] & R_1[1] & \cdots & R_1[N-1] \\ \vdots & & & \vdots \\ R_M[0] & \cdots & & R_M[N-1] \\ I_1[0] & I_1[1] & \cdots & I_1[N-1] \\ \vdots & & & \vdots \\ I_M[0] & \cdots & & I_M[N-1] \end{bmatrix} \in \mathbb{R}^{2M \times N}

这个 2M×N2M \times N 的矩阵保留了全部原始信息,可以作为一个二维特征图直接送入 CNN 或 ResNet。这种输入方式绕过了协方差矩阵的计算,理论上信息更完整,在快拍数充足的条件下往往能达到更好的估计精度。实验也表明,以 IQ 为输入的 ResNet(IQ-ResNet)在全 SNR 范围内、各快拍数配置下均能优于基于协方差矩阵的方法。代价是:2M×N2M \times N 的矩阵比 M×MM \times M 的协方差矩阵维度更高,网络输入更大,对训练数据量和计算资源的要求也更高;同时,随着快拍数 NN 变化,输入尺寸改变,网络需要重新设计或重新训练。

两种输入方式没有绝对的优劣,而是各有适用场景。选择时主要考虑三点:一是计算资源是否允许处理更大维度的输入;二是快拍数是否固定(IQ 输入对 NN 更敏感);三是目标场景的 SNR 范围(低 SNR 下 IQ 的优势更明显)。在 3.3 节讨论数据集构建时,这两种格式的构造方法会给出具体代码。


3.2.2 任务形式:让网络预测什么

确定了输入,下一个问题是输出侧的设计,也就是"把 DOA 估计建模成什么类型的机器学习任务"。目前主流的有三种形式。

分类(Classification)

分类的思路是:把连续的角度范围离散化,划分成 DD 个格点,每个格点作为一个"类别",让网络预测信号落在哪个格点(或哪几个格点)。

形式上,定义角度格点集合:

Q={qmin,qmin+Δq,qmin+2Δq,,qmax}\mathcal{Q} = \{q_{\min}, q_{\min} + \Delta q, q_{\min} + 2\Delta q, \cdots, q_{\max}\}

其中 Δq\Delta q 是格点间距(分辨率),D=(qmaxqmin)/ΔqD = (q_{\max} - q_{\min})/\Delta q 是类别总数。例如,角度范围 [60°,60°][-60°, 60°]、分辨率 1°,则 D=120D = 120

网络最后一层输出 DD 维向量,经过激活函数后解读为各角度格点处"有信号"的置信度。标签(训练目标)对应真实 DOA 处的格点位置。

这里有一个值得特别说明的地方:单信源和多信源对应不同的激活函数和损失函数设计,而标签的组织逻辑在两种情形下也有所不同,我们统一在 3.2.3 节的"信源数与标签"部分说明,3.4 节不再重复。

分类的直观优势在于:任务形式简单,网络训练稳定,不需要处理角度排列(哪个角度对应哪个输出端口)的问题。主要限制是网格失配(grid mismatch):真实 DOA 是连续的,分类只能输出格点,精度天花板由 Δq\Delta q 决定。想要精度高就必须格点密,格点密则输出维度 DD 增大,训练难度和推理开销随之上升。

直接角度回归(Direct Regression)

直接回归绕开了离散化:网络的输出层直接输出 LL 个实数,对应 LL 个信源的角度估计值(LL 为预设的信源数)。标签就是真实角度,损失函数用均方误差(MSE)。

为了让网络输出与角度范围匹配,通常在输出层加一个 Tanh 激活函数,将输出限制在 (1,1)(-1, 1) 之间,训练时把角度也归一化到这个区间(比如 [90°,90°][-90°, 90°] 线性映射到 [1,1][-1, 1]),推理后再反归一化。

直接回归的优势是理论上精度无上限,不受格点间距约束,是真正的连续估计。但它有自己的挑战:当信源数 L2L \geq 2 时,输出的 LL 个角度值与 LL 个真实 DOA 之间存在配对问题(permutation ambiguity)。训练时如果不处理好配对,同一批次内不同样本的标签顺序不一致,损失函数会"混乱",网络根本学不到正确的映射。处理方法通常有两种:强制对输出和标签都按升序排列(最简单,但对网络有隐含约束);或使用匈牙利算法(Hungarian algorithm)做最优配对,逐样本找最小代价的对应关系后再计算损失。

伪空间谱回归(Pseudo-Spectrum Regression)

这是第三种形式,思路是让网络输出一条"类空间谱"曲线,而不是直接输出角度。具体地,网络输出一个 DD 维向量 s^RD\hat{\boldsymbol{s}} \in \mathbb{R}^D,每个分量对应一个离散角度格点处的谱值(或置信度),训练时要让输出曲线与一条"参考谱"尽量接近。参考谱通常在真实 DOA 位置处设置一个峰值(比如高斯形状),其余位置为零或小值:

fref(ζω)=k=1KAkexp ⁣((ζωθk)2σG2)f_{\text{ref}}(\zeta_\omega) = \sum_{k=1}^{K} A_k \exp\!\left(-\frac{(\zeta_\omega - \theta_k)^2}{\sigma_G^2}\right)

推理时,从网络输出的谱曲线上做峰值检测,峰值位置即为 DOA 估计结果。

这种形式有几个有趣的性质:它不依赖于预先知道信源数(峰值检测本身可以适应不同信源数),输出形式与经典 MUSIC 伪谱在直觉上高度一致,方便与经典方法比较和融合;并且,只要谱曲线的分辨率足够,精度同样不受格点约束(峰值可做插值)。不足之处是:如果谱曲线不够平滑,峰值检测容易出错;训练时需要精心设计参考谱(σG\sigma_G 的选取直接影响精度和收敛),训练难度比分类稍高。


3.2.3 信源数与标签设计

无论选择哪种任务形式,都绕不开一个问题:单信源还是多信源,标签怎么设计。这里统一说明,避免后续章节反复解释。

单信源是最简单的情形。每个训练样本对应一个信源,角度 θ\theta 在训练范围内均匀随机采样。

在分类任务中,标签是一个 DD 维的 one-hot 向量:在 θ\theta 对应的格点处为 1,其余为 0。网络输出层用 Softmax,损失函数用交叉熵(CE)。

在直接回归任务中,标签就是一个标量 θ\theta(归一化后),网络输出层输出一个标量(或经过 Tanh 的一维向量),损失函数用 MSE。

多信源(信源数固定为 KK 是常见的多目标场景。每个训练样本包含 KK 个信源,角度组合在训练范围内随机生成,通常保证任意两个角度之间有最小间隔(以避免过于极端的角度组合使训练集分布失衡)。

在分类任务中,标签是一个 DD 维的多热(multi-hot)向量:KK 个真实 DOA 对应的格点处为 1,其余为 0。网络输出层改用 Sigmoid(每个格点独立二分类),损失函数改用二元交叉熵(BCE)。推理时,从 DD 个 Sigmoid 输出中取置信度最高的 KK 个格点作为预测结果。

在直接回归任务中,标签是 KK 个角度的有序集合(通常按升序排列),网络输出层输出 KK 个实数,损失函数用 MSE(注意需处理配对问题,见上文)。

多信源(信源数未知) 是更贴近实际的情形,也是最复杂的情形。在分类和伪谱回归框架下,这个问题可以被优雅地规避:网络始终输出固定长度 DD 的向量(空间谱或类谱),真实的信源数通过推理时的峰值检测动态确定,不需要在网络输出层做任何修改。这正是伪谱回归方法的一个实用优势。在直接回归框架下,信源数未知则需要额外的处理——比如多任务学习(同时预测信源数和各信源角度),或使用集合预测的网络结构,复杂度明显提高,本教程不展开。

下面用一个简洁的总结,把三种任务形式在标签和输出层设计上的关键参数并排呈现:

任务形式输出层激活标签格式(单信源)标签格式(多信源,KK 固定)损失函数
分类Softmax / Sigmoidone-hot,DDmulti-hot,DDCE / BCE
直接角度回归Tanh标量 θ[1,1]\theta \in [-1,1]KK 维角度向量(升序)MSE
伪谱回归Sigmoid / ReLUDD 维参考谱DD 维参考谱(多峰)MSE

3.2.4 任务形式的选择逻辑

把以上内容整理清楚后,一个自然的问题是:实际动手时,应该选哪种任务形式?

没有放之四海而皆准的答案,但有几条经验性的判断原则:

首先,如果希望工程实现简单、训练过程稳定,从分类入手是最可靠的选择。它的标签设计直观,损失函数行为可预期,调试起来最容易。代价是精度受格点间距约束,适合对分辨率要求不极端的场景。

其次,如果需要连续、高精度的角度估计,并且信源数固定已知,直接角度回归是更自然的形式。它的精度理论上无上限,但配对问题需要仔细处理,训练稳定性相对较低,超参数(学习率、损失权重等)的调节经验要求更高。

再者,如果信源数可能变化,或者希望输出结果易于与经典方法(如 MUSIC 伪谱)进行比较和可视化,伪谱回归是灵活性最好的选择。它在信源数估计这个问题上无需额外设计,但参考谱的构造和峰值检测的可靠性需要精心调校。

对于本教程的初学者,推荐的起点是:从分类任务开始,用协方差矩阵或 IQ 数据作为输入,先把整个训练-推理-评估的流程跑通;在此基础上,把输出层改成回归,感受两种任务形式在代码和性能上的具体差异。这正是 3.7 节将要提供的两个最小可运行示例的思路。


3.2.5 小结

本节围绕"输入是什么"和"输出是什么"两个维度,建立了深度学习 DOA 估计的任务框架。

输入侧有两条路:协方差矩阵(CM)在经典方法已证明有用的数据表示上做深度学习,信息量有所损失但维度较小;原始 IQ 数据保留最完整的信息,在 SNR 范围宽、快拍数充足时往往更优。输出侧有三种形式:分类对角度离散化,标签设计直观,精度受格点约束;直接回归输出连续角度,精度更高,但配对问题需要处理;伪谱回归输出类空间谱,对信源数变化最灵活,与经典方法的联系也最自然。信源数和标签的设计统一遵循"单信源用 one-hot/标量,多信源用 multi-hot/向量,伪谱任务统一用参考谱"的原则。

有了这张全局地图,接下来就可以进入每个环节的具体实现了。3.3 节首先解决数据的问题:怎样用仿真生成训练数据,数据长什么样,怎样把它处理成网络可以直接接受的输入格式。