更改

第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>
558

个编辑