五分で分かるテンソル
まず、この動画を見てほしい。以下にリンクをはる。
https://bit.ly/13XuFoa
このYouTubeの動画は、Dan Fleischというアメリカの大学教授が公開しているものだ。英語はたいして難しくないが、見ているだけでだいたい言いたいことはわかる。この動画は十二分あるので既に五分をオーバーするが、これから加速します。テンソルとは何か、を一行で書くなら、
テンソルとは多次元配列である。
以上である。これだけで分かる人には分かってしまうが、もっと丁寧に説明すると、まず配列を理解してもらいたい。別にプログラミングを勉強する必要はない。見ればだいたい分かると思う。C言語で書いているのは、Pythonだと分かりにくいからである。
int array; <==0次元配列
int array[]; <==1次元配列
int array[][]; <==2次元配列
int array[][][]; <==3次元配列
配列とはこんなもので、要するにデータのかたまりのことである。arrayは英語で配列の意味で、別にaでもbでもかまわない。intとは整数のことで、int arrayは一個の整数のことだ。行末のセミコロンは改行マークである。
以下配列にはデータ{0,1,2,...}が入っているとすると、
int array = 0;
int array[3] = {0,1,2};
int array[3][3] = {0,1,2,...,8};
int array[3][3][3] = {0,1,2,...,26};
このようなデータのかたまりを配列という。ちなみに配列要素数は3でなくてかまわない。
実は、
0階のテンソル==> int array = 0;
1階のテンソル==> int array[3] = {0,1,2};
2階のテンソル==> int array[3][3] = {0,1,2,...,8};
3階のテンソル==> int array[3][3][3] = {0,1,2,...,26};
ということなのだ。さらにイメージをつかみやすくすると、
0階のテンソル==> スカラー
1階のテンソル==> ベクトル
2階のテンソル==> 行列
3階のテンソル==> 3次元配列
である。そして図形にすると、
0階のテンソル==> 点
1階のテンソル==> 直線
2階のテンソル==> 正方形
3階のテンソル==> 立方体
となる。正方形や立方体は、要素数が同じ場合だが、イメージを優先した。
テンソルとはどんなものか、分かっていただけただろうか。