谱回归核判别分析(Spectral Regression Kernel Discriminant Analysis,简称SRKDA)是将谱回归框架扩展到核空间的高效非线性判别分析算法。它通过核技巧捕捉数据中的非线性结构,同时保留谱回归避免密集特征分解的优势,在人脸识别、手写数字识别等非线性可分任务中表现出色。本文将深入解析SRKDA的预测函数实现,重点讲解其内存友好的分块计算策略以及对半监督模式的完美支持。
SRKDA预测的核心机制
SRKDA预测阶段的主要任务是将测试样本映射到训练时学到的核诱导判别子空间中,然后使用最近类中心规则进行分类。由于涉及核矩阵计算,测试样本与训练样本间的核相似度矩阵可能非常大(nTest × nTrain),直接一次性计算容易导致内存溢出。因此,该实现采用了智能的分块策略,确保在大规模测试集上也能稳定运行。
核心步骤如下:
分块计算测试样本与训练样本的核矩阵 KTest。
根据训练时是否为半监督模式,决定是否乘以预计算的 KtestHat 修正矩阵。
将核向量映射到低维判别空间,得到嵌入表示 Embed_Test。
计算嵌入后测试样本到各类中心的欧氏距离。
分配给距离最近的类中心对应的类别。
两种模式的支持
1. 普通监督模式
模型中只有一个投影矩阵model.projection和一组