「量子超越性」の後、GoogleはTensorFlowの量子バージョンを強力にオープンソース化

「量子超越性」の後、GoogleはTensorFlowの量子バージョンを強力にオープンソース化

Googleは2019年10月に「量子超越性」の検証に関する論文をNatureに掲載した後、3月9日に「量子」に関する新たな発表を行った。

この度、オープンソースの「TensorFlow の量子版」である TensorFlow Quantum (TFQ) がリリースされました。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

簡単に言えば、TensorFlow と同様に、TFQ はオープンソース ライブラリとして量子機械学習の敷居を直接下げ、量子機械学習モデルを迅速に構築できるようにします。

TensorFlow Quantum は、量子データの処理と量子と古典のハイブリッド モデルの構築に重点を置いています。 Cirq で設計された量子コンピューティング アルゴリズムとロジックを統合し、既存の TensorFlow API と互換性のある量子コンピューティング プリミティブと、高性能な量子回路シミュレーターを提供します。

注: Cirq は、Google が NISQ アルゴリズム専用に作成したフレームワークであり、開発者が特定の量子プロセッサ用の量子アルゴリズムを記述できるようにします。

1. 量子機械学習

TFQ を紹介する前に、まず「量子機械学習」とは何かを理解する必要があります。量子機械学習を理解するには、まず量子データと量子古典ハイブリッド モデルという 2 つの概念を理解する必要があります。

私たちの日常的な理解では、データ(バイナリデータを例にとると)は常に「(1)か(0)」のいずれかであるように見えます。しかし、よく考えてみると、私たちの日常生活は「はい」と「いいえ」が完全に明確に区別されているわけではないことに気づきます。多くの場合、「はい」の中に「いいえ」があり、「はい」の中に「いいえ」があります。「はい」と「いいえ」は、状況の両極端にすぎません。まさにこれが量子思考です。

量子力学では、システムを記述するために「状態」(ヒルベルト空間内のベクトル)がよく使用されます。たとえば、古典的な情報入力シーケンス 01 は、量子力学の言語では |01> と記述できます。古典的なデータでは、状態と状態 (ベクトルとベクトル) は直交することしかできません。たとえば、|01> と |00> は同時に出現できません。これは本質的に「はい」または「いいえ」の観点です。明らかに、これらの直交状態に対する操作も直交変換でなければなりません。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

しかし、量子データでは、古典データの本来の限界が拡張されます。たとえば、2 ビットの量子データの状態は次のように表されます。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

つまり、4 つの古典的なデータのいずれかが同時に存在する可能性があり (前の係数に応じて、これは 4 つの相互に直交するベクトルの重ね合わせとして簡単に理解できます)、いずれか 1 つだけである可能性はありません。

古典的なデータの代わりにこの量子データをネットワークに入力すると何が起こるでしょうか?次の図に示すように:

Google が TensorFlow の量子バージョンを強力にオープンソース化">

出典:知乎[4]

古典的なパーセプトロンでは、0と1からなるベクトルを入力しますが、量子パーセプトロンの場合は、入力は多数の|φ> = c1 |0> +c2 | 1>からなるベクトルであり、このベクトルの各要素は0と1の両方になる可能性があります。

しかし、現実には、現在の量子プロセッサには依然として小さいながらも無視できないノイズがあり、量子プロセッサのみを使用して量子データを学習することはほぼ不可能です。

そのため、次善策に頼らざるを得ません。Google の NISQ プロセッサは、従来のプロセッサと連携して、ノイズの影響を効果的に抑制する必要があります。このハードウェアの相乗効果はアルゴリズムの相乗効果にもつながり、モデルの量子部分が量子プロセッサで処理され、古典部分が古典プロセッサで処理されるハイブリッド量子古典モデルが生まれます。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

Google の研究者は、近い将来、量子コンピューターの最も有用な機能はハードウェア アクセラレーター、つまり独立したデバイスとしてではなく、CPU や GPU などの従来のプロセッサーの加速補助として存在する可能性があると述べました。したがって、量子と古典のハイブリッドモデルを設計するためのツールを提供する必要があります。

機械学習と同様に、量子機械学習も 2 世代にわたる開発を経てきたことは注目に値します。第一世代の機械学習(サポートベクターマシン、k-meansクラスタリングなどで代表される)に対応して、第一世代の量子機械学習は主にいくつかの量子加速線形代数法です。ディープラーニングに代表される第2世代の機械学習の発展に伴い、量子コンピュータの計算能力の向上により、量子機械学習も第2世代に入りました。その特徴は、(ディープラーニングと同様に)ヒューリスティックな手法に基づいていることです。

2. TensorFlow 量子

簡単に言えば、TensorFlow Quantum は TensorFlow をベースにした機械学習ライブラリであり、量子と古典のハイブリッド機械学習モデルの設計を目的としています。

もっと簡単に言えば、関連する量子アルゴリズムの研究では、TFQ 内のコンピューティング フレームワークを呼び出し、Python プログラミングを使用して計算を完了することができます。あるいは、標準の Keras 機能を使用してトレーニングを実行することもできます。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

具体的な設計としては、TFQ は TensorFlow を量子コンピューティング ハードウェアと統合するために必要なコンポーネントを実装し、2 つのデータ型プリミティブを作成します。 2 つのプリミティブは次のとおりです。

  • 量子回路: TensorFlow で Cirq によって定義された量子回路を表し、異なる実数値データ ポイントのバッチと同様に、さまざまなサイズの回路のバッチを作成します。
  • パウリ和: Cirq で定義されたパウリ演算子のテンソル積の線形結合を表します。回路のように、さまざまなサイズの演算子のバッチを作成します。
Google が TensorFlow の量子バージョンを強力にオープンソース化">

上の図は、TFQ ソフトウェア スタックと、TensorFlow、Cirq、コンピューティング ハードウェアとの相互作用を示しています。スタックの最上部は処理されるデータです。古典データは TensorFlow によってネイティブに処理されます。TFQ は、量子回路や量子演算子などの量子データを処理する機能を追加します。

スタックの次のレイヤーは、TensorFlow の Keras API です。 TFQ の中心的な理念は TensorFlow カーネル、特に Keras モデルおよびオプティマイザーとの統合であるため、このレベルはスタックの全範囲をカバーします。

Keras モデルの抽象化の下には量子レイヤーと微分器があり、古典的な TensorFlow レイヤーに接続するとハイブリッドな量子-古典自動微分が可能になります。

これらのレイヤーと差別化要素の下には、データフロー グラフをインスタンス化する TF Ops と、量子回路の実行を制御する TFQ Ops があります。これらの回路は、qsim または Cirq を呼び出すことによってシミュレーション モードで実行することも、最終的には QPU ハードウェア上で実行することもできます。

Googleのホワイトペーパー[2]によると、TFQは現在、量子分類、量子制御、量子近似最適化などの教師あり学習に使用できる。さらに、高度なアプリケーションでは、TFQ を使用して、メタ学習、ハミルトン学習、ホット サンプリングなどの高度な量子学習タスクを解決できます。

AI テクノロジーレビューでは、いくつかのアプリケーションを簡単に紹介しています。

量子-古典畳み込みニューラル ネットワーク ハイブリッド分類器。量子データの場合、隠された古典的なパラメータは量子システムの非局所的なサブシステム、つまりサブスペースに埋め込まれる可能性があり、研究者は非局所的なサブスペースから情報を抽出するために、いくつかの分離した量子変換を実行する必要があります。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

図1: クラスターの状態を検出するために使用されるCNNの構造

古典的なニューラル ネットワークは並進不変である傾向がありますが、並進対称性を持つ量子データの種類は多数あります。このような量子データは多くの場合、クラスター状態です。量子古典畳み込みニューラル ネットワーク ハイブリッド分類器は、クラスタリング状態におけるエラーの検出の問題を教師あり分類タスクとして扱うことで解決できますが、トレーニングに使用されるデータは、それぞれラベルとペアになっている、正しく準備されたクラスタ状態と誤って準備されたクラスタ状態のさまざまなものから構成されます。

量子制御におけるハイブリッド機械学習。計算オーバーヘッドを損なうことなくニューラル ネットワークの最適化機能を最大限に活用するには、さまざまなニューラル ネットワーク表現とさまざまな種類の量子制御ダイナミクス間の接続をより深く理解する必要があります。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

図1: 量子制御分解を学習するためのハイブリッド量子古典ニューラルネットワークモデルのアーキテクチャ

この目標を達成するには、TFQ はいくつかの機能を統合する必要があります。

  • ハイブリッド量子-古典ネットワークモデル。
  • バッチ量子回路シミュレーター。
  • 量子期待値に基づくバックプロパゲーション。
  • 高速な勾配ベースおよび非勾配ベースの古典的なオプティマイザー。

量子近似最適化アルゴリズム (略して QAOA)。 QAOA は元々、最大カット問題を解決するために使用されていました。現在の QAOA フレームワークは、高次ハミルトニアンや連続変数ハミルトニアンなどの同様の問題を見つけるために使用されています。

3. 使い方は?

TFQ を使用すると、研究者は量子データセット、量子モデル、および古典的な制御パラメータを単一の計算グラフ内のテンソルとして構造化できます。もちろん、古典的な機械学習と同様に、量子機械学習の主な課題は「ノイズデータ」を分類することです。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

図のキャプション: TFQ 計算手順の概要。

ただし、このようなモデルを構築してトレーニングするには、研究者は次のことを行う必要があります。

  • 量子データセットを準備します。各量子データテンソルは、Cirq で記述された量子回路として指定され、リアルタイムで量子データを生成します。
  • 本質的に入力量子データを分離し、古典的な相関関係にエンコードされた隠れた情報を残し、ローカル測定と古典的な後処理に利用できるようにする量子ニューラル ネットワーク モデルを評価します。
  • サンプルまたは期待値。量子状態の測定では、古典的なランダム変数からサンプルの形で情報が抽出されます。ランダム変数の値の分布は、測定された観測可能値だけでなく、量子状態自体にも依存することがよくあります。多くの変分アルゴリズムは測定値の平均化に依存しているため、TFQはステップ(1)と(2)を含む複数の実行の期待値を見つけるための方法を提供します。
  • 古典的なニューラル ネットワーク モデルを評価します。古典的な情報が抽出された後、その形式は、さらに古典的な後処理に適しています。抽出された情報は、測定された期待値間の古典的な相関関係にエンコードされている可能性があるため、古典的なディープ ニューラル ネットワークを適用して、そのような相関関係を抽出できます。
  • 損失関数を評価します。従来の後処理の結果に基づいて、損失関数が評価されます。
  • 勾配を評価し、パラメータを更新します。損失関数を評価した後、損失が減少すると予想される方向に自由パラメータを更新する必要があります。これは通常、勾配降下法によって実行されます。

コードの観点から。基本的なインストールと呼び出しは、Python の他のディープラーニング ライブラリと変わりません。

たとえば、次のようにインストールします。

  1. pip インストール -q tensorflow-quantum

関連モジュールをインポートします:

  1. テンソルフローをtfとしてインポートする
  2. tensorflow_quantum を tfq としてインポートします
  3. インポートサーク
  4. sympyをインポートする
  5. numpyをnpとしてインポートする
  6. # 視覚化ツール
  7. %matplotlib インライン
  8. matplotlib.pyplot を plt としてインポートします
  9. cirq.contrib.svg から SVGCircuitをインポート
Google が TensorFlow の量子バージョンを強力にオープンソース化">

コードレベルのチュートリアルをさらにご覧になりたい場合は、以下のリンクをご覧ください。Google では、TFQ の使い方を基礎から上級まで具体的に紹介しています。

https://www.tensorflow.org/quantum/tutorials/hello_many_worlds

具体的なアルゴリズム レベルでは、Google はホワイト ペーパーでコード紹介も公開しています。たとえば、量子古典畳み込みニューラル ネットワーク ハイブリッド分類アルゴリズムのコード紹介は次のとおりです。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

4.だから何?

Reddit コミュニティは、Google のオープンソース TFQ にすぐに反応しました。一部のネットユーザーはこう言った。

Google が TensorFlow の量子バージョンを強力にオープンソース化">

はい、量子機械学習プラットフォームのオープンソースですが、それは私たちとどのような関係があるのでしょうか?

しかし、物理学者リチャード・ファインマンはこう言っています。「自然界は古典的なものではない。自然界をシミュレートしたいなら、量子メカニズムを使うほうがよいだろう。」

ここ数年、ディープラーニングに代表される機械学習の手法は、多くの問題に大きな影響を与えてきました。しかし、長期的には、ニュートンの古典力学が自然界を正確に記述できないのと同様に、自然界をシミュレートしたい場合、古典的な機械学習手法では不十分となり、量子機械学習手法が不可欠となるでしょう。

現在、多くのテクノロジー大手が相次いで量子コンピューティングを導入しており、今後10~20年で量子コンピューティングと量子機械学習が社会発展の重要な原動力となることが予想されます。

今がTFQを購入するのに適切な時期かもしれません。

将来を見据えて、どのように開発を推進していくのでしょうか?量子コンピューティングは、私たちのツールボックスで使用できるツールかもしれません。

5年から10年後には、私たちは前例のない課題に直面するでしょう。量子コンピューティングは、現在私たちが持っているすべての暗号化を解読しますが、それを回避する方法を見つけることができます。進化するテクノロジーには必ず課題が伴いますが、AI と量子テクノロジーを組み合わせることで、現在考えられる最大の問題のいくつかを解決することができます。

<<:  YouTubeの有名人動画を機械学習で分析したら、視聴数急増の秘密が分かった

>>:  5Gネットワ​​ーク構築80%:5Gロボットが新たな転換点を迎えようとしている

ブログ    
ブログ    

推薦する

...

ニューラルネットワークの過剰適合を避ける 5 つのテクニック

この記事では、ニューラル ネットワークをトレーニングするときに過剰適合を回避する 5 つの手法を紹介...

Google のコード生成システムはプログラマーの半分を「飲み込んだ」のでしょうか?人類は長い間AIに「負けて」きました!

著者: 徐潔成最近、センセーショナルなAlphaGo囲碁ロボットを発売したDeepMindが再び大き...

マルチモーダル大規模モデルの最も包括的なレビューはここにあります!マイクロソフトの研究者7人が5つの主要トピックについて協力し、119ページの文書を公開した。

マルチモーダル大規模モデルの最も包括的なレビューはここにあります!マイクロソフトの中国人研究者7名に...

...

...

日常生活におけるAIの応用

機械学習やその他の技術をバックグラウンドで使用することで、AI は私たちの日常生活に多くの素晴らしい...

大規模製造企業におけるインテリジェントな意思決定シナリオの分析

1. 製造業の発展の現状まず、製造業企業の発展状況について紹介します。 1. 企業経営は直線的な発展...

この3つのロボットを知っていますか?

ロボットには、人間との感情的なつながりを築くように設計されたフレンドリーなロボットから、複雑なタスク...

...

一目でわかるアルゴリズム「配列と連結リスト」

データ構造はソフトウェア開発の最も基本的な部分であり、プログラミングの内部的な強さを反映しています。...

...

...

寒波警報(黄色)発令中、ドローンの使用にはご注意ください!

11月3日、中央気象台は今年初の黄色寒波警報を発令し、最強の寒波が来ています!警報によると、11月...

人工知能 + ブロックチェーンの開発動向と応用研究レポート(受賞リスト付き)

[51CTO.com からのオリジナル記事] AI とブロックチェーンは現在、2 つの人気の技術方...