论文阅读笔记:《EIGENGAME: PCA AS A NASH EQUILIBRIUM》(特征博弈:主成分分析就是纳什均衡)
声明
本文以翻译为主,自己学习留档用,有些不成熟的理解和证明过程也会写上去。
这是来自ICLR2021收录的一篇论文,参考文献arxiv地址:
https://arxiv.org/abs/2010.00554
摘要
文章提出了一种新的观点,即主成分分析(PCA)是一种竞争博弈——有一个“玩家”控制了每个近似的特征向量,而优化目标是最大化每个特征向量自身的效用函数(utility function)(1)。分析了PCA博弈的性质及其基于梯度的更新行为。该算法将Oja规则(2)中的元素与广义施密特(Gram-Schmidt)正交化相结合,具有自然的离散性,因此可以通过消息传递实现并行化。通过对大型图像数据集和神经网络的激活实验证明了该算法的可扩展性。讨论了PCA作为一个可微博弈的新观点如何导致进一步的算法发展和见解(3)。
注1:utility function 反映了该特征向量的“可取性"
注2:Oja’s rules 关于stream PCA的迭代算法 (暂时不会!先放一个blog在这里)
https://blog.csdn.net/MTandHJ/article/details/86031038
注3:论文作者认为这种新的观点可以启发更多的基于纳什均衡的 PCA算法,可以关注之后基于该思想的衍生论文或研究。似乎有人批评论文本身给出的算法计算复杂度高,但这根本不是论文最主要的价值和贡献…
1 简介
数据的主成分是与数据分布最大方差方向一致的向量(1)。它们有两个主要目的:
a)作为可解释的特征;
b)用于数据压缩。
最近的主成分分析(PCA)方法侧重于后者,明确说明寻找捕获最大方差的k维子空间的目标,并将该子空间内的旋转问题留给更有效的下游步骤如奇异值分解(SVD)(2)。这一点很微妙,但也很关键。例如,任何一对二维正交向量span了所有二维空间(R^2),因此捕获二维数据集的最大方差。然而,要使这些向量成为主分量,还必须将它们与依赖于数据协方差的最大方差方向对齐。通过学习最优子空间,而不是主成分本身,优化目标主要关注子空间误差而忽略了PCA的第一个目的。相比之下,现代非线性表征学习技术侧重于既不纠缠(不相关)又低维的学习特征。
众所周知,对于d维的数据集 X ∈ R n × d X∈R^{n\times d} X∈Rn×d的PCA解由 X T X X^TX XTX 的特征向量(等价的,也就是 X X X的右奇异向量)得到。计算full SVD是不实际的(3),需要 O ( m i n { n d 2 , n 2 d } ) \mathcal{O}(min\{nd^2,n^2d\}) O(min{ nd2,n2d})的时间复杂度和 O ( n d ) \mathcal{O}(nd) O(nd)。对于中等规模的数据,可以使用随机方法。除此之外,stochastic(随机)或online(在线)的基于Oja’s rule或power iterations(幂迭代)(4)方法也很常见。另一种选择是使用streaming k-PCA算法(5),如Frequent Directions (FD)和Oja’s algorithm2,其空间复杂度为 O ( k d ) \mathcal{O}(kd) O(kd)。Sampling 或sketching 方法也具很scalable,但同样,它们都仍然主要关注top-k子空间。
注1:显然,沿着方差最大的向量作为投影的新坐标系时,维度压缩带来的数据信息损失最小
注2:在学习了top-k个子空间 V ∈ R d × k V ∈ R^{d\times k} V∈Rd×k后,旋转可由SVD恢复。
注3:全尺度SVD,即 X = U Σ V X=U\Sigma V X=UΣV中 U ∈ R d × d , U ∈ R k × k U ∈ R^{d\times d},U ∈ R^{k\times k} U∈Rd×d,U∈Rk×k,此外还有如reduce SVD,将U和V的尺度降低至 R a n k ( X ) Rank(X) Rank(X)
注4:将求SVD的过程替换为幂迭代,适合用于大规模数据计算大型稀疏矩阵的主特征值,即取模最大的特征值和对应的特征向量,具体过程参考以下文章:
https://www.cnblogs.com/itboys/p/8403888.html
注5:通过分布流式的在线算法,在接近离线性能的情况下降低存储复杂度(没找到合适的文章,延申阅读暂时如下)
https://arxiv.org/abs/2102.03646
与这些方法不同的是,我们将每个主成分(等价的特征向量)看作一个博弈者,其目标是在与其他向量的受控竞争中最大化自己的局部效用函数。提出的效用梯度可以解释为Oja规则和广义Gram-Schmidt过程的结合。我们作出以下贡献:
• 一种新颖的PCA公式,用于寻找纳什均衡的一个合适的博弈,
• 一种连续、全局收敛的算法,用于逼近整批数据的纳什值,
• 一种可分布式的算法,通过实验证明该方法在合成和真实数据上与目前的streaming k-PCA算法具有竞争力,
•为了展示该方法的scalability,计算了在ImageNet数据集上ResNet-200激活矩阵的前32个主成分。
以上每一项贡献都很重要。
1:新颖的公式往往导致对问题的深入理解,从而为改进技术打开了大门。
2:k-player的博弈一般都很复杂,很难分析。相比之下,PCA已经得到了很好的研究。通过结合这两个领域,我们希望开发出有用的分析工具。
3:我们的具体公式是重要的,因为它省去了所需的所有正交归一化,并且自然地有助于将分权到下游。
4:最后,理论和实验证明了这种方法的可行性。
2 PCA as an Eigen-Game
首先,文章使用到以下数学符号并说明其含义。用来逼近主分量的向量和矩阵(等价的特征向量)会加上hat来表示,如真正的主成分是 v v v和 V V V时对应的逼近值为 v ^ \hat{v} v^和 V ^ \hat{V} V^,下标表示向量与哪个主成分相对应, v i v_i vi就是第i大的主成分对应的向量。在这项工作中,我们将假设每个特征值是严格不等的,那么 v j < i v_{j<i} vj<i将被解释为所有主成分大于 v i v_i vi的 v j v_j vj集合(1),我们也把这个集合称为 v i v_i vi的父集合——parents。标号的总和应该从上下文中明确,在d维的环境空间中,我们用 S d − 1 \mathcal{S}^{d-1} Sd−1来表示单位球,用 Δ d − 1 \mathcal{\Delta}^{d-1} Δd−1表示单纯形。
注1:显然下标越小,排名越靠前。
推导提纲 Outline of derivation
如引言中所述,PCA问题通常被错误地解释为学习数据到捕获最大方差的子空间的投影(这一解释相当于使下面介绍的suitable matrix–适当矩阵R的轨迹最大化)。这与学习主成分的最初目标相反。
我们根据直觉推导了效用函数:
(i) 证明仅最大化R的轨迹不足以恢复所有主成分(相当于特征向量);
(ii) 表明最小化R中的非对角项是最大化矩阵的迹(trace)并恢复所有components的一个互补目标。
然后,我们考虑只学习top-k,并构造与(i)和(ii)中的结果一致的效用函数,等于我们构造的博弈的Nash的真实特征值,从而得到一个易于分析的博弈。
玩家效用函数的推导
对称矩阵 X T X = M ∈ R d × d X^TX =M∈ R^{d\times d} XTX=M∈Rd×d的特征值问题就是求一个具有d个正交列向量组成的矩阵 V V V(假定这个矩阵是满秩的),根据特征向量的定义也就是: ( X T X ) V = V Λ (X^TX)V=V\Lambda (XTX)V=VΛ,其中 Λ \Lambda Λ为特征值组成的对角阵。等式左乘 V T V^T VT并根据正交矩阵的性质 V T = V − 1 , V T V = I V^T=V^{-1}, V^TV=I VT=V−1,VTV=I即有:
V T M V = V T V Λ = Λ V^TMV=V^TV\Lambda=\Lambda VTMV=VTVΛ=Λ
对于真实特征向量V的估计值 V ^ \hat{V} V^我们如下定义: R ( V ^ ) ≡ V T ^ M V ^ R(\hat{V})\equiv \hat{V^T}M\hat{V} R(V^)≡VT^MV^。PCA问题常被认为是最大化R的迹(相当于最小化重建误差):(3)
注2:上述公式在保证 V ^ \hat{V} V^正交约束下最大化R的迹(也就是对角元素累和、特征值累和),中间的等号即 V ^ ( V T ^ M V ^ ) V ^ − 1 = V V T M \hat{V}(\hat{V^T}M\hat{V})\hat{V}^{-1}=VV^TM V^(VT^MV^)V^−1=VVTM并不改变矩阵的迹。
根据上述公式我们惊讶地发现优化目标中没有 V ^ \hat{V} V^,即与 V ^ \hat{V} V^无关,因此它并不能用于恢复所有(也就是 k = d k=d k=d)M的特征向量,从而证明了前一章节中的结论(i)。或者说,上述公式暗示了特征值问题可以表述为确保R的所有非对角项为零从而确保R是对角的,也就是结论(ii):
注3:上述公式也就是优化非对角元素尽可能小来作为R为对角阵的relax约束。
R的元素值得进一步详细研究。R的对角元素 R i i = ⟨ v ^ i , M v ^ i ⟩ R_{ii}=\langle\hat{v}_i, M\hat{v}_i\rangle Rii=⟨v^i,Mv^i⟩被认为是瑞利商(Rayleigh quotients)因为它受到 ∣ ∣ v ^ i ∣ ∣ = 1 ||\hat{v}_i||=1 ∣∣v^i∣∣=1的约束。非对角元素 R i j = ⟨ v ^ i , M v ^ j ⟩ R_{ij}=\langle\hat{v}_i, M\hat{v}_j\rangle Rij=⟨v^i,Mv^j⟩测量了在广义内积下的 v ^ i \hat{v}_i v^i和 v ^ j \hat{v}_j v^j之间的对齐。
注4:*长注释
https://www.planetmath.org/RayleighRitzTheorem
定义瑞利商:
R ( A , x ) = x H A x x H x R(A,{\bf x})=\frac{
{\bf x}^HA{\bf x}}{
{\bf x}^H{\bf x}} R(A,x)=xHxxHAx
其中, x {\bf x} x为非零向量,A为厄米特矩阵, A A A的特征向量即是函数 R ( A , x ) R(A,{\bf x}) R(A,x)的驻点,对应的特征值即为函数的驻点值。由此,我们可知函数 R ( A , x ) R(A,{\bf x}) R(A,x)的最大值即为矩阵 A A A最大的特征值,而最小值等于最小的特征值。
λ m a x ≤ x H A x x H x ≤ λ m i n \lambda_{max}\le \frac{ {\bf x}^HA{\bf x}}{ {\bf x}^H{\bf x}}\le \lambda_{min} λmax≤xHxxHAx≤λmin
非正式的证明:
对于瑞利商上界:
m a x R ( A , x ) = m a x x H A x x H x = m a x x H A x , s . t . x H x = c max R(A, x)=max \frac{
{\bf x}^HA{\bf x}}{
{\bf x}^H{\bf x}}=max{\bf x}^HA{\bf x}, s.t. {\bf x}^H{\bf x}=c maxR(A,x)=maxxHxxHAx=maxxHAx,s.t.xHx=c
其中,c is constant, 可以转化为拉格朗日乘子函数:
m a x L ( x , λ ) = x H A x − λ ( x H x − c ) max\mathcal{L}({\bf x}, \lambda)={\bf x}^HA{\bf x}- \lambda({\bf x}^H{\bf x}-c) maxL(x,λ)=xHAx−λ(xHx−c)
求偏导为零点得极值点:
∂ L ( x , λ ) ∂ x = 0 ; ∂ L ( x , λ ) ∂ λ = 0 \frac{\partial \mathcal{L}({\bf x,\lambda})}{\partial {\bf x}}=0; \frac{\partial \mathcal{L}({\bf x,\lambda})}{\partial {\bf \lambda}}=0 ∂x∂L(x,λ)=0;∂λ∂L(x,λ)=0
于是: A x = λ x , x H x = c , R ( A , x ) = x H λ x x H x = λ A{\bf x}=\lambda {\bf x},{\bf x}^H{\bf x}=c,R(A, x)=\frac{
{\bf x}^H\lambda{\bf x}}{
{\bf x}^H{\bf x}}=\lambda Ax=λx,xHx=c,R(A,x)=xHxxHλx=λ
也就是说:当 x \bf x x是 A A A的特征向量时,也就是瑞丽商的驻点;而 λ \lambda λ就是对应的特征值,也是瑞丽商的驻点值。
PCA其实也就是瑞丽商的一个应用,只不过特别地,由于正交性 x H x = I {\bf x}^H{\bf x}=I xHx=I,瑞利商为 R ( A , x ) = x H A x R(A,{\bf x})={\bf x}^HA{\bf x} R(A,x)=xHAx。 *注4结束
到目前为止,我们已经考虑了所有学习的特征向量。如果我们在 k < d k<d k<d的时候对top-k个特征向量重复这个逻辑,那么根据公式(1)(最初的公式) R R R必须是对角阵,而 V V V不是方阵自然也无法保证 V H V = I {V}^H{ V}=I VHV=I。如前所假设 V V V是正交的,故有 V H V = P {V}^H{ V}=P VHV=P是一个投影矩阵,于是在公式(1)的基础上再次同时左乘 V V V得到:
( P M ) V = V Λ (PM)V=V\Lambda (PM)V=VΛ
于是我们实际是在解决一个M的子空间内的特征向量求解问题。
如果我们只关心top-k的特征向量,则最大化 T r ( R ) Tr(R) Tr(R)这一优化目标会鼓励学习由前k个特征向量张成(span)的子空间,但不会恢复特征向量本身。另一方面,优化 m i n V T V = 1 Σ i ≠ j R i j 2 min_{V^TV=1}\Sigma_{i\neq j}R_{ij}^2 minVTV=1Σi