1 幂法和反幂法

1.1 幂法

幂法主要用于求矩阵的按模[1]最大的特征值与相应的特征向量。它是通过迭代产生向量序列,由此计算特征值和特征向量。

xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量阶实矩阵xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02的特征值xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_03满足:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_04

且与xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_05相应的特征向量xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_06线性无关。(?为什么线性无关)

给定初始向量xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_07,由迭代公式

xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_08

产生向量序列xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_09,可以证明,当xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_10充分大时,有xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_11,相应的特征向量为xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_12

为简便起见,不妨设xgboost 特征权重 plot_importance 调整 特征向量计算权重_线性代数_13。因为xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_14线性无关(线性无关的概念),故必存在n个不全为零的数xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_15,使得xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_16。由式(4-1)得:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_17

即:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_18

xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_19,由xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_20得:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_21

于是:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_线性代数_22

故只要k充分大,就有:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_23

因此,可把xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_12作为与xgboost 特征权重 plot_importance 调整 特征向量计算权重_线性代数_25相应的特征向量的近似。由式:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_26

此时我们可以得出:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_27

其中xgboost 特征权重 plot_importance 调整 特征向量计算权重_线性代数_28xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_29的第i个分量。按式(4-1)和式(4-4)计算矩阵xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02按模最大的特征值与相应的特征向量的方法称为幂法。

需要说明的是,如果xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_31的选取恰恰使得xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_32,幂法计算仍能进行。因为计算过程中舍入误差的影响,迭代若干次后,必然会产生一个向量xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_29,它在xgboost 特征权重 plot_importance 调整 特征向量计算权重_线性代数_34方向上的分量不为零。这样,以后的计算就满足所设条件。另外需要注意的一点是,因为xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_35,计算过程中可能会出现溢出(xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_36)或成为0(xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_37)的情形。为避免这一情形的出现,实际计算时每次迭代所求的的向量都要归一化。因此,幂法实际使用的计算公式是:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_38

待补充 92

1.2 幂法的加速

因为幂法的收敛条件是线性的,而且依赖于收敛因子xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_39,当收敛因子接近于1时,幂法收敛很慢。幂法的加速有许多方法,下面介绍其中两种。

原点移位法

容易看出,矩阵xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_41的特征值有以下关系:若xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_42xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02的特征值,则xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_44就是xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_41的特征值,而且相应的特征向量不变。如果对矩阵xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_41按式(4-1)计算,则有:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_47

适当选取xgboost 特征权重 plot_importance 调整 特征向量计算权重_线性代数_48,使得xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_49,且:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_50

这样,用幂法计算xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_41的最大模特征值xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_52及相应特征向量的收敛速度比对xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02用幂法计算要快。这种加速收敛的方法称为原点移位法。

待补充

幂法的艾特肯(Aitken)加速

如果序列xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_54线性收敛到xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_55,即:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_线性代数_56

则当xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_10充分大时,有

xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_58

由此可解出:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_59

序列xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_60xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_54更快地收敛到xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_55,这就是Aitken加速法。将这一方法用于幂法所产生的序列xgboost 特征权重 plot_importance 调整 特征向量计算权重_矩阵_54,可加快幂法的收敛速度。

待补充

1.3 反幂法

反幂法是计算矩阵按模最小的特征值及特征向量的方法,也是修正特征值、求相应特征向量的最有效的方法。

xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量 阶非奇异矩阵,xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_66xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02的特征值与相应的特征向量,则xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_68的特征值是xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02的特征值的倒数,而相应的特征向量不变,即:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_70

因此,若对矩阵xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_68用幂法,即可计算出xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_68的按模最大的特征值,其倒数恰为xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02的按模最小的特征值。这就是反幂法的基本思想。

因为xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征值_68的计算比较麻烦,而且往往不能保持矩阵xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02的一些好性质(如稀疏性),因此,反幂法在实际运算时以求解方程组:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_76

代替幂法迭代:

xgboost 特征权重 plot_importance 调整 特征向量计算权重_线性代数_77

求得xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_12,每迭代一次要解一个线性方程组(4-12)。由于矩阵在迭代过程中不变,故可对xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02先进行三角分解。这样,每次迭代只要解两三个三角方程组。

待补充

补充内容

[1] 假定矩阵 xgboost 特征权重 plot_importance 调整 特征向量计算权重_迭代_02 有 n 个线性无关的特征向量,n个特征值按模由大到小排列:
xgboost 特征权重 plot_importance 调整 特征向量计算权重_特征向量_81
那么xgboost 特征权重 plot_importance 调整 特征向量计算权重_线性代数_25是按模最大特征值。