CKA

分类: 基础理论

CKA (Centered Kernel Alignment)

定义

CKA 是一种衡量两组表征(representation)相似度的指标,对表征的可逆线性变换具有不变性,常用于比较神经网络不同层或不同模型的内部表征

数学形式

CKA(K,L)=HSIC(K,L)HSIC(K,K)HSIC(L,L)\text{CKA}(K, L) = \frac{\text{HSIC}(K, L)}{\sqrt{\text{HSIC}(K, K) \cdot \text{HSIC}(L, L)}}

其中 KK, LL 是两组表征的核矩阵,HSIC 是 Hilbert-Schmidt Independence Criterion。线性 CKA 的简化形式:

CKAlinear(X,Y)=YTXF2XTXFYTYF\text{CKA}_{\text{linear}}(X, Y) = \frac{\|Y^T X\|_F^2}{\|X^T X\|_F \cdot \|Y^T Y\|_F}

核心要点

CKA 值域 [0,1][0, 1],值越大表示两组表征越相似

对表征的正交变换和各向同性缩放不变,比 CCA 和 余弦相似度 更鲁棒

线性 CKA 计算高效,适合大规模网络分析

常用于:层冗余检测(相邻层 CKA ≈ 1 说明冗余)、模型对比、迁移学习分析

SIMPLER 用 CKA 矩阵识别冗余层实现零梯度剪枝

代表工作

Kornblith et al., 2019: 提出 CKA 用于神经网络表征比较

SIMPLER: 用 CKA 引导层剪枝,删除相似度高的冗余层

相关概念

SVD — 另一种矩阵分析工具

depth pruning — CKA 可用于指导深度剪枝决策