尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

高光谱图像分类:融合费马距离与主动拉普拉斯学习

高光谱图像分类:融合费马距离与主动拉普拉斯学习 高光谱图像分类是遥感领域最常见的任务之一。每一个像素并不只是 RGB 三通道的颜色值而是一条跨越几十到几百个连续光谱波段的曲线。地物类别比如农田里的玉米、大豆、树林和建筑物往往需要根据整条曲线的形状才能区分。这类数据的现实问题是标注成本非常高高光谱影像通常需要专家结合地面调查才能在图像上逐像素确认地物类型某些场景还要实地采样。如果训练分类器时只有少量带标签像素普通监督模型很容易过拟合。半监督学习和主动学习就是为了缓解这个问题出现的。半监督学习把大量未标注像素也放进训练过程用数据本身的分布和流形结构辅助分类主动学习则反过来从候选像素中挑选最值得让专家标注的样本让每一次人工标注都花在刀刃上。Fermat Active Laplace Learning for Semi-Supervised Hyperspectral Image Classification 这类方法正是把两条路线结合起来的一种思路。这篇内容会先把三个基础组件拆开讲清楚再说明如何用费马距离构造图拉普拉斯如何把标签从少量标注像素传播到全部像素以及如何用主动学习策略决定下一批标注样本。读者理解后可以在公开高光谱数据集上复现一个基础实验也可以把其中图构建和样本选择模块迁移到自己的遥感分类任务里。1. 高光谱图像分类为什么需要半监督和主动学习结合1.1 高光谱像素的“图谱合一”特性与标记瓶颈高光谱图像最典型的特征是“图谱合一”。图像在空间上有长、宽两个维度同时每个空间位置还有一个几十到几百维的光谱维度。一个像素本质上是这条光谱曲线而相邻像素之间往往存在强烈的空间相关性同一块农田内部的光谱曲线相近同一片建筑屋顶材料的光谱曲线也相近。这种结构让高光谱数据天然适合图模型来表达因为图节点可以表示像素图边可以表示像素之间的光谱相似度或空间邻接关系。但监督分类在高光谱场景里会遇到一个很直接的瓶颈标注成本高。高光谱图像的标注不是普通图像打一个框或者标一个类别名而是逐像素判断地物类型。一张 Indian Pines 场景里包含农田、草地、树林等多种类别需要专家结合光谱曲线特征和地面真实调查才能确认。如果只标几十个像素类别多、类内变化大的时候监督模型很难学到稳定的边界。而整幅图像中未标注像素可能达到上万甚至几十万。怎么利用这些未标注像素是半监督学习和主动学习共同解决的问题。这里有一个容易被忽视的前提高光谱数据虽然是高维的但它并不是均匀地填满整个特征空间。不同地物类别在光谱特征空间里往往分布在不同的低维流形附近。噪声、光照变化、大气校正误差会让一些像素偏离类别中心。因此判断两个像素是否属于同一类不能只看欧氏距离是否接近还要看它们在数据流形上是否处于合理路径之内。这也是为什么引入新的距离度量比如费马距离会比纯欧氏距离更有潜力。1.2 半监督解决标注样本少主动学习解决标注价值不均衡半监督学习的核心观点是未标注数据也携带信息。即使不知道一个像素的类别它的光谱特征仍然可以帮助我们理解类别的整体分布、类的边界以及类与类之间的过渡区域。在图拉普拉斯半监督方法中未标注像素通过图上的平滑约束参与计算让相邻或相似的像素倾向拥有相同类别。这种机制特别适合像高光谱这样类别呈块状分布的数据。主动学习解决的是另一个问题当标注预算有限时应该请专家标注哪些样本。如果随机从农田区域抽选像素可能抽到很多已经很容易分类的样本它们对模型提升有限。主动学习会计算每个候选样本的“不确定性”或“信息量”优先选择模型当前最没把握的像素。把这个策略放到高光谱场景中意味着每次迭代只挑选最有价值的少量像素送给专家而不是一次性标注整张图。两种策略天然互补半监督学习让模型在标注很少时也能给出一个相对平滑的预测分布主动学习则用这个预测分布去判断哪些像素最值得额外标注。Fermat Active Laplace Learning 的逻辑就是在这个互补关系上建立的先用费马距离构造更贴合流形结构的图再用拉普拉斯学习传播标签最后用主动学习策略从传播结果里挑选下一轮标注样本。1.3 技术主线费马距离与主动拉普拉斯学习如何串联从方法名称看Fermat Active Laplace Learning 可以拆成三个关键词Fermat、Active、Laplace Learning。Laplace Learning 负责半监督标签传播Active 负责主动样本选择Fermat 是构造图和边权时的关键距离度量。三者不是独立拼接而是形成一条循环链路用费马距离计算像素之间的相似度构建稀疏图在图对应的拉普拉斯矩阵上求解标签传播通过传播结果计算未标注像素的不确定性选择不确定性最高且具有代表性的样本申请人工标注把新标注加入已知标签集合重新构图或重新传播直到预算用完。这个链路的关键在于图的质量直接影响拉普拉斯传播的效果而传播效果又决定主动学习选择样本的质量。如果图连接错误比如把两个不同类别的像素连在一起标签传播会把错误信息扩散如果主动学习只关注不确定性可能反复挑到同一大片区域里的相似样本造成预算浪费。所以后面每个模块都不能单独调优必须放到整条链路上看。2. 先理解三个基础组件图半监督、费马距离、主动学习2.1 图拉普拉斯半监督分类的基本流程图拉普拉斯半监督分类的前提是构建一个无向图。设整幅高光谱图像有 N 个像素每个像素是图中的一个节点。节点之间的边权重表示两个像素的相似程度常见做法先用 KNN 找到每个像素的 k 个近邻再按照高斯核计算权重$$W_{ij} \begin{cases}\exp\left(-\frac{|x_i - x_j|^2}{\sigma^2}\right), j \in \mathcal{N}_k(i) \ 0, \text{otherwise}\end{cases}$$其中x_i是第 i 个像素的特征向量可能是归一化后的光谱向量也可能是降维后的特征。构建 W 后计算度矩阵 DD 的对角元素是 W 每行权重的和。拉普拉斯矩阵通常有三种形式未归一化 L D - W对称归一化 L_sym I - D^{-1/2} W D^{-1/2}随机游走归一化 L_rw I - D^{-1} W。高光谱像素数量大、类别区域块状明显归一化拉普拉斯通常更稳定。有了图矩阵半监督分类的目标可以写成$$\min_F \sum_{i \in L} |F_i - Y_i|^2 \lambda \sum_{i,j} W_{ij} |F_i - F_j|^2$$第一项要求已知标注像素的预测 F_i 接近真实标签 Y_i第二项要求图上有边相连的像素预测尽量平滑。lambda控制平滑强度。求解这个目标可以直接解线性系统也可以使用迭代扩散方法。对每个像素得到的是各类别置信度向量再取最大值的类别作为最终标签。这里要注意半监督图方法的效果高度依赖于图的连通性。如果某些小类别像素在特征空间中离其他像素都很远KNN 可能把跨类别像素错误连接导致类别边界被抹平。高光谱数据中类内方差大、类间方差小的类别最容易出问题。2.2 从欧氏距离到费马距离为什么流形结构更可信欧氏距离在高光谱像素上最直观它直接衡量两条光谱曲线之间的平均差异。但欧氏距离假设特征空间是均匀的两点之间最短的直线就代表相似度。真实高光谱数据里同一类别像素可能因为光照、角度、物候条件变化产生连续漂移两个同类像素之间的欧氏距离甚至可能大于不同类像素之间的距离。仅靠欧氏距离构建图会把不相似但处于类别内部变化路径上的像素错误连接。费马距离是一种基于路径的距离度量它的中心思想是两点之间的有效距离不能只看直接连线而要沿着数据分布形成的“路径”累积成本。在点云密度较高的区域路径成本低在密度很低的区域路径成本高。一个常见的定义是$$d_F(x_i, x_j) \min_{\gamma} \int_{\gamma} w(x)^{-\beta} ds$$其中gamma是连接两个点的路径w(x)是对局部密度的估计beta控制密度惩罚的强度。beta越大路径越倾向于绕过密度低的地方。直观地说费马距离认为两个像素即使光谱直线上很远只要它们之间有很多中间样本逐步过渡仍然可能在同一个类别流形上因此距离会相对较短。实际实现时不需要对连续路径做积分。可以先用全体像素特征估计每个节点附近的密度然后为每对节点定义基础边权例如反密度权重再在图上运行 Dijkstra 最短路径算法得到任意两点之间的费马距离近似值。这种方法比欧氏距离更耗时但对类别连续变化的农田、山坡区域会有明显帮助。要注意“费马”这个名字在这里指距离度量和费马大定理没有直接关系也不必强行寻找某个“费马点”。在 Fermat Active Laplace Learning 中它的角色是替换图构建阶段使用的距离函数。2.3 主动学习选样策略不确定性、代表性和信息量主动学习面临的问题是有一个可以咨询的专家但每问一次都要消耗预算。选择什么样本最合理常见策略有三类。不确定性采样是最常用的方法。对未标注像素 x_i取分类器给出的类别概率向量 p_i计算预测熵$$H(p_i) -\sum_{c1}^{C} p_{ic} \log p_{ic}$$熵越大说明模型对这个像素的类别越没有把握。也可以用边际差值即最大概率和第二大概率之间的差差值越小表示越不确定。不确定性采样的问题是容易造成局部聚集。如果图中有一大片边界区域模型对其中所有边界像素都没有把握连续几轮选择可能把预算全部花在同一个区域。为了缓解这个问题可以加入多样性约束选了一批候选后要求它们在特征空间或空间坐标上尽量分散。常见做法是先用聚类对未标注像素分簇再从不同簇里挑选熵最高样本或者在每一轮选择时限制已经选中的样本彼此之间距离太近。还有一类基于影响/信息量的策略目标不是找最不确定样本而是找“标注后对全图预测影响最大”的样本。这类策略在拉普拉斯框架下可以近似计算闭环实验设计或方差减少但计算量更大。Fermat Active Laplace Learning 的主动学习模块通常建立在拉普拉斯传播结果之上因此可以组合不确定性采样和图上的邻域代表性既看当前置信度是否低也看该像素在图上的度数是否高因为高度数节点更新标签后更容易影响周围邻居。3. Fermat Active Laplace Learning 方法拆解3.1 整体框架从输入数据到逐轮标注决策Fermat Active Laplace Learning 的完整流程可以抽象为下面几步。输入是一幅高光谱图像的特征矩阵 X、初始的少量标注集合labeled_idx及标签y_labeled、未标注集合unlabeled_idx、主动学习预算budget和几个关键参数。第一个阶段是图构建。用费马距离计算像素之间的相似度构建稀疏 KNN 图并得到拉普拉斯矩阵 L。这个图一旦构建完成原则上可以固定复用标签传播阶段只需要修改标签项。第二个阶段是标签传播。在拉普拉斯平滑约束下计算每个像素的概率分布。对已标注像素预测结果要贴近真实标签对未标注像素预测结果要和邻居保持一致。第三个阶段是主动选择。基于传播得到的置信度计算每个未标注像素的不确定性同时考虑空间或特征空间上的多样性选出batch_size个样本。第四个阶段是人工标注和更新。把选出的样本交给专家标注更新已知标签集合回到标签传播阶段。随着标注数量增加预测置信度会越来越可靠主动选择也会从“挑边界样本”慢慢变成“挑剩余少数难类样本”。用伪代码描述如下def fermat_active_laplace_learning(X, labeled_idx, y_labeled, unlabeled_idx, budget, k10, beta1.0, lamb0.1, batch_size20, max_rounds10): # 1. 使用费马距离构建图 W build_fermat_weight_matrix(X, kk, betabeta) L normalized_laplacian(W) # 2. 循环主动学习 for round_id in range(max_rounds): # 标签传播 prob laplace_propagate(L, labeled_idx, y_labeled, unlabeled_idx, lamb) # 根据传播结果计算不确定性 uncertainty compute_entropy(prob[unlabeled_idx]) # 多样性约束下选择本轮标注样本 selected select_batch(unlabeled_idx, uncertainty, X, batch_size, diversityTrue) # 询问专家模拟时用真实标签替代 y_new query_oracle(selected) labeled_idx labeled_idx selected y_labeled y_labeled y_new unlabeled_idx list(set(unlabeled_idx) - set(selected)) # 预算判断 if len(selected) 0 or len(labeled_idx) budget: break return prob, labeled_idx这个伪代码展示了方法的技术骨架实际工程实现时还需要处理数据结构、稀疏矩阵存储、预计算缓存和异常分支。3.2 用费马距离构造加权图的具体实现构造费马距离图的第一步是估计每个节点附近的密度图。对于高光谱数据可以将节点用 KNN 邻域半径或核密度方式估计密度rho_i。密度越高说明该像素处于越密集的数据区域跨越该区域的路径成本越低。第二步是定义基础路径成本。可以采用$$c_{ij} \rho_{ij}^{-\beta}$$其中rho_{ij}可以是rho_i和rho_j的均值或最大值。为了让计算可行通常先按欧氏距离找较近的邻域候选只在候选边上做密度加权而不是维护完整稠密图。第三步是运行最短路径算法。对每个像素以它为源点运行 Dijkstra 算法计算到其他候选像素的费马距离。完整的全源 Dijkstra 计算量很大常见做法是先做稀疏化只保留每个像素的 k 个最近费马距离邻居或者只对锚点计算费马距离再传递给普通节点。第四步是把费马距离转成边权重例如$$W_{ij} \exp\left(-\frac{d_F(x_i, x_j)^2}{\sigma_F^2}\right)$$sigma_F可以用费马距离分布的某个分位数估计。权重越大表示两个像素在流形上越接近。这个实现中最大的坑是计算复杂度。N 个像素、N10000 以上的图像完整 Dijkstra 每次都要扫图整体代价很高。一般先使用空间分块或超像素分割把候选集合缩小再用费马距离在块内精细构图这样能在保持流形结构的同时减少计算时间。3.3 拉普拉斯标签传播从少数标注到全图预测构建好归一化拉普拉斯矩阵 L 后标签传播可以简化为求解$$F \arg\min_{Z} \sum_{i \in L} |Z_i - Y_i|^2 \lambda \sum_{i,j} W_{ij} |Z_i - Z_j|^2$$写成矩阵形式后可以得到线性系统$$(L \lambda I) F \lambda Y$$其中 Y 是已知标签矩阵已标注像素行是 one-hot 向量未标注像素行可以置零。lambda需要调参它控制标签项和平滑项的平衡。lambda太大标签只能保持在原始标注像素上无法充分传到远处lambda太小标签信息会过度扩散把不同类别区域都抹平成相似概率。如果使用对称归一化拉普拉斯 L_sym线性系统仍然可解。对于高光谱图像直接求逆不适合大 N通常用共轭梯度法或迭代扩散求解。迭代传播的过程中每一轮更新可以看作让每个节点吸收邻居标签信息再叠加自身原始标签约束。完成求解后F 的每一行就是像素的类别置信度。对主动学习来说这个置信度比单纯类别标签更有价值因为不确定性可以由置信度的熵计算出来。这也是为什么把 Laplace Learning 和 Active Learning 放在一起而不是先用某个分类器再用主动学习。拉普拉斯方法不仅给出预测还给出天然与图结构一致的置信度。3.4 主动选择策略哪些像素最值得申请标签在拉普拉斯传播得到置信度后可以用三种信号组合打分第一是熵。熵越高越值得标注这条规则解决“模型不确定”的问题。第二是图度数。如果一个未标注像素在图上有很高权重连接大量邻居标注它能直接影响更多样本的传播路径。可以定义$$score_i H(p_i) \cdot \log(\deg_i 1)$$其中deg_i是节点权重度。用乘积的形式让高不确定性且高影响力的节点优先被选中。第三是空间分散度。为了避免批量选择时重复可以在一次选 batch 时依次加入样本并惩罚与已经选中样本距离太近的候选$$score_i score_i - \alpha \min_{j \in S} d(x_i, x_j)$$S是当前 batch 中已经选出的样本集合alpha是惩罚系数。这个策略不需要额外训练实现简单对高光谱这样空间连续的数据很有效。完整的概率计算到样本选择建议写成可复用函数方便替换成其他主动学习规则。例如后续要对比随机选样、Marginal Sampling、QBC 等方法时只需要替换select_batch内部逻辑。4. 实验设计与验证方案4.1 常用数据集与评价指标高光谱分类研究中常用 Indian Pines、Pavia University、Salinas 等公开数据。Indian Pines 包含 145x145 像素、200 个左右有效波段类别数量多且类别间样本数很不均衡Pavia University 场景空间范围更大城市地物类型丰富Salinas 主要覆盖农业区域。使用这些数据集做实验时不要只看一个数据集的指标因为不同场景的类别分布、空间块状程度和噪声水平差异很大。评价指标一般用总体精度 Overall Accuracy即正确分类像素数占总测试像素数的比例平均精度 Average Accuracy即每个类别的分类精度先算一遍再取平均避免大类主导Kappa 系数用于衡量分类结果相对于随机分类的改善程度。在主动学习实验里最核心的不是最终某一次精度而是“标注预算-精度曲线”。横轴是标注样本总数纵轴是测试精度曲线上升越快、最终越高说明主动学习策略越有效。4.2 可复现的实验流程以 Indian Pines 为例可以按下面的流程搭建实验。数据预处理阶段先去除吸水带和噪声带然后做归一化。光谱波段之间数值范围差异很大常用最小最大归一化或标准化。如果像素数量太大可以先做主成分分析 PCA 降维保留 30 到 50 个主成分这样能缩短图构建时间也减少噪声影响。样本划分阶段从每个类别里抽取很少的标注样本作为初始集合例如每类 5 个像素其余作为测试集。这里要注意测试集不能和主动学习“查询”出的样本重叠否则会把人工标注信息泄漏到评估里。更严谨的做法是保留一个完全独立的测试集主动学习过程中查询到的样本只是补充到训练集不参与最终精度统计。实验对照阶段至少需要四条基线随机选样 图拉普拉斯传播用来验证主动学习是否比随机选样有效欧氏距离图 主动拉普拉斯传播用来验证费马距离构造的图是否有增益不使用主动学习只随机增加标注样本的监督分类器使用未标注像素的方式完全不同的半监督基线例如标签传播的经典实现或基于密度峰值聚类的方法。主实验阶段设置初始标注数、每轮选择数、最大轮数运行 Fermat Active Laplace Learning记录每轮结束后的测试精度、每类精度、Kappa 和选中的像素空间位置。4.3 结果分析该关注哪些维度不要只看总体精度上升就认为方法有效。真正有价值的结果分析要落回图结构。第一观察主动学习选中的像素分布是否偏向少数难类。如果连续几轮都选择同一类别的边界区域说明多样性约束没有起作用。可以统计每轮选中像素的类别占比理想状态是主动学习早期偏难分类的类别后期逐渐覆盖所有类别。第二关注单个类别的精度变化。在 Indian Pines 里有些类别本身样本很少图拉普拉斯路径难以跨越。加入费马距离后如果这些类别的召回率提升说明图构建质量确实改善了。第三对比欧氏距离图和费马距离图的边连接。可以随机抽取几个类别中心像素观察它们在图上的最近邻居是否来自同类。如果欧氏距离图连接了较多跨类像素而费马距离图减少了这种连接那么后续精度提升就有了解释力。第四要记录运行时间。半监督图方法虽然不训练深度模型但在大图上构建 KNN、运行 Dijkstra、求解线性系统都可能很慢工程上可复现性同样重要。4.4 消融实验设计消融实验可以按模块拆分A 组欧氏距离图 随机选样作为最弱基线B 组欧氏距离图 熵不确定性主动学习验证主动学习模块C 组费马距离图 随机选样验证费马距离图模块D 组费马距离图 熵不确定性主动学习验证两个模块组合E 组费马距离图 熵 多样性约束对应完整方法。对比 E 组和 D 组能看到多样性约束的作用对比 C 组和 A 组能看到费马距离在相同选样策略下的作用对比 D 组和 E 组能看到引入图度数、空间惩罚后是否进一步避免重复选择。每次实验固定随机种子主动学习的选择会直接影响后续序列所以随机种子不同可能导致精度波动较大建议至少跑 5 次取均值并记录标准差。5. 参数说明与调参建议5.1 关键参数速查表Fermat Active Laplace Learning 的参数可以分成图构建、标签传播、主动选择三组。下面是常见参数和注意事项。参数所属模块含义常见取值调大影响调小影响k图构建每个像素的 KNN 邻居数量5 到 30图更稠密连通性更好但错误边增加计算量变大图更稀疏容易断成孤立小图beta图构建费马距离中的密度惩罚指数0.5 到 2.0路径更倾向绕开稀疏区域流形保持更强但计算更敏感接近欧氏距离密度影响减弱sigma_F图构建高斯核带宽费马距离的 50% 到 90% 分位数权重变化平缓拉普拉斯平滑更强权重容易趋向 0图失去梯度信息lambda标签传播平滑惩罚强度0.01 到 1.0标签传播更平滑适合噪声数据更贴合已知标签但传播范围变小batch_size主动选择每轮申请标注数5 到 50预算消耗快选择更全局迭代慢选择更精细alpha主动选择空间多样性惩罚系数0.1 到 1.0选中样本空间更分散集中在高不确定性区域实际项目中不要直接照搬这些取值范围。高光谱数据波段数、类别数、图像大小不同最佳参数分布会跟着变。建议把参数搜索放在验证集上进行观察标注预算-精度曲线而不是只调最终一两个指标。5.2 邻域数量 k图连通性和错误边之间的权衡k 是最直观也最容易出问题的参数。k 太小很多像素可能没有有效邻居标签传播无法从标注像素扩展到较远区域k 太大距离较远的跨类像素会被强行连起来拉普拉斯平滑会把类别边界模糊掉。高光谱场景里推荐从 k10 开始。如果图像类别块状明显比如 Pavia University 的城市屋顶和草地边界清楚可以适当减小 k如果类别是连续渐变比如农作物生长阶段导致的类内变化需要适当增大 k。构建图时可以统计每个连通分量的节点数如果出现了多个只包含几个节点的孤立分量说明 k 太小。5.3 费马距离参数 beta流形保持力度的调节钮beta 控制费马距离对密度的敏感程度。beta 趋近于 0 时w(x)^(-beta)接近常数费马距离基本退化成最短路径长度主要由图结构决定beta 增大后低密度区域路径成本显著提高路径会被迫绕行这样能减少跨类别跳跃连接。但 beta 不是越大越好。beta 过大会导致最短路径变得非常绕很多本应相近的像素被拉开图边权重迅速衰减甚至出现大量接近 0 的边拉普拉斯矩阵数值不稳定。调 beta 时可以直接观察随机选出的像素对在费马距离下的排序是否符合直觉。例如选择同类别中心像素对时距离应显著小于跨类别像素对。5.4 主动学习批次大小与预算分配主动学习的预算是先定的例如总共只能申请 200 个标注。每一轮选 20 个那就跑 10 轮如果选 5 个则要跑 40 轮。批次大小影响的是标签传播和主动选择的更新频率。批次越小每一轮更新越频繁选择更精细但总运行时间更长批次越大一轮传播后模型变化明显但可能错过更细的选择顺序。在高光谱图上图构建和拉普拉斯求解是主要耗时部分。如果图是固定的每一轮传播代价不算太高。此时批次可以设小一点比如 10 到 20。如果每轮都要重新构造图批次就要大一些否则大量时间花在重复构图。生产环境里通常只在第一轮构建费马图后续轮次固定图结构只更新标签项这样能大幅提速。6. 常见问题与排查链路6.1 拉普拉斯矩阵数值不稳定现象是求解线性系统时出现 NaN、Inf或者输出的概率分布几乎全等完全没有区分度。可能原因有三个一是邻接矩阵 W 中有 NaN通常是距离计算时sigma_F为 0 或距离为负二是 W 中存在大量极小的权重归一化后度矩阵 D 的对角元素接近 0导致 D^{-1/2} 爆炸三是程序直接对稠密矩阵求逆内存溢出后结果被污染。排查时先打印 W 的统计量包括最小非零权、最大权重、度矩阵的最小对角值。如果发现度接近 0需要提高 epsilon 平滑项或构建图时给 W 加上一个很小的单位矩阵扰动。求解线性系统时使用稀疏矩阵格式和共轭梯度法避免显式求逆。6.2 主动学习选到大量同类样本现象是每轮选出的 20 个像素中 18 个来自同一个类别其他类别几乎不被选中。原因往往是熵不确定性在没有多样性约束时天然偏爱模型最不清晰的边界区域而高光谱图像中个别大类别边界面积很大连续多轮都会占满预算。也可能是图没有传递到某些小类别区域导致小类别像素的预测概率非常“确定”熵很低永远不会被选中。检查方式是统计每轮选中样本的真实类别分布打印样本在图像中的坐标。处理方案是加入空间惩罚系数 alpha或在选择前对未标注像素做聚类每簇保留排名最高的候选。更彻底的做法是加入类别平衡约束根据当前已知标签的类别频率给样本少的类别乘一个权重。6.3 费马距离图构建太慢高光谱图像像素数量很大时欧氏距离 KNN 本身已经耗时费马距离还要执行最短路径算法。如果实现把所有像素两两距离全部算出来内存和耗时都会不可接受。排查步骤是先统计像素总数、特征维度、KNN 阶段的耗时和最短路径阶段耗时。如果是 KNN 阶段慢改用近似最近邻库或先做 PCA 降维如果是 Dijkstra 阶段慢采用只选择锚点像素计算费马距离再通过锚点距离插值普通像素的方案。最简单的工程化策略是先对图像做超像素分割得到几百到几千个区域中心只在中心点上运行费马距离构图然后给区域内部像素分配锚点对应的图结构。6.4 类别不平衡导致标签传播偏向多数类在 Indian Pines 中某些类别只有几十个样本而大类有上千个样本。初始标注按每类 5 个抽样时小类在图中占比极低。拉普拉斯平滑天然会把小类别概率扩散到大类区域使小类召回率很低。检查方式看每类混淆矩阵重点关注小类是否被预测为大类。处理方式有三种一是初始标注时保证每类至少 5 到 10 个样本二是在平滑损失里给标签项加类权重小类样本的标签约束更强三是主动学习选择时按类别分层配额每轮选样本前先按类别比例划分候选名额。第三种方法在标注预算有限时最有效因为能强迫模型覆盖小类区域。下面把常见问题整理成速查表问题现象可能原因检查方式处理建议拉普拉斯求解结果全是 NaNW 含非数值或度矩阵接近 0打印 W、D 统计量修正距离计算加单位矩阵扰动精度在主动学习几轮后不再上升选到的样本高度重复缺少多样性打印每轮选中样本坐标和类别分布加空间惩罚或分簇选择费马距离构图时间太长全源 Dijkstra 或稠密距离矩阵分别统计 KNN 和最短路耗时超像素降规模锚点计算小类别始终预测错误图不连通或标签平滑过度看混淆矩阵小类召回率增加小类标签权重主动分层配额不同随机种子下精度波动极大初始标注太稀少传播不稳定多次运行并记录标准差每类保证初始样本数固定图结构7. 最佳实践与扩展方向7.1 可复用清单从数据到评估在动手实现前按下面的清单检查可以避免大部分返工。数据检查确认像素是否包含背景类背景像素是否应该从图中剔除确认波段是否已经去噪和归一化确认标注像素的类别分布。划分检查测试集与主动学习查询集严格分开评估时不使用任何主动查询样本。图构建检查KNN 是否出现孤立分量边权是否出现 NaN 或全部为 0费马距离计算是否只基于特征而不是测试标签。传播检查拉普拉斯矩阵是否对称lambda是否在合理范围求解是否收敛。主动学习检查是否对选择结果做了类别和空间分布统计是否添加了多样性约束。评估检查同时记录 OA、AA、Kappa、每类召回率和运行时间。稳定性检查至少多次运行记录平均值和标准差确保不是随机种子带来虚假优势。7.2 与深度模型结合的扩展方向图拉普拉斯方法在特征维度低时可解释性好但当像素光谱特征复杂时手工特征往往不够。实际项目中可以先让预训练的 1D-CNN 或光谱 Transformer 提取高光谱像素的高级特征再用这些特征构建费马距离图。这样图节点仍代表像素边权重反映的是深层特征空间中的流形关系比原始光谱直接构图更稳定。另一种结合方式是把费马距离当作正则项融入深度训练。例如在深度分类器的损失函数里加一项图平滑损失让相邻像素的预测概率尽量接近。这样深度模型既受益于大量未标注像素的分布信息又能通过费马图避免在大梯度过渡区域误分类。训练时要注意批量大小和图节点的对齐不能随机构建 batch否则图结构断裂。深度方法的最大问题是计算资源。高光谱图像像素多如果把每个像素都当独立样本做 Transformer显存很难承受。常见方案是先做超像素聚合把几千个超像素作为 token图拉普拉斯则构建在超像素图上。这样不仅能跑动还能让标签传播在更粗粒度上更快稳定。7.3 弱监督、噪声标签与跨域扩展半监督高光谱分类在实际生产里还会遇到标注不准确的情况。地面真值图中可能存在少量错误标签如果拉普拉斯学习把错误标签沿图传播影响会被放大。此时可以在标签项中使用鲁棒损失比如对置信度低的已标注像素降低约束权重或者引入标签噪声估计模块。跨域场景中模型在一幅图上训练再换到另一幅光照条件不同的图代价通常是精度下降。费马图可以帮助缓解一部分域差异因为图结构依赖的是数据流形而不是绝对光谱幅值。不过更完整的解决思路是把图方法用作后处理先用域适应模型得到初始概率再在新图上做拉普拉斯平滑。这样不需要重新训练也保留了流形约束的好处。如果读者想在论文或项目中持续改进这个方法最有价值的切入点是从主动学习策略入手。当前多数图主动学习只使用单轮不确定性而拉普拉斯传播的闭环结构允许我们模拟“选择样本 - 加入标签 - 重新传播 - 观测不确定性下降”的完整过程。设计一个能提前估计全图不确定性下降幅度的选择策略通常比单纯提高熵计算复杂度更有理论价值也更能在高光谱细分类任务中拉开差距。回到 Fermat Active Laplace Learning 本身它的价值不在于某一个单独模块有多深而在于把距离度量、半监督传播和主动选择三个环节串成了一个闭环。实际动手时建议先在小规模子图上跑通确认图构建、传播、选择、评估每一步输出都符合预期再逐步扩展到整幅图像。对做高光谱遥感应用的人来说掌握这种框架比记住某个数据集上的精度数字更重要因为不同场景下真正决定分类效果上限的往往不是分类器本身而是样本之间相似度的定义方式。
返回列表