模型降阶方法之张量方法
Posted 陆嵩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型降阶方法之张量方法相关的知识,希望对你有一定的参考价值。
模型降阶方法之张量方法
文章目录
简介
POD 方法的介绍如下所示:
https://blog.csdn.net/lusongno1/article/details/125944587
经典的 POD 方法无法处理非线性项,所以发展了很多的方法,比如 DEIM:
https://blog.csdn.net/lusongno1/article/details/125955245
如果我们要考虑的方程里面有一组参数,不同的参数都能获得一个 Matrix,那么我们应该如何把多组参数下的得到的数据放在一块作为先验,来给新到来的一组参数做模型降阶呢?这就是这篇文章要考虑的问题,即高阶的张量分解,和参数维度上的插值。简单地说,就是如果已经有了一组参数下的快照,那么新来一个参数,它之下的 SVD 分解不需要重新找快照,只需要由原来的参数插值得到。
这篇博客有点难理解,可以大概看看,再去看一些文章。我们略去一些约定俗成的符号的含义的解释,不理解的符号含义可以看一下参考文献。我们只介绍方法,证明分析和实验,可以阅读论文。
基础知识
我们先介绍一些基础的定义。一个代数张量空间中的张量可以写为 elementary 张量的线性组合:
v
=
∑
i
=
1
m
v
i
(
1
)
⊗
⋯
⊗
v
i
(
d
)
v=\\sum_i=1^m v_i^(1) \\otimes \\cdots \\otimes v_i^(d)
v=i=1∑mvi(1)⊗⋯⊗vi(d)
注意到这里其实是没有组合系数的。
一个已知张量的最小子空间,它是一组空间。它是 v ∈ ⨂ v = 1 d U v v \\in \\bigotimes_v=1^d U_v v∈⨂v=1dUv 中, U ν U_\\nu Uν 的极小化。也就说,能够包住 v v v 的最最小的空间分量。
一个二阶张量的秩,是最小的
r
r
r 使得满足:
u
=
∑
i
=
1
r
s
i
⊗
v
i
u=\\sum_i=1^r s_i \\otimes v_i
u=i=1∑rsi⊗vi
对于二阶张量,奇异值分解一般是这么写的:
u
=
∑
i
=
1
n
σ
i
s
i
⊗
v
i
u=\\sum_i=1^n \\sigma_i s_i \\otimes v_i
u=i=1∑nσisi⊗vi
对于高阶张量,它的 Canonical 秩就是二阶张量秩的推广,即最小的
r
r
r 使得,
v
=
∑
i
=
1
r
v
i
(
1
)
⊗
⋯
⊗
v
i
(
d
)
v=\\sum_i=1^r v_i^(1) \\otimes \\cdots \\otimes v_i^(d)
v=i=1∑rvi(1)⊗⋯⊗vi(d)
所谓的
α
\\alpha
α 值得是最小子空间的维数,
α
\\alpha
α 表示索引,
rank
α
(
v
)
=
dim
(
U
α
min
(
v
)
)
.
\\operatornamerank_\\alpha(v)=\\operatornamedim\\left(U_\\alpha^\\min (v)\\right) .
rankα(v)=dim(Uαmin(v)).
Tucker Rank 其实是一个向量,它是用最小子空间的维数来定义的。即一个具有 Tucker Rank
r
=
(
r
ν
)
v
∈
D
r=\\left(r_\\nu\\right)_v \\in D
r=(rν)v∈D 的张量集合,它满足在所有的指标集合里,对应的最小子空间的维数是限定的,即:
T
r
=
v
∈
X
:
rank
v
(
v
)
=
dim
(
U
v
min
(
v
)
)
≤
r
ν
,
v
∈
D
,
\\mathscrT_r=\\left\\v \\in X: \\operatornamerank_v(v)=\\operatornamedim\\left(U_v ^\\min (v)\\right) \\leq r_\\nu, v \\in D\\right\\,
Tr=v∈X:rankv(v)=dim(Uvmin(v))≤rν,v∈D,
那么 Tucker 张量里面的一个元素就可以写成:
v
=
∑
i
1
=
1
r
1
…
∑
i
d
=
1
r
d
C
i
1
,
…
,
i
d
v
i
1
(
1
)
⊗
⋯
⊗
v
i
d
(
d
)
v=\\sum_i_1=1^r_1 \\ldots \\sum_i_d=1^r_d C_i_1, \\ldots, i_d v_i_1^(1) \\otimes \\cdots \\otimes v_i_d^(d)
v=i1=1∑r1…id=1∑rdCi1,…,idvi1(1)⊗⋯⊗vid(d)
Tree-Based Rank 指的是,我们现在不限定单个的指标对应的分量最小子空间的维数,我们限定给定指标集的对应的张量分解空间的张成的空间的维数,即
B
T
r
=
v
∈
X
:
rank
α
(
v
)
=
dim
(
U
α
min
(
v
)
)
≤
r
α
,
α
∈
T
D
.
\\mathscrB \\mathscrT_r=\\left\\v \\in X: \\operatornamerank_\\alpha(v)=\\operatornamedim\\left(U_\\alpha^\\min (v)\\right) \\leq r_\\alpha, \\alpha \\in T_D\\right\\ .
BTr=v∈X:rankα(v)=dim(Uαmin(v))≤rα,α∈TD.
注意到这里,一个指标集合,就给一个限定,有多少个指标集合,就给多少个限定。Tucker Rank 是它去每个指标集合单个指标的时候的特例。
TT(Tensor-train) Rank 也是 Tree-Based Rank 的一种特例。它取得指标集是有序的,从尾巴开始增长的一组指标集合,即
T
T
r
=
v
∈
X
:
rank
k
+
1
,
…
,
d
(
v
)
≤
r
k
\\mathscrT \\mathscrT_r=\\left\\v \\in X: \\operatornamerank_\\k+1, \\ldots, d\\(v) \\leq r_k\\right\\
TTr=v∈X:rank以上是关于模型降阶方法之张量方法的主要内容,如果未能解决你的问题,请参考以下文章