Variational Approximation
lam
lam (x:jaxtyping.Float[Array,''])
\(\!\) Lambda 関数 \[\lambda(x)=\frac{1}{2x}\left[\sigma(x)-\frac{1}{2}\right]\] \(\!\)
Type | Details | |
---|---|---|
x | Float[Array, ’’] | \(x\) |
Returns | Float[Array, ’’] | \(\lambda(x)\) |
Ptt
Ptt (Ptm:jaxtyping.Float[Array,'NN'], x:jaxtyping.Float[Array,'N'], xi:jaxtyping.Float[Array,''])
\(\!\) 推定誤差共分散行列 \(\mathbf P_{t/t}\)
\[\mathbf P_{t/t}=\mathbf P_{t/t-1}-\frac{2\lambda(\xi_t)}{1+2\lambda(\xi_t)\mathbf x_t^T\mathbf P_{t/t-1}\mathbf x_t}\left(\mathbf P_{t/t-1}\mathbf x_t\right)\left(\mathbf P_{t/t-1}\mathbf x_t\right)^T \]
\[\mathbf P_{t/t}^{-1}=\mathbf P_{t/t-1}^{-1}+2\lambda(\xi_t)\mathbf x_t\mathbf x_t^T\] \(\!\)
Type | Details | |
---|---|---|
Ptm | Float[Array, ‘N N’] | \(\mathbf P_{t/t-1}\) |
x | Float[Array, ‘N’] | \(\mathbf x_t\) |
xi | Float[Array, ’’] | \(\xi_t\) |
Returns | Float[Array, ‘N N’] | \(\mathbf P_{t/t}\) |
wtt
wtt (Ptm:jaxtyping.Float[Array,'NN'], Ptt_:jaxtyping.Float[Array,'NN'], w:jaxtyping.Float[Array,'N'], x:jaxtyping.Float[Array,'N'], y:jaxtyping.Float[Array,''])
\(\!\) 濾波推定値 \(\hat{\mathbf w}_{t/t}\) \[\hat{\mathbf w}_{t/t}=\mathbf P_{t/t}\left(\mathbf P_{t/t-1}^{-1}\hat{\mathbf w}_{t/t-1}+(y_t-1/2)\mathbf x_t\right)\] \(\!\)
Type | Details | |
---|---|---|
Ptm | Float[Array, ‘N N’] | \(\mathbf P_{t/t-1}\) |
Ptt_ | Float[Array, ‘N N’] | \(\mathbf P_{t/t}\) |
w | Float[Array, ‘N’] | \(\hat{\mathbf w}_{t/t-1}\) |
x | Float[Array, ‘N’] | \(\mathbf x_t\) |
y | Float[Array, ’’] | \(y_t\) |
Returns | Float[Array, ‘N’] | \(\hat{\mathbf w}_{t/t}\) |
xit
xit (Cov:jaxtyping.Float[Array,'NN'], w:jaxtyping.Float[Array,'N'], x:jaxtyping.Float[Array,'N'])
\(\!\) 変分パラメータ \(\xi_t\) \[\xi_t=\sqrt{\mathbf x_t^T\mathbb E[\mathbf w\mathbf w^T]\mathbf x_t}=\sqrt{\mathbf x_t^T\left(\boldsymbol \Sigma+\hat{\mathbf w}\hat{\mathbf w}^T\right)\mathbf x_t}\] \(\!\)
Type | Details | |
---|---|---|
Cov | Float[Array, ‘N N’] | \(\boldsymbol\Sigma\) |
w | Float[Array, ‘N’] | \(\hat{\mathbf w}\) |
x | Float[Array, ‘N’] | \(\mathbf x_t\) |
Returns | Float[Array, ’’] | \(\xi_t\) |
VApre_out
VApre_out (W:jaxtyping.Float[Array,'TN'], P:jaxtyping.Float[Array,'TNN'], Xi:jaxtyping.Float[Array,'T'])
\(\!\) VApre
関数の返り値
\(\!\) | Type | Details |
---|---|---|
W | Float[Array, ‘T N’] | \(\{\hat{\mathbf w}_{t/t}\}_{t=0,\ldots,T-1}\) |
P | Float[Array, ‘T N N’] | \(\{\mathbf P_{t/t}\}_{t=0,\ldots,T-1}\) |
Xi | Float[Array, ‘T’] | \(\{\xi_t\}_{t=0,\ldots,T-1}\) |
\(\!\)
VApre
VApre (N:int, T:int, x:jaxtyping.Float[Array,'{T}{N}'], y:jaxtyping.Float[Array,'{T}{N}'], G:jaxtyping.Float[Array,'{N}{N}'], w0:jaxtyping.Float[Array,'{N}'], P0:jaxtyping.Float[Array,'{N}{N}'])
\(\!\) 一段予測推定値 \(\hat{\mathbf w}_{t/t-1}\) を使う変分近似法 \[\xi_t=\sqrt{\mathbf x_t^T\left(\mathbf P_{t/t-1}+\hat{\mathbf w}_{t/t-1}\hat{\mathbf w}_{t/t-1}^T\right)\mathbf x_t}\] \(\!\)
Type | Details | |
---|---|---|
N | int | \(N\) |
T | int | \(T\) |
x | Float[Array, ‘{T} {N}’] | \(\{ \mathbf x_t \}_{t=0,\ldots,T-1}\) |
y | Float[Array, ‘{T} {N}’] | \(\{ y_t \}_{t=0,\ldots,T-1}\) |
G | Float[Array, ‘{N} {N}’] | \(\boldsymbol\Gamma\) |
w0 | Float[Array, ‘{N}’] | \(\hat{\mathbf w}_{0/-1}\) |
P0 | Float[Array, ‘{N} {N}’] | \(\mathbf P_{0/-1}\) |
Returns | VApre_out |
VAEM_out
VAEM_out (W:jaxtyping.Float[Array,'TN'], P:jaxtyping.Float[Array,'TNN'], Xi:jaxtyping.Float[Array,'T'], Iters:jaxtyping.Int[Array,'T'])
\(\!\) VAEM
関数の返り値
\(\!\) | Type | Details |
---|---|---|
W | Float[Array, ‘T N’] | \(\{\hat{\mathbf w}_{t/t}\}_{t=0,\ldots,T-1}\) |
P | Float[Array, ‘T N N’] | \(\{\mathbf P_{t/t}\}_{t=0,\ldots,T-1}\) |
Xi | Float[Array, ‘T’] | \(\{\xi_t\}_{t=0,\ldots,T-1}\) |
Iters | Int[Array, ‘T’] | \(\{\mathrm{Iter}_t\}_{t=0,\ldots,T-1}\) |
\(\!\)
VAEM
VAEM (N:int, T:int, x:jaxtyping.Float[Array,'{T}{N}'], y:jaxtyping.Float[Array,'{T}'], G:jaxtyping.Float[Array,'{N}{N}'], w0:jaxtyping.Float[Array,'{N}'], P0:jaxtyping.Float[Array,'{N}{N}'], epsilon:jaxtyping.Float[Array,''], max_iter:int=100)
\(\!\) 濾波推定値 \(\hat{\mathbf w}_{t/t}\) を使う変分近似法。EMアルゴリズムを使う。 \[\xi_t=\sqrt{\mathbf x_t^T\left(\mathbf P_{t/t}+\hat{\mathbf w}_{t/t}\hat{\mathbf w}_{t/t}^T\right)\mathbf x_t}\] \(\!\)
Type | Default | Details | |
---|---|---|---|
N | int | \(N\) | |
T | int | \(T\) | |
x | Float[Array, ‘{T} {N}’] | \(\{ \mathbf x_t \}_{t=0,\ldots,T-1}\) | |
y | Float[Array, ‘{T}’] | \(\{ y_t \}_{t=0,\ldots,T-1}\) | |
G | Float[Array, ‘{N} {N}’] | \(\boldsymbol\Gamma\) | |
w0 | Float[Array, ‘{N}’] | \(\hat{\mathbf w}_{0/-1}\) | |
P0 | Float[Array, ‘{N} {N}’] | \(\mathbf P_{0/-1}\) | |
epsilon | Float[Array, ’’] | \(\epsilon\ge \|\xi\\^{\text{new}}_t-\xi\\^{\text{old}}_t\|\) | |
max_iter | int | 100 | 繰り返し回数の上限 |
Returns | VAEM_out |