Thu Dec 13 2018

日記

無人島に1つだけ持ってくとしたら精神の安寧.

Qiita はクソ

Qiita はクソ.

たま〜にTwitterでも「こんなヤバイやつがおるぞ!!」と話題になるが、氷山である. Qiita は北極だ.

今日の情報幾何ゼミ

情報幾何ゼミだが今日もやっぱり線形代数の勉強だった. とは言えなんだかんだ新しく知る概念もある (私の勉強不足なんだけど). テンソルの概念を初めて正しく知った. 機械学習界隈では、せいぜい「高次元配列」「行列の凄い版」くらいにしか理解されてない気がする. "Tensorflow" という名前もミスリードだと思う.

.

(有限次元) 線形空間 \(V\) があるとき, その双対空間 \(V^*=\{ f : V \to \mathbb{R} \}\) を以って, \[V^{(r,s)} = \{ f : (V^*)^r \times V^s \to \mathbb R\}\] という空間であって, これに普通の線形空間の構造を入れたものを \((r,s)\) 型のテンソル空間という. その元の \(f \in V^{(r,s)}\) のことをテンソルという. ここで関数は全て (多重) 線形写像. また \(r,s\)\(0\) 以上の自然数.

線形空間の構造というのは念の為に言っておくと, \(f,g \in V^{(r,s)}\) について

  1. \((f+g)(u) = f(u) + g(u)\)
  2. \((\alpha f)(u) = \alpha f(u)\) (\(\forall \alpha \in \mathbb R\))

というように関数どうしの足し算と関数のスカラー倍 (実倍) を定義したもののこと. \(V^*\) にもこの構造が入っている.

また注意点として \(f\) には多重線形写像という制約があるので, 例えば \(V=\mathbb R^m\) といったものを入れることが出来るがその時, \(V^s = (\mathbb R^m)^s\)\((\mathbb R)^{ms}\) とを混合するといけない. 関数の引数側に持ってくるときそれらは全然 (線形) 同型ではない.

.

さてテンソル空間 \(V^{(r,s)}\) には線型空間としての構造を入れたので, 当然ベクトル空間である. 従って「テンソルはベクトルである」は正しい. というわけでベクトルの概念はテンソルよりも広い. よく「テンソルはベクトルの一般化」ということを聞く気けどそれは嘘 (聞かない?).

.

逆にベクトル空間 \(W\) があったとする. 自明ではないが \(W \simeq (W^*)^*\) なので \(W \simeq (W^* \to \mathbb R)\) である. このような同型対応は \[w \mapsto ((w^*) \mapsto (w^*(w)))\] で与えられる. 従って \(w \in W\)\(W^*\) 自体もベクトル空間であることに気をつければ, 確かに \((1,0)\) 型テンソルである.

というわけで一般のベクトル空間は \((1,0)\) 型テンソル空間であると言える.

.

行ベクトルや列ベクトルのように実数を一列に並べたものを数ベクトルといった. 数ベクトルはある自然数 \(n\) を以って \[a \colon \{1,2,\ldots,n\} \to \mathbb R\] と表現できる. 定義域はインデックスに相当する. 例えば \(1 \leq i \leq n\) 番目の成分が \(a_i \in \mathbb{R}\) であるようなベクトル \(a\) 、という風に表現できる.

さてこれは明らかに ベクトル空間 \(\mathbb R^n\)\((0,1)\) 型テンソル \[\alpha \colon \mathbb{R}^n \to \mathbb{R}\] と言える. すなわち, 先ほどのベクトル \(a\)\[\alpha(k_1, \ldots, k_n) = \sum_{i=1}^n k_i a_i\] と表現できる. \[a_i = \alpha(0,\ldots,0,1,0,\ldots,0)\] で戻せて, 線形性があるのでインデックスからの写像と結局同じものになる.