テンソル

テンソルはN次元行列です:

  • スカラーは0次元テンソルです
  • ベクトルは1次元テンソルです
  • 行列は2次元テンソルです

テンソルは、ベクトル行列をより高次元に一般化したものです。

スカラーベクトル
1
1
2
3
 
1 2 3

マトリックステンソル
1 2 3
4 5 6
 
1 2 3
4 5 6
 
4 5 6
1 2 3
 

テンソルランク

テンソルがN次元空間で持つことができる方向の数は、テンソルのランクと呼ばれます。

ランクはRで表されます。

スカラーは単一の数値ですR = 0

  • 軸は0です
  • ランクは0です
  • 0次元テンソルです

ベクトルは数値の配列ですR = 1

  • それは1つの軸を持っています
  • ランクは1です
  • 1次元テンソルです

マトリックスは2次元配列です。R = 2

  • それは2軸を持っています
  • ランクは2です
  • 2次元テンソルです

実テンソル

技術的には、上記のすべてがテンソルですが、テンソルについて話すとき、一般に2より大きい次元(R> 2)の行列について話します。


JavaScriptの線形代数

線形代数では、最も単純な数学オブジェクトはスカラーです。

const scalar = 1;

もう1つの単純な数学オブジェクトは配列です:

const array = [ 1, 2, 3 ];

行列は2次元配列です:

const matrix = [ [1,2],[3,4],[5,6] ];

ベクトルは、1つの列のみで行列として記述できます。

const vector = [ [1],[2],[3] ];

ベクトルは配列として書くこともできます

const vector = [ 1, 2, 3 ];

テンソルはN次元配列です:

const tensor = [ [1,2,3],[4,5,6],[7,8,9] ];

JavaScriptテンソル演算

JavaScriptでテンソル演算をプログラミングすると、簡単にループのスパゲッティになる可能性があります。

JavScriptライブラリを使用すると、頭痛の種を大幅に減らすことができます。

テンソル演算に使用する最も一般的なライブラリの1つは、tensorflow.jsと呼ばれます。

テンソル加算

const tensorA = tf.tensor([[1, 2], [3, 4], [5, 6]]);
const tensorB = tf.tensor([[1,-1], [2,-2], [3,-3]]);

// Tensor Addition
const tensorAdd = tensorA.add(tensorB);

// Result [ [2, 1], [5, 2], [8, 3] ]

テンソル減算

const tensorA = tf.tensor([[1, 2], [3, 4], [5, 6]]);
const tensorB = tf.tensor([[1,-1], [2,-2], [3,-3]]);

// Tensor Subtraction
const tensorSub = tensorA.sub(tensorB);

// Result [ [0, 3], [1, 6], [2, 9] ]

Tensorflowの詳細...