Nyström核近似:两个地标选在同一方向,伪逆也补不回另一维

昨天 2阅读

核模型需要比较许多样本对,完整相似度矩阵可能占用大量内存。Nyström方法只选少量样本作地标,再利用这些列近似全矩阵。实施时除了决定留几个地标,还要检查它们覆盖了哪些方向。下面的小例适合拿来验收AI生成的核近似代码。

Nyström核近似:两个地标选在同一方向,伪逆也补不回另一维

AI生成的概念示意图:地标所覆盖的方向决定可重建的信息范围;不是精确坐标图或模型实测结果。

先把列和小方阵取对

四个教学样本依次为A=(1,0)、B=(2,0)、C=(0,1)、D=(1,1),使用线性核k(x,y)=x与y的点积。完整核矩阵K的四行依次是(1,2,0,1)、(2,4,0,2)、(0,0,1,1)、(1,2,1,2)。它记录的都是样本间的内积。

选A、B作地标,记所有样本对地标的核值为矩阵Cₗ,其四行是(1,2)、(2,4)、(0,0)、(1,2)。地标彼此的核值组成W,两行是(1,2)、(2,4)。下标用来避免把矩阵Cₗ和样本C混淆。

采用标准形式K̃=CₗW⁺Cₗᵀ,W⁺表示Moore–Penrose伪逆。W的第二行是第一行的两倍,普通逆不存在。这里W⁺=W/25,可以直接代入复算;伪逆保留非零特征值对应的方向,在零特征值方向上不求倒数。

算完以后,检查哪里被抹掉

乘得K̃的四行是(1,2,0,1)、(2,4,0,2)、(0,0,0,0)、(1,2,0,1)。A、B相关的条目保持了,C的自相似度却从1变成0,D的自相似度从2变成1,C与D的相似度也丢了。

把四点的横坐标写成a=(1,2,0,1),纵坐标写成b=(0,0,1,1),便有K=aaᵀ+bbᵀ,而K̃=aaᵀ。误差恰好是bbᵀ,其中四项为1,其余为0,因此Frobenius误差为√4=2。相对于原矩阵的范数√42,误差比例约为0.308607。

这说明计算顺利结束不等于信息保全。伪逆让奇异小矩阵能够参与运算,但A、B都只提供横轴方向,纵轴没有因为换一种求逆方式而出现。

地标数量相同,覆盖范围可以不同

现在仍选两个地标,但改成A、C。W变成二阶单位矩阵,Cₗ的每一行恰好是原样本的两个坐标,故CₗW⁺Cₗᵀ=XXᵀ=K。这次完整恢复,是因为两个地标张成了本例的全部特征空间。

一般数据里并不知道少量地标是否覆盖全部有效方向,核空间也可能远高于二维。这个特例不能推出“两个地标总够用”,更不能推出Nyström一定得到同样秩下的最佳近似。它只展示了预算相同而选择不同,结果仍可明显变化。

再拿新点E=(0,2)作检查。它与A、B的核值都是0,沿第一组地标得到的近似相似度全为0;真实结果却是(0,0,2,2)。增加新查询不会自行修复原先遗漏的方向。

选地标时,也不宜只凭原始坐标看起来分散就下结论。对于非线性核,真正相关的是核特征空间里的覆盖情况。本例采用线性核,正是为了让遗漏方向能够直接看见,而不是把某种地标选择策略包装成通用最优方案。

用于监督学习时,还应先划分训练与验证数据,再从允许使用的训练样本中确定地标和预处理规则。比较多个地标方案时使用同一份验证清单,才能把选择差异与评估样本差异区分开。

把实现检查写进验收条件

  • 固定核函数、样本顺序和地标ID,核对Cₗ与W的形状及对应关系

  • 让AI同时交出完整小矩阵与近似矩阵,报告误差范数和具体丢失的条目

  • 测试共线地标、不同方向地标和新样本,保存伪逆截断阈值

若为了稳定性把W⁺换成(W+λI)⁻¹,应记录这是另一种正则化处理。本例λ=1时只会把aaᵀ缩为原来的5/6,纵轴仍未回来。最终还应在固定验证集上比较下游任务表现,不能把这个四点计算解释为真实分类质量保证。

资料核对日期:2026年10月3日。数据为原创教学设定,已用Python独立复算矩阵、伪逆和新点结果,未进行模型训练或生产效果测试。

参考资料

Gittens与Mahoney:Revisiting the Nyström Method,第2节

scikit-learn:核近似与Nyström方法


文章版权声明:除非注明,否则均为云鹊BLOG原创文章,转载或复制请以超链接形式并注明出处。