機械学習を初めて学ぶ人であれば、おそらく「テンソル」という言葉を見たことがあるでしょう。テンソルは、機械学習やディープラーニングでよく使われるデータ構造です (Googleの機械学習用オープンソース ソフトウェア ライブラリはTensorFlowとも呼ばれています)。しかし、テンソルとは正確には何でしょうか?
簡単に言えば、テンソルは次元データ構造です。ベクトルは1次元のデータ構造であり、行列は2次元のデータ構造です。テンソルは表面的にはこれらの他のデータ構造に似ていますが、違いは、0からnまでの次元で存在できることです (テンソルのランクと呼ばれ、1次元である第1ランク テンソルなど)。
この表面的な類似性により、テンソルは最初は理解しにくくなることがよくあります。たとえば、2階テンソルを行列として表現できます。テンソルはすべての行列が持つわけではない特性を持つため、「あり得る」という点に重点を置くことは重要です。「すべての正方形は長方形だが、すべての長方形が正方形であるとは限らない」という論理を使用して、 Steven Steinkeは 「任意の階数2のテンソルは行列として表すことができますが、すべての行列が階数2のテンソルであるとは限らない」と説明しています。
テンソルと行列 - 違いは何ですか?
テンソルと行列の重要な違いは、テンソルが動的であることです。この数学的実体は、テンソルが、それが存在する構造の一部として特定の変換規則に従うことを意味します。構造内の他の数学的実体が規則的な方法で変換される場合、テンソルも、システムに対して確立された規則に従って変換されます。すべての行列がこの特性を持つわけではないので、すべての行列が2階テンソルであるわけではありません。
機械学習でテンソルが使用されるのはなぜですか?
テンソルの実用的な定義ができた今、テンソルが機械学習で人気があるのはなぜでしょうか?そうですね、コンピューターは学習するためにデータを必要としますが、テンソルは、多くの種類のデータ、特に大規模で複雑なデータセットを処理するための、より自然で直感的な方法です。次に例を示します。
ビデオは、時間の経過とともに相関する一連の画像です。相関関係を2次元行列に変換するよりも、テンソルを使用すると、より適切かつ直感的に相関関係を表すことができます。3ランクのテンソルは各画像のすべての側面 (高さ、幅、色) をエンコードできますが、4ランクのテンソルは画像の時間や順序に関する情報も保持できます。
したがって、テンソルにより、強力なコンピューターは ビッグデータ の問題をより迅速に解決できるようになり、 ディープラーニング デバイスとニューラル ネットワーク (通常は数百または数千の次元のデータが必要) はデータをより直感的に処理できるようになります。