用 AI 比较线性 CKA:两层坐标都换了,表征相似度为何仍然是一
比较两个网络层时,直接逐坐标相减可能把“坐标系变了”误认为“样本关系变了”。线性CKA比较的是成组表征的相似结构。先用同一批样本做一个四行矩阵练习,就能知道分数为1究竟保留了什么,又没有承诺什么。
AI生成的概念示意图:同一组配对对象在另一套坐标下仍可保留相对关系;并非真实网络可视化或精确数据图。
行是同一个样本,列才是特征
设X四行依次为(1,0)、(-1,0)、(0,1)、(0,-1)。每列均值已经是零。另一个表征Y把每行旋转九十度,依次为(0,1)、(0,-1)、(-1,0)、(1,0)。行身份必须一一对应,不能为获得好看分数随意重排其中一边。
对已经逐列中心化的X和Y,线性CKA等于“Y转置乘X的Frobenius范数平方”,除以“X转置乘X的Frobenius范数”与“Y转置乘Y的Frobenius范数”的乘积。Frobenius范数就是矩阵所有元素平方求和后开方。
旋转以后,为什么仍然得到一
X转置乘X是对角矩阵diag(2,2),其范数为√8。旋转后的Y也得到同一个对角矩阵。Y转置乘X的非零项为2和-2,平方和是8。因此CKA=8/(√8×√8)=1。
这里逐行的X与Y明明不同,但样本之间的内积关系保持了。若把Y整体再乘3,分子放大9倍,分母中Y的那一项也放大9倍,比例仍为1。整体非零缩放不改变结果,不表示各列可以任意独立拉伸。
只拉长一个方向,结论就不同
另建Z,只把X第一列乘2。四行成为(2,0)、(-2,0)、(0,1)、(0,-1)。Z转置乘X为diag(4,2),平方和20;Z转置乘Z为diag(8,2),范数√68。
于是CKA(X,Z)=20/(√8×√68)=5/√34,约0.857493。Z与X之间仍有可逆线性关系,第一列除2即可恢复,但线性CKA没有把这种各向异性缩放视为完全相同。这使它保留了对各方向相对尺度的敏感性。
先验收配对和中心化,再解释分数
可让AI按顺序交付:“记录样本ID与层名;每列减均值;写三个小矩阵;输出分子、分母与CKA;用统一平移、正交旋转和单列缩放检查边界。”本次用矩阵公式与样本Gram矩阵公式分别计算,两条路径得到相同结果。
若某层对所有样本输出同一个向量,中心化后全为零,分母就是零,此时相似度未定义,不应偷偷填成0或1。样本太少、样本分布变化、取层位置或池化方式不同,都可能影响比较,报告时要一起固定。
CKA接近1只描述这批配对输入上的几何关系,不证明两个模型预测完全相同,更不能代替准确率、稳健性或错误案例评估。这个四点例子没有训练网络,它提供的是检查表征比较脚本是否误把坐标变化当成能力变化的方法。
比较网络层时保留样本清单
实际收集表征,可以固定一份不参与训练的输入清单,并记录每条样本在两模型中的相同行号。若某模型因长度限制跳过一条输入,两边必须共同删去该条再计算;否则矩阵形状一样,也可能比较的是不同对象。图像模型还要说明取空间位置、平均池化还是分类标记,语言模型则要说明选哪个位置。
不要先在每层中挑“最相似的样本”再配对,这会把任务改成寻找最佳匹配。若报告多个层之间的相似度,所有格子应使用相同样本集合与中心化规则,并保留低分格对应的输入以便排查。读者由此才能区分模型关系变化、预处理变化与样本对齐错误。
资料核对日期:2026年10月2日。数据为原创教学设定,已用独立本地程序复核,未进行真实模型训练或生产效果测试。
参考资料
Kornblith等:Similarity of Neural Network Representations Revisited,表1


