機械学習において、テンソルという用語は非公式には2つの異なる概念、すなわち(i)データの整理方法と(ii)多重線形(テンソル)変換を指します。データは多次元配列(M次元配列)に整理される場合があり、非公式には「データテンソル」と呼ばれます。しかし、厳密な数学的意味では、テンソルは一連のドメインベクトル空間からレンジベクトル空間への多重線形写像です。M次元配列(「データテンソル」)に格納された画像、動画、音量、音声、単語や概念間の関係性などの観測データは、人工ニューラルネットワークまたはテンソル法によって分析できます。[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ]
テンソル分解は、データテンソルをより小さなテンソルに分解する。[ 1 ] [ 6 ]データテンソルの演算は、行列の乗算とクロネッカー積で表現できる。[ 7 ]バックプロパゲーションの重要な側面である勾配 の計算は、 PyTorchやTensorFlowなどのソフトウェアライブラリを使用して実行できる。[ 8 ] [ 9 ]
計算は、 CUDAを使用したグラフィック処理装置(GPU)や、GoogleのTensor Processing Unit、NvidiaのTensor Coreなどの専用ハードウェアで実行されることが多くなっています。これらの開発により、ニューラルネットワークアーキテクチャは大幅に加速され、学習可能なモデルのサイズと複雑さが増加しました。
歴史
テンソルは定義上、多重線型写像です。数学においては、代数的対象の集合間の多重線型関係を表現することができます。物理学においては、空間の各点におけるテンソルとして捉えられるテンソル場は、応力や弾性といった力学特性を表現するのに役立ちます。機械学習においては、テンソルの正確な用途は、用いられる統計的アプローチによって異なります。
2001年当時、信号処理と統計の分野ではテンソル法が利用されていました。ピエール・コモンは、電気通信、無線監視、ケモメトリクス、センサー処理といった分野におけるテンソル法の初期の導入状況を概説しています。線形テンソルランク法(Parafac/CANDECOMPなど)は、ブラインド信号源分離問題においてデータの線形モデルを計算するために用いられる高次統計量で構成されるM次元配列(「データテンソル」)を解析しました。コモンは、テンソルランクの決定と効率的なテンソルランク分解における初期の限界をいくつか指摘しました。[ 10 ]
2000年代初頭、多重線形テンソル法[ 1 ] [ 11 ]は、 Vasilescu による論文や Terzopoulos との共同研究による Human Motion Signatures、[ 12 ] [ 13 ] TensorFaces [ 14 ] [ 15 ] TensorTextures [ 16 ] 、Multilinear Projection [ 17 ] [ 18 ] などの論文を通じて、コンピュータビジョン、コンピュータグラフィックス、機械学習の分野に進出しました。高次テンソルの代数である多重線形代数は、観測値のアンサンブルの多因子構造を分析し、各因果要因に関連付けられた2次[ 14 ]またはより高次の統計量に基づいて因果要因を分離するという困難な問題に対処するのに適した透過的なフレームワークです。[ 15 ]
テンソル(多線型)因子分析は、多線型部分空間学習を用いて、異なる因果因子の影響を分離し、低減します。[ 19 ] 画像や動画を2次元または3次元配列、つまり「データ行列/テンソル」として扱う場合、テンソル法は、WangとAhujaによって実証されているように、空間的または時間的な冗長性を低減します。[ 20 ]
Yoshua Bengio [ 21 ] [ 22 ] 、 Geoff Hinton [ 23 ] [ 24 ]および彼らの協力者は、入力としてM方向配列(「データテンソル」)を使用する以上の、ディープニューラルネットワークとテンソル因子分析[ 14 ] [ 15 ]の関係について簡単に説明しています。ニューラルネットワークにおけるテンソルの初期の用途の1つは、自然言語処理に登場しました。単一の単語は、 Word2vecを介してベクトルとして表現できます。[ 5 ]したがって、2つの単語の関係は、マトリックスでエンコードできます。ただし、主語-目的語-動詞などのより複雑な関係については、より高次元のネットワークを構築する必要があります。2009年に、Sutskeverの研究は、パラメータ空間を削減しながら関係概念をモデル化するために、ベイズクラスター化テンソル因子分解を導入しました。[ 25 ] 2014年から2015年にかけて、畳み込みニューラルネットワーク(CNN)においてテンソル法がより一般的に使用されるようになりました。テンソル法は、ニューラルネットワークの重みを「データテンソル」に整理し、ニューラルネットワークの重みの数を分析して削減します。[ 26 ] [ 27 ] Lebedevらは、4Dカーネルテンソルを用いて、文字分類(画像内の文字と数字の認識)用のCNNネットワークを高速化しました。[ 28 ]
意味
を実数や複素数などの体とします。テンソルとは、定義域ベクトル空間の集合から値域ベクトル空間への多重線型変換です。
ここで、およびは正の整数であり、はテンソルのモード数(多元配列の元数とも呼ばれる)である。モードの次元は、に対して である。[ 14 ] [ 15 ] [ 29 ] [ 5 ]
統計学と機械学習において、画像は単一の観測値として捉えられる際にベクトル化され、ベクトル化された画像の集合は「データテンソル」として整理されます。例えば、顔の形状、表情、照明条件、観察条件など、複数の因果要因の結果であるピクセルを持つ顔画像集合は、データテンソル(つまり多元配列)に整理されます。ここで 、は顔の形状の総数、 は表情の総数、 は照明条件の総数、は 観察条件の総数です。TensorFacesや多重線形(テンソル)独立成分分析などのテンソル分解法は、データテンソルを因果要因表現にまたがるベクトル空間の集合に分解します。画像は、因果要因表現の集合をピクセル空間にマッピングする テンソル変換の結果です。
機械学習においてテンソルを用いるもう一つのアプローチは、様々なデータタイプを直接埋め込むことです。例えば、グレースケール画像は通常、次元 の 離散2次元配列として表現されます 。ここで 、 は行数、は列数です。画像を2次元配列または2次テンソル(つまり、列/行の観測値の集合)として扱う場合、テンソル分解法は画像の列空間、画像の行空間、および正規化されたPCA係数またはICA係数を計算します。
同様に、RGB チャンネルを持つカラー画像は、3 次データ テンソルまたは 3 方向配列として表示できます。--------
自然言語処理では、単語はWord2vecアルゴリズムによってベクトルとして表現される。これはモード1テンソルとなる。
主語-目的語-動詞の意味の埋め込みには、3つの単語間の埋め込み関係が必要です。単語自体がベクトルであるため、主語-目的語-動詞の意味はモード3テンソルを用いて表現できます。
実際には、ニューラルネットワーク設計者は主に、埋め込みの仕様、テンソル層の接続、そしてネットワーク内でそれらに対して実行される演算に関心を持ちます。最新の機械学習フレームワークは、最適化、テンソル分解、そしてバックプロパゲーションを自動的に管理します。
単位値として

テンソルは、スカラー値、ベクトル値、行列値の概念を複数の次元に拡張するニューラル ネットワークの単位値として使用できます。
単層ユニットの出力値は、その入力ユニットと活性化関数を通してフィルタリングされた接続重みの積の合計です。
どこ

の各出力要素がスカラーである場合、人工ニューラルネットワークの古典的な定義が得られます。各ユニット要素をテンソルに置き換えることで、ネットワークは画像や動画などの高次元データを表現できるようになります。
テンソルを用いてユニット値を置き換える手法は、畳み込みニューラルネットワークにおいて一般的です。畳み込みニューラルネットワークでは、各ユニットは複数の層を経て処理された画像である場合があります。このようなネットワーク構造では、データをテンソルに埋め込むことで、複雑なデータ型の学習が可能になります。
完全結合層では

テンソルは、完全に接続されたニューラル ネットワークのレイヤーを計算するためにも使用できます。この場合、テンソルは個々の単位値ではなくレイヤー全体に適用されます。
単層ユニットの出力値は、その入力ユニットと活性化関数を通してフィルタリングされた接続重みの積の合計です。
出力値のベクトルとベクトルはモード1テンソルとして表現でき、隠れ層の重みはモード2テンソルとして表現できます。この例では、ユニット値はスカラーであり、テンソルはネットワーク層の次元を持ちます。
この表記法では、出力値は入力テンソルと重みテンソルのテンソル積として計算できます。
これは、テンソル乗算(行列乗算に類似)として和積を計算します。
このテンソルの定式化により、単位と重みをテンソルにマッピングすることで、完全接続ネットワークのレイヤー全体を効率的に計算できるようになります。
畳み込み層では
ニューラルネットワークの別の定式化により、テンソルを用いてニューラルネットワークの畳み込み層を表現できるようになります。畳み込み層には複数の入力があり、それぞれが画像やボリュームなどの空間構造です。入力はフィルタリングによって畳み込まれてから次の層に渡されます。典型的な用途は、画像認識における特徴検出や特徴分離です。
畳み込みは、入力信号とフィルタカーネルの乗算として計算されることが多い。2次元では、離散有限形式は次のようになる。
ここでカーネルの幅です。
この定義は、カーネル、データ、カーネルの逆変換を表すテンソルの観点から、行列ベクトル積として言い換えることができる。[ 30 ]
ここで、 と はそれぞれ逆変換、データ、カーネルです。フィルタリングカーネルにシグモイド関数やReLU関数などの非線形活性化関数が含まれる場合、導出はより複雑になります。
畳み込み層の隠れ重みはフィルタのパラメータです。これらはプーリング層によって削減され、データの解像度(サイズ)が削減されます。また、テンソル演算として表現することもできます。
テンソル分解
機械学習におけるテンソルの重要な貢献は、テンソルを因数分解してデータを構成因子に分解したり、学習済みパラメータを削減したりする能力です。データテンソルモデリング技術は、線形テンソル分解(CANDECOMP/Parafac分解)と多重線形テンソル分解(Tucker)に由来しています。
タッカー分解

例えば、タッカー分解は、3元配列を受け取り 、テンソルを3つの行列と1つの小さなテンソルに分解します。行列と新しいテンソルの形状は、要素の総数が減少するように設計されています。新しいテンソルの形状は、
すると、元のテンソルは、次の 4 つのテンソルのテンソル積として表すことができます。
図に示す例では、テンソルの次元は
- : I=8、J=6、K=3、: I=8、P=5、: J=6、Q=4、: K=3、R=2、: P=5、Q=4、R=2。
タッカー分解の要素の総数は
元のテンソルの要素数は144ですが、結果としてデータは144から110に削減され、パラメータまたはデータサイズが23%削減されます。初期テンソルがはるかに大きい場合、またテンソルのランク(冗長性)によっては、より大きな効果が得られる可能性があります。
ラバンサーらの研究は、ここで示したモード3の例を超えて、タッカー分解をN次元に拡張する方法についてより詳しく解説したテンソル入門書である。[ 5 ]
テンソル列車
テンソルを分解する別の手法として、元のテンソルをより小さなサイズのテンソルの列(列)に書き換える方法があります。テンソル列(TT)とは、標準因子と呼ばれる、ランクが下げられたテンソルの列です。元のテンソルは、この列の和積として表すことができます。
2011年にIvan Oseledtsによって開発されたタッカー分解は、「小さな次元、特に3次元の場合に適している。大きなdには適していない」と著者は指摘している。[ 31 ]したがって、テンソル列は、高次元のより大きなテンソルを因数分解するために使用できます。
テンソルグラフ
統一されたデータアーキテクチャとテンソルの自動微分化により、テンソルグラフという形で機械学習の高次設計が可能になりました。これにより、データ内の高度に非線形な関連性を識別し、複数の関係を統合し、堅牢性とパフォーマンスを維持しながら、柔軟にスケーリングできるテンソルグラフ畳み込みネットワーク(TGCN)などの新しいアーキテクチャが生まれました。[ 32 ]
これらの開発は、テキストマイニングやクラスタリング、時間変動データ、入力データがソーシャルグラフでありデータが動的に変化するニューラルネットワークなど、機械学習のあらゆる分野に影響を与えています。[ 33 ] [ 34 ] [ 35 ] [ 36 ]
ハードウェア
テンソルは、より複雑なデータセットに対してニューラルネットワークを学習するための統一的な方法を提供します。しかし、従来のCPUハードウェアでは学習に多大なコストがかかります。
2014年、NVIDIAはCUDAディープニューラルネットワーク(CUDA Deep Neural Network)の略称であるcuDNNを開発しました。これは、並列CUDA言語で記述された最適化されたプリミティブ群のライブラリです。 [ 37 ] CUDAとcuDNNは、ハードウェアで統合された大規模並列処理を実現する専用GPU上で動作します。これらのGPUは、当時はまだテンソル専用のチップではなく、機械学習における並列計算向けに適応された既存のハードウェアでした。
2015年から2017年にかけて、GoogleはTensor Processing Unit(TPU)を発明しました。[ 38 ] TPUは、テンソル積に必要な行列乗算に特化した専用の固定機能ハードウェアユニットです。具体的には、256×256行列の和積をわずか1つのグローバル命令サイクルで実行できる65,536個の乗算ユニットの配列を実装しています。[ 39 ]
2017年後半、NvidiaはVolta GPUアーキテクチャを搭載した独自のTensor Coreをリリースしました。各Tensor Coreは、4x4行列の積和演算を実行できるマイクロユニットです。共有メモリ(SM)ブロックごとに8つのTensor Coreが存在します。[ 40 ]最初のGV100 GPUカードには108個のSMが搭載され、合計672個のTensor Coreが存在します。このデバイスは、機械学習を以前のTesla GPUと比較して12倍高速化しました。[ 41 ]新しい世代のカードでは、コア数とSMユニット数が増加し続けるため、Tensor Coreの数も増加します。
GPUハードウェアの開発と、テンソルコアの統合アーキテクチャの組み合わせにより、はるかに大規模なニューラルネットワークのトレーニングが可能になりました。2022年、最大のニューラルネットワークは5400億の学習済みパラメータ(ネットワークの重み)を持つGoogleのPaLMでした[ 42 ](古いGPT-3言語モデルは1750億を超える学習済みパラメータを持ち、人間のようなテキストを生成します。サイズがすべてではなく、スタンフォードのはるかに小さい2023 Alpacaモデルは、より優れていると主張しており[ 43 ] 、Meta / Facebookの2023モデルLLaMA(より小さな70億パラメータの亜種)から学習しました)。広く普及しているチャットボットChatGPTは、教師あり学習と強化学習を使用してGPT-3.5(およびアップデート後のGPT-4 )上に構築されています。
参考文献
- ^ a b c Vasilescu, MAO; Terzopoulos, D (2007). 「多重線形(テンソル)画像合成、分析、認識 [探索的DSP]」(PDF) . IEEE Signal Processing Magazine . 24 (6): 118– 123. Bibcode : 2007ISPM...24R.118V . doi : 10.1109/MSP.2007.906024 .
- ^ Vasilescu, MAO (2009),コンピュータグラフィックス、コンピュータビジョン、機械学習のための多重線形(テンソル)代数フレームワーク(PDF)、トロント大学
- ^ Kolda, Tamara G.; Bader, Brett W. (2009-08-06). 「テンソル分解とその応用」 . SIAM Review . 51 (3): 455– 500. Bibcode : 2009SIAMR..51..455K . doi : 10.1137/07070111X . ISSN 0036-1445 . S2CID 16074195 .
- ^ Sidiropoulos, Nicholas D.; De Lathauwer, Lieven; Fu, Xiao; Huang, Kejun; Papalexakis, Evangelos E.; Faloutsos, Christos (2017-07-01). 「信号処理と機械学習のためのテンソル分解」. IEEE Transactions on Signal Processing . 65 (13): 3551– 3582. arXiv : 1607.01668 . Bibcode : 2017ITSP...65.3551S . doi : 10.1109/TSP.2017.2690524 . ISSN 1053-587X . S2CID 16321768 .
- ^ a b c d Rabanser, Stephan (2017). 「テンソル分解入門と機械学習への応用」. arXiv : 1711.10781 [ stat.ML ].
- ^ Sidiropoulous, N (2016). 「信号処理と機械学習のためのテンソル分解」. IEEE Transactions on Signal Processing . 65 (13).
- ^ Grout, I (2018). 「フィールドプログラマブルゲートアレイを用いたテンソル実装および解析におけるハードウェアの考慮事項」 .エレクトロニクス. 7 (320): 320. doi : 10.3390/electronics7110320 . hdl : 10344/7368 .
- ^ Paszke, A (2019). 「PyTorch: 命令型スタイルの高性能ディープラーニングライブラリ」.第33回国際神経情報処理システム会議論文集: 8026–037 . arXiv : 1912.01703 .
- ^ Adabi, M (2016). 「TensorFlow: 大規模機械学習のためのシステム」(PDF) .第12回USENIXオペレーティングシステム設計・実装シンポジウム議事録. arXiv : 1605.08695 .
- ^コモン、ピエール(2001)、「テンソル分解:最新技術と応用」、信号処理数学、オックスフォード大学出版局
- ^ Vasilescu, MAO; Shashua, Amnon (2007)、「機械学習、コンピュータビジョン、コンピュータグラフィックスのためのテンソル法チュートリアル」、国際機械学習会議
- ^ Vasilescu, MAO (2002)、「人間の動作の特徴:分析、合成、認識」、第3巻、国際パターン認識会議論文集(ICPR 2002)、pp. 456– 460
- ^ Vasilescu, MAO (2001)、「人間の動作の特徴を抽出するためのアルゴリズム」、コンピュータビジョンとパターン認識 CVPR 2001 技術スケッチ
- ^ a b c d Vasilescu, MAO; Terzopoulos, D. (2002).画像アンサンブルの多重線型解析:TensorFaces (PDF) . Lecture Notes in Computer Science 2350; (Proc. 7th European Conference on Computer Vision (ECCV'02), Copenhagen, Denmark). Springer, Berlin, Heidelberg. doi : 10.1007/3-540-47969-4_30 . ISBN 9783540437451. 2022年12月29日時点のオリジナル(PDF)からアーカイブ。2023年3月18日閲覧。
- ^ a b c d Vasilescu, MAO; Terzopoulos, D. (2005),多重線形独立成分分析(PDF) , L Proceedings of the 2005 IEEE Computer Vision and Pattern Recognition Conference (CVPR 2005), San Diego, CA
- ^ Vasilescu, MAO; Terzopoulos, D. (2004)、「TensorTextures: Multilinear Image-Based Rendering」(PDF)、ACM Transactions on Graphics、第23巻、第3号、pp. 336– 342、doi : 10.1145/1015706.1015725
- ^ Vasilescu, MAO (2011).正準分解による顔認識のための多重線形投影. Face and Gesture Conference (FG'11) Proc. 476– 483.
- ^ Vasilescu, MAO; Terzopoulos, D. (2007)、「Tensor Frameworkにおける外観ベース認識のための多重線形投影」、第11回IEEE国際コンピュータビジョン会議(ICCV'07)論文集、pp. 1– 8
- ^ Vasilescu, MAO; Terzopoulos, D. (2003)、「Multilinear Subspace Learning of Image Ensembles」、2003 IEEE Computer Society Conference on Computer Vision and Pattern Recognition、2003 年。議事録。
- ^ Wang, H; Narendra, Ahuja (2005),画像行列表現を用いたテンソルのRank-R近似, IEEE Computer Society Conference on Computer Vision and Pattern Recognition
- ^ Desjardins, Guillaume; Courvile, Aaron; Bengio, Yoshua (2012). 「生成的エンタングルによる変異因子の分離」arXiv : 1210.5474 [ stat.ML ].
- ^ベンジオ、ヨシュア、クールヴィル、アーロン (2013). 「生成的エンタングルメントによる変異因子の分離」神経情報処理ハンドブック: 1–28 . ISBN 9783642366574。
- ^ Tang, Yichuan; Salakhutdinov, Ruslan; Hinton, Geoffrey (2013). 「テンソルアナライザー」(PDF) .第30回国際機械学習会議.
- ^ Memisevic, Roland; Hinton, Geoffrey (2010). 「Factored Higher-Order Boltzmann Machinesによる空間変換の表現学習」 ( PDF) . Neural Computation . 22 (6): 1473– 1492. doi : 10.1162/neco.2010.01-09-953 . PMID 20141471. S2CID 1413690 .
- ^ Sutskever, I (2009). 「ベイズクラスター化テンソル分解を用いたリレーショナルデータのモデリング」.ニューラル情報処理システムの進歩. 22 .
- ^ Novikov, A; Dmitry, P; Osokin, A; Vetrov, D (2015)、「Tensorizing Neural Networks」、Neural Information Processing Systems、arXiv : 1509.06569
- ^ Kossaifi, Jean (2019). 「T-Net: 単一の高次テンソルによる完全畳み込みネットのパラメータ化」. arXiv : 1904.02698 [ cs.CV ].
- ^ Lebedev, Vadim (2014)「微調整されたCP分解を用いた畳み込みニューラルネットワークの高速化」arXiv : 1412.6553
- ^ Vasilescu, M. Alex O. (2009)「コンピュータグラフィックス、コンピュータビジョン、機械学習のための多重線形(テンソル)フレームワーク」(PDF)
- ^ Bedden, David (2017). 「マルチコアにおけるディープテンソル畳み込み」. arXiv : 1611.06565 [ cs.CV ].
- ^ Oseledets, Ivan (2011). 「テンソル-トレイン分解」. SIAM Journal on Scientific Computing . 33 (5): 2295– 2317. Bibcode : 2011SJSC...33.2295O . doi : 10.1137/090752286 . S2CID 207059098 .
- ^ Ioannidis, Vassilis (2020). 「多関係性と堅牢性を備えた学習のためのテンソルグラフ畳み込みネットワーク」. IEEE Transactions on Signal Processing . 68 : 6535–6546 . arXiv : 2003.07729 . Bibcode : 2020ITSP...68.6535I . doi : 10.1109/TSP.2020.3028495 . S2CID 212736801 .
- ^ Boutalbi, Rafika (2022). 「テキストデータクラスタリングのためのテンソルベースのグラフモジュール性」第45回国際ACM SIGIR情報検索研究開発会議議事録。
- ^ Malik, Osman (2019). 「時間変動グラフ学習のためのテンソルグラフニューラルネットワーク」2019年神経情報処理会議 (NeurIPS)。
- ^ Manessi, Franco; Rozza, Alessandro; Manzo, Mario (2020). 「動的グラフ畳み込みネットワーク」.パターン認識. 97 107000. arXiv : 1704.06199 . Bibcode : 2020PatRe..9707000M . doi : 10.1016/j.patcog.2019.107000 . S2CID 16745566 .
- ^ Malik, Osman. 「テンソルM積を用いた動的グラフ畳み込みネットワーク」。
- ^ Serrano, Jerome (2014). 「Nvidia、CUDAベースのディープニューラルネットワークライブラリ「cuDNN」を発表」
- ^ Jouppi, Norman; Young; Patil; Patterson (2018). 「初のテンソル処理装置の目的と評価」. IEEE Micro . 38 (3): 10– 19. Bibcode : 2018IMicr..38c..10J . doi : 10.1109/MM.2018.032271057 . S2CID 21657842 .
- ^ Hemsoth, Nicole (2017). 「GoogleのTPUアーキテクチャの初徹底解説」 The Next Platform .
- ^ 「NVIDIA Tesla V100 GPUアーキテクチャ」(PDF) 2017年。
- ^ Armasu, Lucian (2017). 「Tensor、Tensorflow、そしてNvidiaの最新の『Tensorコア』について」「。
- ^ 「Pathways Language Model (PaLM): 5400億パラメータへのスケーリングで画期的なパフォーマンスを実現」 ai.googleblog.com . 2023年3月29日閲覧。
- ^ 「アルパカ:強力で再現可能な指示追従モデル」 crfm.stanford.edu . 2023年3月29日閲覧。