| 第642行: |
第642行: |
| | | | |
| | ===第一步=== | | ===第一步=== |
| − | 首先将正向和逆向动力学的协方差矩阵组合成一个更大的2n*2n的伪对角矩阵
| + | 在得到基于奇异值的因果涌现之后,和TPM矩阵类似,我们也可以根据逆向动力学的协方差矩阵<math>𝐴^𝑇Σ^{−1}𝐴</math>和正向动力学的协方差矩阵<math>Σ^{−1}</math>的奇异向量,指定在高斯迭代系统上的粗粒化策略,将高维的向量映射到低维空间。基于SVD的理论,<math>𝐴^𝑇Σ^{−1}𝐴</math>和<math>Σ^{−1}</math>都是对称矩阵,因此我们可以直接得到SVD分解 |
| | <blockquote> | | <blockquote> |
| − | <math> | + | <math>A^T\Sigma^{-1}A=USU^T |
| − | \tilde{\Sigma}=\begin{pmatrix}
| |
| − | A^T\Sigma^{-1}A & O \\
| |
| − | O & \Sigma^{-1} \\
| |
| − | \end{pmatrix}\in\mathcal{R}^{2n\times 2n}
| |
| | </math> | | </math> |
| | </blockquote> | | </blockquote> |
| − | 随后我们可以直接对大<math>\tilde{\Sigma}</math>矩阵进行奇异值分解
| + | 和 |
| | <blockquote> | | <blockquote> |
| − | <math> | + | <math>\Sigma^{-1}=VKV^T |
| − | \tilde{\Sigma}=\tilde{U}\tilde{S}\tilde{U}^T
| |
| | </math> | | </math> |
| | </blockquote> | | </blockquote> |
| − | 得到奇异值<math>\tilde{S}={\rm diag}(\tilde{s}_1,\cdots,\tilde{s}_n)</math>与奇异向量矩阵<math>\tilde{U}=(\tilde{u}_1,\cdots,\tilde{u}_n)</math>,其中<math>\tilde{s}_1\geq\cdots\geq\tilde{s}_n</math>刚好是<math>𝐴^𝑇Σ^{−1}𝐴</math>和<math>Σ^{−1}</math>的所有奇异值共同从大到小排列后产生的新奇异值谱。
| + | 其中<math>S={\rm diag}(s_1,\cdots,s_n)</math>和<math>K={\rm diag}(\kappa_i,\cdots,\kappa_n)</math>分别是奇异值<math>s_1\geq\cdots\geq s_n</math>和<math>\kappa_1\geq\cdots\geq \kappa_n</math>组成的对角矩阵,奇异向量矩阵<math>U=(u_1,\cdots,u_n)</math>和<math>V=(v_1,\cdots,v_n)</math>分别包含了两组奇异值对应的奇异向量,它们也可以被分别看成两个生成空间的正交积。 |
| | + | |
| | + | 随后我们构造新的奇异值<math>\tilde{S}={\rm diag}(\tilde{s}_1,\cdots,\tilde{s}_n)</math>对角矩阵与合并的奇异向量矩阵<math>\tilde{U}=(\tilde{u}_1,\cdots,\tilde{u}_n)</math>,其中<math>\tilde{s}_1\geq\cdots\geq\tilde{s}_n</math>刚好是<math>𝐴^𝑇Σ^{−1}𝐴</math>和<math>Σ^{−1}</math>的所有奇异值,<math>s_1\geq\cdots\geq s_n</math>和<math>\kappa_1\geq\cdots\geq \kappa_n</math>,共同从大到小排列后产生的新奇异值谱,<math>\tilde{U}=(\tilde{u}_1,\cdots,\tilde{u}_n)</math>是<math>U=(u_1,\cdots,u_n)</math>和<math>V=(v_1,\cdots,v_n)</math>中与<math>\tilde{s}_1\geq\cdots\geq\tilde{s}_n</math>对应的奇异向量。 |
| | + | |
| | + | 我们规定阈值<math>\epsilon</math>,在第一步中,我们规定大于<math>\epsilon</math>的<math>\tilde{s}_i</math>数量为<math>r_{\epsilon0}</math>,我们可以将奇异向量矩阵进行分解,得到 |
| | <blockquote> | | <blockquote> |
| − | 我们同样规定阈值<math>\epsilon</math>,在第一步中,我们规定大于<math>\epsilon</math>的<math>\tilde{s}_i</math>数量为<math>r_{\epsilon0}</math>,我们可以将奇异向量矩阵进行分解,得到
| |
| | <math> | | <math> |
| | \tilde{U}=(\tilde{U}_{1},\tilde{U}_{2}),\tilde{U}_{1}\in\mathcal{R}^{2n\times r_{\epsilon0}}, \tilde{U}_{2}\in\mathcal{R}^{2n\times (2n-r_{\epsilon0})} | | \tilde{U}=(\tilde{U}_{1},\tilde{U}_{2}),\tilde{U}_{1}\in\mathcal{R}^{2n\times r_{\epsilon0}}, \tilde{U}_{2}\in\mathcal{R}^{2n\times (2n-r_{\epsilon0})} |
| 第667行: |
第665行: |
| | | | |
| | ===第二步=== | | ===第二步=== |
| − | 由于我们得到的矩阵<math>\tilde{U}_{1}</math>属于空间<math>\mathcal{R}^{2n\times r_{\epsilon0}}</math>,无法直接对n维向量进行粗粒化,因此还需要第二步SVD分解。我们可以将其前n行和后n行构成的矩阵进行相加,令 | + | 由于我们得到的矩阵<math>\tilde{U}_{1}</math>属于空间<math>\mathcal{R}^{n\times r_{\epsilon0}}</math>,而<math>r_{\epsilon0}</math>不一定小于n,因此我们无法直接利用其转置对n维向量进行粗粒化,因此还需要第二步SVD分解。我们利用矩阵<math>\tilde{U}_{1}</math>进行第二步SVD分解 |
| − | <blockquote>
| |
| − | <math> | |
| − | \tilde{U}=\begin{pmatrix}
| |
| − | \tilde{U}_{11} \\
| |
| − | \tilde{U}_{12}
| |
| − | \end{pmatrix}, \tilde{U}_{11},\tilde{U}_{12}\in\mathcal{R}^{n\times r_{\epsilon0}}
| |
| − | </math> | |
| − | </blockquote>
| |
| − | 随后将矩阵的行数压缩回n维,得到
| |
| − | <blockquote>
| |
| − | <math> | |
| − | \tilde{\tilde{U}}_{1}=\tilde{U}_{11}+\tilde{U}_{12}\in\mathcal{R}^{n\times r_{\epsilon0}}
| |
| − | </math> | |
| − | </blockquote>
| |
| − | 随后我们将该矩阵在进行SVD分解
| |
| | <blockquote> | | <blockquote> |
| | <math> | | <math> |
| − | \tilde{\tilde{U}}_{1}\tilde{S}=\hat{U}\hat{S}\hat{V}^T
| + | \tilde{U}_{1}\tilde{S}=\hat{U}\hat{S}\hat{V}^T |
| | </math> | | </math> |
| | </blockquote> | | </blockquote> |