テンソルとは
テンソル(Tensor)は、ディープラーニングにおけるデータの基本的な表現形式であり、多次元配列を一般化した数学的概念です。スカラー(0次元テンソル)、ベクトル(1次元テンソル)、行列(2次元テンソル)を含む高次元の数値配列として、ニューラルネットワークのすべてのデータと計算の基盤となります。
| ひとことで言うと | AIが扱うデータの入れ物。数字を何次元にも並べた多次元配列のこと。 |
|---|---|
| どこで使う | ディープラーニングのすべての計算。画像・音声・文章もすべてテンソルになる。 |
| 注意点 | 次元(形)が合わないとエラーになる。学習時のつまずきで最も多い原因。 |
テンソルの次元とランク
テンソルの「ランク」(または「階数」「次元数」)は、その配列の次元の数を表します。画像データは通常3次元テンソル(高さ × 幅 × チャネル)、バッチ処理された画像データは4次元テンソル(バッチサイズ × 高さ × 幅 × チャネル)で表現されます。テンソルの各次元を「軸」と呼び、その大きさを「形状(Shape)」として定義します。
10次元スカラー(数字1つ)
▶
21次元ベクトル(数字の列)
▶
32次元行列(表)
▶
43次元カラー画像1枚
▶
54次元画像をまとめたバッチ
フレームワークにおけるテンソル
PyTorchのtorch.Tensor、TensorFlowのtf.Tensorは、それぞれのフレームワークにおけるテンソルの実装です。これらはGPU上での高速な並列計算をサポートし、自動微分(Autograd)の仕組みと統合されています。テンソルの演算(要素ごとの演算、行列積、畳み込みなど)は、GPUのSIMD演算ユニットで効率的に処理されます。
テンソル演算の重要性
ディープラーニングのすべての計算はテンソル演算として表現されます。行列積による全結合層の計算、テンソルの畳み込みによるCNN層の計算、テンソルの転置やリシェイプによるデータ変換など、テンソル操作の理解はディープラーニングの実装に不可欠です。効率的なテンソル演算のためのハードウェア(GPU、TPU)やライブラリ(cuDNN、oneDNN)の発展が、深層学習の進歩を支えています。