テンソル積計算機

2つのベクトルのテンソル積(外積)を計算し、行列または平坦化ベクトルで表示します。

2つのベクトルをカンマ区切りまたは空白区切りの数値で入力し、出力形式を選んで[計算]をクリックしてください。

テンソル積計算機
2つのベクトルのテンソル積(外積)を計算し、行列または平坦化ベクトルで表示します。

テンソル積計算機について

テンソル積は、ベクトルの文脈では外積とも呼ばれ、2つのベクトルから行列を作る線形代数の基本演算です。m 個の成分をもつベクトル u と n 個の成分をもつベクトル v があるとき、そのテンソル積 u ⊗ v は m × n 行列になり、i 行 j 列の要素は uᵢ と vⱼ の積になります。これは、2つのベクトルを1つのスカラーに縮約する内積とは対照的であり、3次元ベクトルにのみ適用され別のベクトルを返す外積とも異なります。 数学的には、u = [u₁, u₂, …, uₘ]、v = [v₁, v₂, …, vₙ] なら、任意の有効な (i, j) について (u ⊗ v)ᵢⱼ = uᵢvⱼ です。計算量は O(mn) なので、比較的大きめのベクトルでも効率的です。テンソル積は双線形であり、どちらか一方のベクトルを同じ倍率で拡大すると結果も同じ倍率で拡大し、ベクトルの加法に対して分配的です。 テンソル積は可換ではありません。u ⊗ v と v ⊗ u は通常異なる行列で、前者は m × n、後者は n × m になります(m = n で特別な関係がある場合を除く)。第1ベクトルが行を、第2ベクトルが列を決めるためです。この非対称性は、物理や機械学習で順序に物理的・意味的な重要性があるときに特に重要です。 量子力学では、テンソル積は複合系を表すうえで不可欠です。2つの量子系を結合すると、複合系の状態空間は各状態空間のテンソル積になります。たとえば、2量子ビット系の状態空間は4次元で、これは2次元の量子ビット空間2つのテンソル積です。量子もつれは、複合状態が個々の状態の単純なテンソル積として書けないときに現れます。 機械学習やデータサイエンスでは、テンソル積(およびその高次の一般化であるテンソル)が、Transformer の注意機構、推薦システムの特徴交差、画像処理の分離畳み込みを支えています。たとえばガウスぼかしカーネルは、1次元の水平ガウスフィルタと1次元の垂直ガウスフィルタのテンソル積として表せ、効率的な分離計算を可能にします。 信号処理では、多次元フィルタを1次元フィルタのテンソル積として表すことで、大きな計算削減が可能になります。この計算機が出力する平坦化ベクトルは、全結合ニューラルネットワーク層のように、後続処理で1次元入力を期待する場面で特に便利です。

テンソル積の例

異なるベクトル次元と出力形式を示す4つの実例です。

ベクトル結果注記
u = [1, 2], v = [3, 4][[3, 4], [6, 8]]2 × 2 行列。要素 (1,1) = 1×3 = 3、要素 (2,2) = 2×4 = 8。
u = [1, 2, 3], v = [4, 5][[4, 5], [8, 10], [12, 15]]3 × 2 行列で、ベクトルの長さが異なってもよいことが分かります。
u = [1, 0], v = [0, 1][[0, 1], [0, 0]] | flattened: [0, 1, 0, 0]標準基底ベクトルの外積。非ゼロ要素は第1行第2列にのみ現れます。
u = [2, 3], v = [1, 4][[2, 8], [3, 12]]一般的な 2 × 2 のケース。結果の各行は、u の対応成分で v をスケーリングしたものです。

テンソル積計算機の使い方

  1. 第1ベクトル u の成分を、カンマ区切りまたは空白区切りの数値で入力します。例: 1, 2, 3。
  2. 同じ形式で第2ベクトル v を入力します。2つのベクトルの成分数は異なっていてもかまいません。
  3. 出力形式を選択します。'Matrix Format' は結果を行列として表示し、'Flattened Vector' はすべての要素を1行で表示します。
  4. [計算]をクリックすると、行列サイズとともに結果の行列(または平坦化リスト)が表示されます。
  5. [リセット]をクリックするとすべての欄がクリアされ、新しい計算を始められます。

テンソル積計算機のよくある質問

テンソル積と内積の違いは何ですか?
内積は同じ長さの2つのベクトルを取り、対応する成分の積を足し合わせて1つの数(スカラー)を返します。テンソル積は任意の長さの2つのベクトルを取り、第1ベクトルの各成分と第2ベクトルの各成分をすべて掛け合わせた行列を返します。テンソル積は両方のベクトルの情報をすべて保持しますが、内積はそれを1つの数にまとめます。
2つのベクトルは同じ長さである必要がありますか?
いいえ。ベクトルの成分数は異なっていてもかまいません。u に m 個、v に n 個の成分があれば、結果は m × n 行列になります。これは、同じ長さを必要とする内積のような演算よりもテンソル積が一般的である理由の1つです。
テンソル積は可換ですか?
いいえ。u ⊗ v は一般に v ⊗ u とは異なります。第1ベクトルが常に行を、第2ベクトルが常に列を決めるため、順序を入れ替えると結果の行列は転置され、場合によっては形も変わります。
平坦化ベクトル形式は何を表しますか?
平坦化ベクトルは、m × n の結果行列を行ごとに並べて mn 個の数値からなる1つのリストにしたものです。テンソル積を1次元入力として次の計算に渡したいとき、たとえば固定長の特徴ベクトルを期待する機械学習モデルに入力するときに便利です。
テンソル積は量子計算でどう使われますか?
量子力学では、多粒子系の状態は個々の粒子状態のテンソル積で表されます。2つの量子ビットがそれぞれ [a, b] と [c, d] の状態にある場合、結合した系の状態はそれらのテンソル積であり、4成分ベクトルになります。この形式化が、量子コンピュータの状態空間が指数的に増大する理由です。
クロネッカー積との関係は何ですか?
クロネッカー積は、行列に対するテンソル積の一般化です。入力がベクトル(列行列とみなす)である場合、u ⊗ v は列ベクトル u と行ベクトル vᵀ のクロネッカー積に等しく、同じ m × n 行列を生成します。一般の行列では、クロネッカー積はブロック行列を作ります。