らんだむな記憶

blogというものを体験してみようか!的なー

テンソルネットワーク (2)

よく分からないけど、Tensor Network を眺める。
脚の数によって、ベクトル, 行列, テンソル・・・となるらしい。それは面倒くさいので、脚が $n$ 本なら $n$ 階のテンソルと考えた方が良いだろう。$T_{ijk}$ なら 3 階のテンソルなので、脚は 3 本となる。機械学習との絡みで理解したいので、3 次元のリスト程度に考えている。

だと脚が 1 本同士で繋がっているので、1 階のテンソル (ベクトル) の縮約 (contraction) を記述するらしい。アインシュタインの縮約記法 - Wikipedia とか、テンソルの縮約 - Wikipedia とかを念頭に置きつつ、添字についての和を大袈裟な用語で呼んでいると考えたら良いだろう。

さて、上記の 1 階のテンソルの縮約に戻ると、これは $u = \{u_i\}$ と $v = \{v_j\}$ について

$$
\begin{align*}
u_i v_i = \sum_i u_i v_i
\end{align*}
$$

を表しているので、ベクトルの内積、或はドット積である。
次に、

は、2 階のテンソル (行列) の縮約で、跡 (trace) を表している。$A = (a_{ij})$ と $B = (b_{jk})$ と $C = (c_{ik})$ という行列があって、$C = A B$ となっているとすると、

$$
\begin{align*}
c_{ik} = a_{ij} b_{jk} = \sum_{j} a_{ij} b_{jk}
\end{align*}
$$

である。上記の図はこれについて

$$
\begin{align*}
a_{ij} b_{ji} = \sum_{i} \sum_{j} a_{ij} b_{ji} = \sum_i c_{ii} = \mathrm{Tr}(C)
\end{align*}
$$

を求めていることになる。

だと、3 つの行列の積のトレースである。一旦、

というように切開するとこれは 3 つの行列の積であることがわかるので、その積行列の 2 つの添字をそろえて和をとるということは、トレースをとっていることになる。

と、こんな落書きを残しておくと、多少怖さが薄らぐので次に見た時に比較的心理的な抵抗が低く眺めることができるであろう。