TensorNetwork:効率的なテンソル計算のためのオープンソースライブラリ(2/2)

  • 2019.06.07
  • AI
TensorNetwork:効率的なテンソル計算のためのオープンソースライブラリ(2/2)

1.TensorNetwork:効率的なテンソル計算のためのオープンソースライブラリ(2/2)まとめ

・量子状態など指数関数的に計算が増える難問に取り組む際はテンソルネットワークが使用される事が多い
・テンソルネットワークは機械学習でも使われ始めているが物理学の知識が必要と誤解されている事が多い
・TensorNetworkはテンソルネットワークより広く様々な分野で使いやくするために開発された

2.TensorNetworkのパフォーマンス

以下、ai.googleblog.comより「Introducing TensorNetwork, an Open Source Library for Efficient Tensor Calculations」の意訳です。元記事のは2019年6月4日、Chase RobertsさんとStefan Leichenauerさんによる投稿です。

テンソルネットワークの実践
白黒画像の集まりを考えてみてください。それぞれの画像はN個の画素情報のリストと考えることができます。単一画像の単一画素はワンホット表現の二次元ベクトルにエンコードする事ができます。

訳注: ワンホットは一つだけビットが1で他は全部0にする表現

Binary表現 One-hot表現
000 00000001
001 00000010
010 00000100
011 00001000
100 00010000
101 00100000
110 01000000
111 10000000

そして、これらの画素エンコーディングを組み合わせることで、画像全体を2N次元のワンホットエンコーディングで表現することができます。

この高次元ベクトルを次数Nのテンソルに変形し、それから私達が持っている画像を全てテンソルに集約し、カプセル化したテンソルTi1,i2,…,iNを得ることができます。

これは非常に無駄なことのように思えます。この方法で約50画素の画像をエンコードすると、これだけで既にペタバイトのメモリが必要になります。そして、これがテンソルネットワークが必要になる理由です。テンソルTを直接保存したり操作したりするのではなく、代わりにテンソルネットワークに形状を変換し、多くの小さいテンソルの縮約としてTを表します。

これははるかに効率的であることがわかります。例えば、良く使われる行列積状態(MPS:matrix product state)ネットワークは、非常に小さいテンソルNに関してTを書くので、パラメータの総数は、指数関数的ではなく、N内で線形的に過ぎません。


高次テンソルTは、テンソルネットワーク内で多くの行列積状態の低次テンソルとして表現できます。

大規模なテンソルネットワークは効率的に作成または操作できますが、大量のメモリが不要である事を一貫して保証できるわけではありません。しかし、多くの場合、大量のメモリ使用を回避する事が可能な事がわかっています。これがテンソルネットワークが量子物理学、そして今や機械学習で広く使われるようになってきている理由です。

StoudenmireとSchwabは、論文「Supervised Learning with Quantum-Inspired Tensor Networks」で、上記で説明したエンコーディングを使用して画像分類モデルを作成し、テンソルネットワークの新しい用途を示しました。

TensorNetworkライブラリはまさにこの種の作業を容易にするように設計されています。そして私たちの最初の論文はライブラリが一般的なテンソルネットワーク操作のためにどのように機能するかを説明します。

物理学の事例における性能の検証
TensorNetworkはテンソルネットワークアルゴリズムのための汎用ライブラリです。それゆえ、機械学習にとって有用である事に留まらず、同様に物理学者にとって有用であることを証明するべきです。

量子状態を近似する事は、物理学におけるテンソルネットワークの典型的な使用例であり、TensorNetworkライブラリの機能を説明するのに非常に適しています。

2つ目の論文では、TensorNetworkを使用して以下のアルゴリズムを実装しています。「一次元のquantum spin chain」もしくは「二次元のlattice model on a thin torus」の基底状態をTree Tensor Network(TTN)を用いて実装するアルゴリズムです。GPUとTensorNetworkライブラリを使用すると、CPUとGPUを比較する事が出来、最大100倍の大幅な計算速度の向上が見られました。


結合次元χの関数としての計算時間
結合次元は、テンソルネットワークの構成テンソルのサイズを決定します。 結合次元が大きいほど、テンソルネットワークはより強力になりますが、操作にはより多くの計算リソースが必要になります。

 

まとめとこれからの研究
今回の発表は、実際のアプリケーションでTensorNetworkの機能を説明する一連の計画の最初の論文です。次回の記事では、TensorNetworkを使用して、MNISTデータセットとFashion-MNISTデータセットの画像を分類します。将来の計画には、機械学習分野では時系列分析、そして物理学分野では量子回路シミュレーションが含まれています。オープンソースコミュニティと共に、TensorNetwork自体にも常に新しい機能を追加しています。TensorNetworkが物理学者や機械学習の実践者にとって価値あるツールになることを願っています。

 

謝辞
TensorNetworkライブラリは、Google AIのChase Roberts、Adam Zalcman、Bruce Fontaine、Perimeter InstituteのAshimeter Milsted、Martin Ganahl、およびGuifre Vidal、XのJack HidaryとStefan Leichenauer、によって開発されました。貴重な貢献をしてくれたXのStavros Efthymiouにも感謝します。

3.TensorNetwork:効率的なテンソル計算のためのオープンソースライブラリ(2/2)関連リンク

1)ai.googleblog.com
Introducing TensorNetwork, an Open Source Library for Efficient Tensor Calculations

2)arxiv.org
TensorNetwork: A Library for Physics and Machine Learning
TensorNetwork on TensorFlow: A Spin Chain Application Using Tree Tensor Networks
Supervised Learning with Quantum-Inspired Tensor Networks