マトリックスとテンソルのネットワーク図

では 、前のポスト、私はつまり二部グラフとして、行列を考えるための簡単な方法を説明しました。今日は、数学だけでなく、物理学、化学、機械学習でも使用される、行列を描くための別の方法を共有したいと思います。これが基本的な考え方です。実数のエントリを持つm×nm×n行列MMは、Rn→RmRn→Rmからの線形写像を表します。このようなマッピングは、2つのエッジを持つノードとして表すことができます。一方のエッジは入力スペースを表し、もう一方のエッジは出力スペースを表します。

それでおしまい!

この単純なアイデアで多くのことを達成できます。ただし、最初に、図について少し説明します。m×nm×n行列MMを指定するには、すべてのmnmnエントリMijMijを指定する必要があります。インデックスiiの範囲は1からmm(出力スペースの次元)であり、インデックスjjの範囲は1からnn(入力スペースの次元)です。言い換えると、iiはMMの行数をインデックス付けし、jjはその列数をインデックス付けします。必要に応じて、これらのインデックスを画像に含めることができます。

このアイデアは非常に簡単に一般化されます。行列は数値の2次元配列であり、数値のnn次元配列は次数nnのテンソル またはnnテンソルと呼ばれ ます。行列のように、nnテンソルは、次元ごとに1つのエッジを持つノードで表すことができます。

たとえば、数値はゼロ次元配列、つまり点と考えることができます。したがって、これは0テンソルであり、 エッジゼロのノードとして描画できます 同様に、ベクトルは、数値の1次元配列、つまり1テンソルと考えることができます これは、1つの エッジを持つノードによって表されます 行列は 2次元配列であるため、2テンソルです。これは、2つの エッジを持つノードによって表され ます。3テンソルは、  3次元配列であるため、3つの エッジを持つノード などです。

このグラフィカルな表記法では、身近なものに素敵な絵があります。例えば...

行列の乗算はテンソルの縮約です。

2つの行列を乗算することは、それらの画像を「接着」することに対応します。これはテンソルと呼ばれる 収縮

上の図では、インデックスjjが一致するエッジが縮小されています。これは、入力/出力の次元が一致する場合にのみ2つの行列を乗算できるという事実と一致しています。また、結果の画像には2つの無料のインデックスiiとkkがあり、実際に行列を定義していることに気付くでしょう。

ところで、これらの写真を持っていることの重要な特徴は、私たちがインデックスを持ち歩く必要がないということです。だからやめましょう!

簡単なチェック:行列は、ベクトル空間ごとに1つのエッジを持つ単一の ノードとして記述されてい ますが、上の図には 2つの ノードがあります。これでも単一の 行列を表す必要があり ます。そして、私はそれがそうだと主張します!これを確認する良い方法があります。青と緑のノードを一緒にスムージングするだけです。

これは、窓から滴り落ちる雨を思い出させます。2つの雨滴が接触すると、それらは融合してより大きな液滴になります。それが行列-行列の乗算です。同様の図が行列とベクトルの乗算にも当てはまります。行列MMにベクトルvvを乗算すると、別のベクトルMvMvが生成されます。これは、1つの自由端を持つノードです。

より一般的には、2つ以上のテンソルの積は、一致するインデックスを持つエッジに沿って収縮が発生するノードとエッジのクラスターによって表されます。

ノードの形状は、異なる特性を表すことができます。

これまで、すべてのノードを円として描画しました。しかし、これは単なる選択でした。どの形状を使用するかについての公式の規則はありません。それは私たちが創造的になることができることを意味します!たとえば、対称 行列専用に、円または正方形などの他の対称形状を予約したい 場合があります。

次に、行列の 転置 は、その画像を反映することによって表すことができます。

したがって、対称行列の対称性は図に保持されます。

アイソメトリック埋め込みを三角形として描画するというアイデアも気に入っています。

等尺性埋め込みUUは、空間VVからより大きな次元の空間WWへの線形マップであり、ベクトルの長さを保持します。 このようなマップはU⊤U=idVU⊤U= idVを満たしますが、UU⊤≠idWUU⊤≠idWを満たします。つまり、いつでも小さなスペースVVを大きなスペースに埋め込んでから、VVのベクトルを歪めることなくVVに投影して戻すことができます。 トポロジーのリトラクトマップとは異なり ます。)しかし 、WW全体を小さなVVに押し込むことはできません。 その後、VVをWWに戻した後、ダメージを元に戻すことを期待できます。この大きな対小さな特徴は、三角形によって示唆されています。(三角形の底辺はその先端よりも大きいです!)そして、一般に、以下に示すように、単位元線形演算子は直線として描画されます。

行列の因数分解にも素晴らしい画像があります。

行列の乗算のすべてのこの話、すなわちマトリックス組成物と、の行列因数分解、すなわちマトリックスを忘れないようにしましょう 構図!たとえば、すべての行列には 特異値分解があります。これには素晴らしい写真が関連付けられています:

ここで、UUとVVはユニタリ行列であり、したがって等長写像であり、したがって三角形です。行列DDは対角行列で、ひし形で表現したいと思います。要するに、行列因数分解は、単一のノードを複数のノードに分解することです。行列の乗算は、複数のノードを1つのノードに融合することです。

上の図は、これらの図の別の機能を示しています。ノードの空間位置は実際には重要ではありません。黄色、青、緑、ピンクのノードを水平線、垂直線、またはジグザグに描画することもできますが、必要に応じて描画することもできます。唯一重要なことは、ダイアグラムに2つのフリーエッジがあることです。行列の積は別の行列です!

乱雑なプルーフは画像プルーフになります。

このグラフィカルな表記法についてはさらに多くのことが言えますが、もう1つの注目すべき機能で締めくくります。証明は非常に単純になる可能性があります。トレースを例にとってみましょう。マトリックスのトレースには単純な図があります。これは、共通のインデックスに沿った合計として定義されています。

このビーズ付きストリングには、フリーエッジがありません。それはループです。これは、トレースが数値であるという事実と一致してい ます。 これは0テンソルであるため、フリーインデックスはありません。これが、巡回置換の下でトレースが不変であることの証明です。

ネックレスに沿ってビーズをスライドさせるだけです。とてもきれい!

名前って何?

今日の投稿で説明されている、ペンローズのグラフ記法に 端を発するは、テンソルネットワーク図および/または、おそらく若干の違いはありますが、 文字列図と呼ばれ ます 「および/または」はあなたが誰であるかによって異なります つまり、ベクトル空間のマップをエッジのあるノードとして視覚的に表現するというアイデアは、テンソルネットワーク図 と呼ばれる物理学/機械学習コミュニティや、 圏論コミュニティでも使用されています。それらは文字列図と呼ばれ ますこれは、さまざまな目的でほぼ同じ表記法を使用するさまざまなフィールドの場合にすぎないと思います。

カテゴリ理論家は、文字列図を使用して 物事を 証明します。たとえば、図は応用に関する私の小さな小冊子にあり ます。)さらに、文字列図は、ベクトル空間間のマッピングだけでなく、ほとんどすべての種類のマッピングを表すために使用されます。より正式に言えば、文字列図は、モノイド圏の議論で生じる可能性があり ますこれらのカテゴリのアイデアに優しい概要については、チェックアウト 七スケッチを だけでなく、フォンとスピヴァクで 描い量子プロセス Coeckeとキッシンジャーによる。

一方、一部の物理学者や機械学習研究者は、テンソルネットワークを使用して 物事を 計算します。典型的な状況はこのようなものになるかもしれません。あなたは量子システムを持っています。ハミルトニアンと呼ばれる特別な線形演算子の主固有ベクトルを見つけたいと考えています  この固有ベクトルはとてつもなく大きなヒルベルト空間に存在するため、圧縮された方法でこのベクトルを見つける手法が必要です。入力:テンソルネットワーク。

そして、「とてつもなく大きい」とは、とてつもなく大きいという意味です。アボガドロ数に相当する量子粒子があり、それぞれが2つの状態を占めることができる場合は、次元2102321023のベクトル空間が必要です。この空間に線形演算子があると想像してください。これは、21023×2102321023×21023エントリの行列です。これは  、観測可能な宇宙の原子数よりも指数関数的に多くなります。それらの10801080だけがあります!これをコンピューターに保存して頑張ってください。要約すると、テンソルネットワークは、原理的で扱いやすい方法で多数のパラメーターを処理するのに役立ちます。

テンソルネットワークは、グラフィカルモデルやオートマトンなどとも多くの重複が あります。現在の研究の1つの流れは、これらの重複を特定して活用することです。したがって、ここでは探索することがたくさんあります。開始する場所は、Miles StoudenmireのiTensorライブラリ、  RomanOrusの ATensor Networksの実用的な紹介、JacobBiamonteとVilleBergholmのTensorNetworks  in a Nutshell、およびGoogleの TensorNetworkライブラリです。

私は、これらの図をより計算的/物理的な設定で使用するプロジェクトに取り組んでいます(テンソルネットワークの世界を最初に紹介した優秀な研究者もいます)。そのため、文字列図ではなくテンソルネットワーク図と考える傾向があります。

特別な種類のテンソルネットワークを特徴とするこのプロジェクトには、私が共有することに興奮しているいくつかの本当に素晴らしい数学があります。また 、以前にブログで説明したグラフとしてマトリックスのアイデアも使用し ます。年内にブログを書く予定 です。

乞うご期待!

新着! [2019年10月20日追加] 量子状態を使用したシーケンスのモデリング」(arXiv:1910.07425)で、今日のアイデアのいくつかを実際 見ることができます そこでは、特に特定のトレーニングアルゴリズムの説明で、テンソルネットワーク図を頻繁に使用します。MilesStoudenmireとJohnTerillaによるこの作業の詳細については、ブログをご覧 ください。

 

https://www.math3ma.com/blog/matrices-as-tensor-network-diagrams

おすすめ

転載: blog.csdn.net/universsky2015/article/details/109308303