深層学習におけるスカラー、ベクトル、行列、テンソル間の違いと関係

序文

ディープラーニングの性能が従来の機械学習アルゴリズムを上回る理由はニューラル ネットワークと切り離せないものですが、ニューラル ネットワークの最も基本的なデータ構造は和です。ニューラル ネットワークの入力はベクトルであり、次にニューラル ネットワークの入力ベクトルです向量ベクトルは各行列を通じて線形変換され、その後、レイヤーごとの計算を通じて活性化関数の非線形変換を通過し、最終的に損失関数が最小化され、モデルのトレーニングが完了します。したがって、ディープラーニングをしっかり学びたい場合は、これらの基本的なデータ構造をよく理解する必要があります。矩阵

1. テンソル

線形代数を学んだ子供たちは、行列の保存や行列間の演算を容易にするために、行列が行列の加算と減算、行列の転置、行列の点乗算、行列の交差乗算などのさまざまな演算を実行できることを知っています。偉大な神々は PyTorch ライブラリを抽象化しました。PyTorch ライブラリには torch.Tensor というクラスがあります。このクラスには行列変数が格納され、この行列に対してさまざまな演算を実行するための一連のメソッドがあります。上記の行列演算は、対応するものを渡すことができます。 torch.Tensor クラスのメソッド実装。Tensor という言葉は一般に「テンソル」と訳せますが、上記の演算はすべて行列演算です。なぜこの型をテンソルと呼ぶのでしょうか。単に行列と呼ぶだけでは十分ではないでしょうか。テンソルとはどういう意味ですか? 通常、行列を操作するだけでなく、0 次元 (単純な数値)、1 次元行列 (配列)、2 次元行列 (行列)、3 次元 ( 3 次元行列)、と多次元行列、Pytorch これらのさまざまな次元を統一するために、 tensorと呼ばれますこのように、配列1 次テンソル、2 次元行列は2 次テンソル、そして3 次テンソル4 次テンソル5 次テンソル6 次テンソルがあります。Pytorch はTensor、転置、インデックス付け、スライス、数学的演算、線形代数、乱数などを含む 100 以上の演算をサポートしています。つまり、pytorch には、考えられるあらゆる演算に対応するメソッドがあります。
次の図は 3 次元行列です。
ここに画像の説明を挿入

:
  • 次元は通常、N 次元ベクトル、128 次元固有値などのベクトルを記述するために使用されます。ここでの次元は、 tensor の軸定義とは異なりますこの種の N次元ベクトルは依然としてベクトル(つまり、1 次テンソル) を記述します。ここで、N は配列内の要素の数を記述します。
  • 2 次テンソル(つまり行列) は 2 次元平面のような形状であるため、 3 次テンソルは3 次元空間のような形状となり、N 次テンソルはN 次元で表現できます。 array , 次元はtensorの次数を記述するために使用されることがあります。混乱を避けるため、tensor のランクを記述するために次元を使用しないでください。ランクの数は、この tensor が持つ軸の数を表します。

2.スカラー: 次数 0、0 軸、単一の数値 (整数または実数) のテンソル。

Python でスカラーを定義します。

x = 1

3.ベクトル(vector): 次数 1 のテンソル。ベクトル、1 軸、配列とも呼ばれます。

Python でベクトルを定義します: ( Python ではベクトルは1 次元配列として表されます)

import numpy as np
#行向量
a = np.array([1,2,3,4])

4.行列: 次数 2 のテンソル。2 つの軸は通常行と列と呼ばれます。

Python で行列を定義します: (行列はPython では2 次元)

import numpy as np
#矩阵
a = np.array([[1,2,3],[4,5,6],[7,8,9]])

Python で3 次元行列、次数 3 のテンソルを定義します(3 次元行列次数 3 のテンソルは、 Python では 3 次元配列として表されます)

import numpy as np
#张量
a = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])

numpy.ndarrry 型の変数 t の形状 (t.shape) を使って説明します。

  • (1,): スカラー、0 次テンソル、1 次元ベクトル、値は 1 つだけ。
  • (3,): ベクトル、1 次テンソル、3 つの値を持つ 3 次元ベクトル。
  • (5,): ベクトル、1 次テンソル、5 つの値を持つ 5 次元ベクトル。
  • (2, 3): 行列、2 次テンソル、6 つの値、t[0] は 3 次元ベクトルです。
  • (3, 1): 行列、2 次テンソル、3 つの値、t[0] は 1 次元ベクトルです。
  • (3, 4, 5): 60 個の値を持つ 3 次テンソル、t[0,0] は 5 次元ベクトル、t[0] は行列です。

5. スカラー ベクトル行列テンソル間の関係:

スカラーは0维空间中的一个点、ベクトルは一维空间中的一条线、行列は二维空间的一个面、3 次テンソルです是三维空间中的一个体つまり、ベクトルはスカラーで構成され、行列はベクトルで構成され、テンソルは行列で構成されます。

おすすめ

転載: blog.csdn.net/qq_33867131/article/details/131720106