system: [SYSTEM]

user: 2. 算法描述 本章从已有的工作出发，引出了无参数的局部判别分析(Parameter-free Local Linear Discriminant Analysis， Pf-LLDA)模型，并给出了具体的求解方法与伪代码。更具体地，2.1节、2.2节和2.3节分别概述了线性判别分析(Linear Discriminant Analysis， LDA)、局部Fisher判别分析(Local Fisher Discriminant Analysis， LFDA)和自权重自适应局部判别分析(Self-weighted Adaptive Locality Discriminant Analysis， SALDA)模型；2.4节详细阐述了Pf-LLDA模型与求解方案。 2.1. 线性判别分析(LDA) 给定n个m维的数据样本 X = [ x 1 ， ⋯ ， x n ] ∈ ℝ m × n ，并且已知这些样本来自c个不同的类别，LDA可以通过以下固定整体分散度的同时最小化类内分散度的方式得到具有判别性的变换矩阵 A ∈ ℝ m × d 。 min A Tr ( A T S w A ) s . t . A T S t A = I d (1) 这里，d表示低维目标空间的维数； Tr ( X ) 表示对矩阵X的求迹运算； X T 表示对矩阵X转置； I d 表示 d × d 维的单位阵。 S w 和 S t 分别表示数据的类内散度矩阵和整体散度矩阵，并分别由以下公式计算 [ 3 ] [ 7 ]： S w = ∑ i = 1 c ∑ j = 1 n i ( x j i − μ i ) ( x j i − μ i ) T = 1 2 ∑ i = 1 c 1 n i ∑ j = 1 n i ∑ k = 1 n i ( x j i − x k i ) ( x j i − x k i ) T ， (2) S t = ∑ j = 1 n ( x i − μ ) ( x i − μ ) T = 1 2 n ∑ j = 1 n ∑ k = 1 n ( x j − x k ) ( x j − x k ) T . (3) 其中， x j i 表示属于类别i的样本 x j ； n i 表示属于类别i的样本个数； μ 和 μ i 分别表示所有样本的均值和属于类别i的样本均值。最终，LDA的变换矩阵A可以通过求解如下广义特征值问题的最小的特征值所对应的特征向量得到 [ 1 ] [ 2 ]： S w A = λ S t A . (4) 2.2. 局部Fisher判别分析(LFDA) 局部Fisher判别分析通过将样本的近邻结构引入到构建类内散度矩阵和整体散度矩阵中，使得模型具有局部判别能力并能很好地对多模态分布下的数据进行有效降维。具体地，LFDA首先以如下方式重新定义了LDA的类内散度矩阵(2)和整体散度矩阵(3)： S ^ w = 1 2 ∑ j = 1 n ∑ k = 1 n W j k ( w ) ( x j − x k ) ( x j − x k ) T = ∑ j = 1 n ( ∑ k = 1 n W j k ( w ) ) x j x k T − ∑ j = 1 n ∑ k = 1 n W j k ( w ) x j x k T = X D ( w ) X T − X W ( w ) X T = X L ( w ) X T ， (5) S ^ t = 1 2 ∑ j = 1 n ∑ k = 1 n W j k ( w ) ( x j − x k ) ( x j − x k ) T = X D ( t ) X T − X W ( t ) X T = X L ( t ) X T . (6) 其中， D ( i ) ∈ ℝ n × n ， i = { w ， t } 表示以对称矩阵 W ( i ) ∈ ℝ n × n ， i = { w ， t } 的行和为对角元素构造的对角矩阵；而权重矩阵 W ( i ) ∈ ℝ n × n ， i = { w ， t } 以如下形式定义： W j k ( w ) = { W i j / n i ， if   y j = y k = i 0 ， otherwise (7) W j k ( t ) = { W i j / n ，         if   y j = y k 1 / n ，               otherwise (8) 这里， y j 表示样本 x j 的类别标签；W表示与样本近邻相关的仿射矩阵。一种简单的定义方式是：当样本 x j 与样本 x k 互为近邻时， W i j = 1 ，否则 W i j = 0 。更多关于W的定义方式可以参考文献 [ 3 ]，需要强调的是，无论哪种定义方式，样本近邻点的个数都是需要人为指定的。最后LFDA使用改进的类内散度矩阵 S ^ w 和整体散度矩阵 S ^ t 对应地替换LDA中的 S w 和 S t ，得到与LDA类似的模型： min A Tr ( A T S ^ w A ) s . t . A T S ^ t A = I d (9) 从而以类似于公式(4)的方式求得最终的变换矩阵。 2.3. 自权重自适应局部判别分析(SALDA) 不同于LFDA使用人为指定样本近邻个数的方式来挖掘数据的局部结构，SALDA尝试根据数据自身信息自适应地挖掘数据的局部流型结构来达到局部判别分析的目的。具体而言，首先根据矩阵的迹运算和矩阵元素形式的F-范数等价的性质，即对于方阵 X ∈ ℝ m × n ， Tr ( X T X ) = ‖ X ‖ F 2 = ∑ i = 1 m ∑ j = 1 n X i j 2 ，以及公式(2)，易得： Tr ( A T S w A ) = 1 2 ∑ i = 1 c 1 n i ∑ j = 1 n i ∑ k = 1 n i ‖ A T ( x j i − x k i ) ‖ F 2 ， (10) 这里 ‖ X ‖ F 表示矩阵X元素形式的F-范数。因此，单独将控制样本间差异的权重W提出来并控制其为正数，则由公式(10)与传统LDA模型(1)便可得到SALDA模型 [ 9 ]： min A ∑ i = 1 c ∑ j = 1 n i ∑ k = 1 n i W j k i ‖ A T ( x j i − x k i ) ‖ F 2 s . t . A T S t A = I d ， W j k i ≥ 0 ， (11) 需要注意的是，这里的权重W只是作为常数值单独进行表示而非模型的求解变量。参考LFDA中定义近邻结构的仿射矩阵发现，其内部的每一个元素表示样本相关性的大小。换句话说，当样本距离越近时，对应在仿射矩阵中的值就越大。因此，根据F-范数与欧拉距离的相似性定义，SALDA通过以下对同类别 内的样本对 x j 和 x k 的求欧拉距离的倒数形式定义W中的每一个元素值 [ 13 ] [ 14 ]： W j k i = 1 2 ‖ A T ( x j i − x k i ) ‖ F ， (12) 当得到W时，模型就可以重新表示成： min A Tr ( A T X L X T A ) s . t . A T S t A = I d (13) 这里，拉普拉斯矩阵 L = D − W ，D是由权重矩阵W得到的对角矩阵，其对角线上的元素为W对应行中所有元素值之和，即 D i i = ∑ j = 1 n W i j 。显然，若记 S ˜ w = X L X T ，模型(13)与模型(1)具有类似的结构，所以同样可以通过广义特征值分解的方法进行求解。 值得强调的是，SALDA为了运用近邻思想并避开近邻个数的设置来挖掘数据的局部结构，采用构建具有仿射矩阵性质的方式固定计算权重矩阵W。这种方式虽然在构建仿射矩阵方面似乎是有效的，但是在整体模型上却不是很合理。一方面，模型(11)中的待求解变量只有变换矩阵A，但模型却是以迭代计算(12)和求解子模型(13)的方式进行求解；另一方面，W并不是模型要求解的参数，但又参与模型的更新求解，这不仅模糊了模型的可解释性也导致模型的求解并不一定收敛。 2.4. 无参数的局部判别分析(Pf-LLDA) 受SALDA启发，我们将权重矩阵 假定为一个需要求解的未知量，得到如下Pf-LLDA模型： min ( A ， W ) ∑ i = 1 c n i ∑ j = 1 n i ∑ k = 1 n i W i j i 2 ‖ A T ( x j i − x k i ) ‖ F 2 s . t . A T S t A = I d ， W j k i ≥ 0 ， ∑ k = 1 n i W j k i = n i n . (14) 相比于SALDA模型(11)，Pf-LLDA主要有以下几方面的不同： • Pf-LLDA模型将变换矩阵A与权重矩阵W共同作为模型待求解的未知量进行建模，而SALDA只对变换矩阵A进行了建模； • Pf-LLDA通过控制同类别样本的权重和为定值，理论地给出了W的自适应更新公式。相比于SALDA直接设定而无法保证收敛的方式，Pf-LLDA关于W的更新不仅具有可解释性而且保证模型收敛； • Pf-LLDA通过设定不同类样本的权重和为 n i / n 的方式对不同类别进行了区分使得模型适用于类别失衡问题从而更好地提升降维性能。 模型(14)可以通过交替方向的优化求解思路 [ 12 ] 迭代进行求解。下面具体给出了针对W和A的求解方式。 2.4.1. 固定W，更新A 当权重矩阵固定，即W为已知数时，模型(14)转换成： min A ∑ i = 1 c n i ∑ j = 1 n i ∑ k = 1 n i W i j i 2 ‖ A T ( x j i − x k i ) ‖ F 2 s . t . A T S t A = I d (15) 与公式(10)的推导类似，模型(15)可进一步转换成模型(13)的形式。因此以上问题(15)可以通过广义特征值的方法进行求解。 2.4.2. 固定A，更新W 当变换矩阵固定，即A为已知数时，模型(14)转换成： min W ∑ i = 1 c n i ∑ j = 1 n i ∑ k = 1 n i W i j i 2 ‖ A T ( x j i − x k i ) ‖ F 2 s . t . W j k i ≥ 0 ， ∑ k = 1 n i W j k i = n i n . (16) 模型(16)可以通过分别求解它的一般化子模型来得到最终的W。具体而言，对于任意确定的i和j，令向量 u = W j ⋅ i ∈ ℝ n i × 1 ，其中 W j ⋅ i = [ W j 1 i ， ⋯ ， W j n i i ] T 。同时令对角矩阵 V = d i a g ( ‖ A T ( x j i − x k i ) ‖ F 2 ) ， k = 1 ， ⋯ ， n i ，即V的对角线元素为 V k k = ‖ A T ( x j i − x k i ) ‖ F 2 。所以模型(16)在固定i和j时，可得到通用子模型： min u u T V u s . t . u ≥ 0 ， u T 1 = n i n . (17) 这里 1 ∈ ℝ n i × 1 表示长度为 n i 的全1列向量。模型(17)可以通过拉格朗日乘子法 [ 1 ] 计算得出u的每一个元素，具体如下： u k = n i n ⋅ V k k ( ∑ t = 1 n i 1 V t t ) − 1 ， k = 1 ， ⋯ ， n i . (18) 所以，模型(16)的最优解 W * 满足： W j k i * = n i n ⋅ ‖ A T ( x j i − x k i ) ‖ F 2 ( ∑ t = 1 n i 1 ‖ A T ( x j i − x k i ) ‖ F 2 ) − 1 ，     i = 1 ， ⋯ ， c ; j = 1 ， ⋯ ， n i ; k = 1 ， ⋯ ， n i . (19) 有趣的是，Pf-LLDA通过设置W为模型变量的方式求解出来的结果与SALDA分析仿射矩阵性质的方式固定W的结果具有类似的结构。但由于SALDA缺乏理论的推导，同时更新公式(12)与(19)并非完全一样，导致SALDA模型求解时并不一定收敛。最终求解模型(14)的算法流程如算法1所示，其中初始化目标函数值 o 0 = + ∞ ， o 1 = 1 保证了算法能正常进行循环迭代求解过程。当目标函数值在迭代更新前后的变化量小于精度误差 ε = 10 − 6 时，循环终止，并返回最终的变换矩阵A。 Algorithm 1. The algorithm of parameter-free local linear discriminant analysis 算法1. 无参数的局部判别分析算法