[论文解读] SVCCA: Singular Vector Canonical Correlation Analysis for Deep Learning Dynamics and Interpretability
SVCCA 结合 SVD 与 CCA,以不受仿射变换影响的方式比较神经网络表示,进而分析学习动态、维度性和跨层、跨体系结构的可解释性。
We propose a new technique, Singular Vector Canonical Correlation Analysis (SVCCA), a tool for quickly comparing two representations in a way that is both invariant to affine transform (allowing comparison between different layers and networks) and fast to compute (allowing more comparisons to be calculated than with previous methods). We deploy this tool to measure the intrinsic dimensionality of layers, showing in some cases needless over-parameterization; to probe learning dynamics throughout training, finding that networks converge to final representations from the bottom up; to show where class-specific information in networks is formed; and to suggest new training regimes that simultaneously save computation and overfit less. Code: https://github.com/google/svcca/
研究动机与目标
- 确定某一层学习到的表示是否具有与其神经元数量相同的内在维度。
- 研究在训练过程中表示的学习动态(自底向上收敛)。
- 研究类特定信息在网络中的形成位置,以及语义如何在表示中体现。
- 提出基于 SVCCA 发现的实际训练与压缩方法。
提出的方法
- 将神经元表示为在一个数据集上的激活向量;将一层视为由这些神经元向量张成的子空间。
- 应用 SVCCA:1) 对每个子空间执行 SVD,保留解释 99% 方差的方向;2) 对降维后的子空间进行典型相关分析以获得对齐的方向与相关性。
- 给出 SVCCA 相似性,即跨方向的前几根对齐相关系数的平均值。
- 将 SVCCA 扩展到卷积层,使用同层或跨层比较;给出理由并实现一个离散傅里叶变换预处理,通过创建分块对角协方差结构,使卷积 SVCCA 变得精确而高效。
实验结果
研究问题
- RQ1学习层表示相对于神经元数量的内在维度是多少?
- RQ2表示在训练过程如何演变(哪些层先收敛)以及全局学习动态是什么?
- RQ3网络的哪一处出现类特定信息,这与类之间的语义相似性有何关系?
- RQ4在保持性能的前提下,SVCCA 是否能指导训练与压缩策略?
主要发现
- 层通常使用的有信息方向远少于神经元数量,即可从仅解释方差子集的子空间获得良好性能。
- 学习动态呈现自底向上,较低层比较高层更早固化;这为 Freeze Training 提供了动力。
- SVCCA 方向可以分布在多个神经元上,而非仅仅沿坐标轴对齐,表明表示是分布式的。
- 基于离散傅里叶变换的 SVCCA 能扩展到大型卷积层,并揭示跨层对类别敏感性的语义关系。
- 基于 SVCCA 的投影可以通过将激活投影到前几根 SVCCA 方向来压缩模型,在某些情况下性能损失最小。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。