SC18においてMicrosoftの量子コンピューティンググループ主任研究員のMatthias Troyer氏が、量子コンピュータで計算の将来はどうなるのかというタイトルで招待講演を行った。Troyer先生はスイスの超名門工科大学のETH Zurichの教授で、現在は休暇でMicrosoftに来て研究を行っている。

  • Matthias Troyer氏

    量子コンピュータで計算の将来はどうなるのかというタイトルでSC18で招待講演を行ったMatthias Troyer氏

量子コンピュータの原理

コンピューティングの原理は紀元前2500年のそろばんから20世紀のLSIまで、変わっていない。しかし、21世紀の量子コンピュータは、これらの古典コンピュータとは異なる新しい原理で動作する。

  • 計算の原理

    計算の原理は、紀元前2500年のそろばんから20世紀のディタルLSIまで変わっていない。しかし,21世紀の量子コンピュータの計算原理はまったく異なっている (このレポートのすべての図は、Troyer氏の招待講演での発表スライドを撮影したものである)

第7代ブロイ公爵ルイ=ヴィクトル・ピエール・レーモン(ルイ・ド・ブロイ)が1927年に光も物質も粒子と波の両方の性質を持つことを実験で証明し、1929年にノーベル物理学賞を受賞した。

  • ド・ブロイ

    ルイ・ド・ブロイが1927年に光も物質も粒子と波の両方の性質をもつことを実験で示し、1929年にノーベル賞を受賞した

電子を粒子とみると、左の箱に電子が入っている状態をbit0、右の箱に入っている状態をbit1とすることができる。

  • 電子の状態

    電子を粒子と見ると、左の箱に電子が入っている状態を0、右の箱に入っている状態を1とすることができる

しかし、波の場合は、電子は左と右の箱に同時に入っているという重ね合わせ(Superposition)の状態を取り得る。これがqubitである。

  • 重なり合わせの状態

    電子を波と考えると、1個の電子が右と左の箱に同時に入ることが可能になる。これが0と1が重ねられている状態となる

個々に制御のできるqubitはイオンや超電導のJosephson素子、あるいは電子のスピン状態で作ることができる。

  • 制御できるqubitの作製方法

    個々に制御のできるqubitは、イオン、超電導のJosephson素子、電子のスピンなどで作ることができる

Qubitは、色々な状態の波の振幅の重ね合わせとして表現されるが、qubitを読み出そうとするとランダムなbitが読み出されてしまい目的の計算結果はうまく読み出せない。

  • qubitの読み出し

    Qubitは色々な状態の波の重ね合わせで表現されるが、その値を読み出すと1つのランダムな値になってしまう

そして、n個のqubitの状態を表すためには指数的に多くの複素数を必要とする。しかし、我々はその中の1つの値しか読み出すことができないという問題がある。

  • qubitも1時には1つの値しか読み出せない

    N個のqubitは指数関数的に多くの複素数の値の重なりになっているが、我々は1時には1つの値しか読み出せない

量子コンピュータはどのように使われるのか

量子コンピュータができれば、RSA-2048暗号は4100qubit、BitcoinのECCは2330qubitあれば解読できるようになってしまう。このため、Microsoftは量子デバイスを使う量子的な鍵の伝送方法など、量子コンピューティング時代の暗号についても研究を行っている。

  • Microsoftも量子コンピュータの研究を実施

    数1000qubitの量子コンピュータができればRSA-2048やBitcoinの暗号は破ることができるようになる。このため、Microsoftは量子的な鍵の配送など、量子的に強化された暗号の研究も行っている

量子コンピュータが高速なのはすべての値について同時に計算を行うからであると説明されているが、これは正しくないとTroyer先生は言う。

単純に計算結果のqubitを読み出しても、それは1つのランダムな値が読み出されるだけで、意味のある結果を得るためには、ほとんどの場合に正しい結果が読み出されるように、良いリダクションを行うことが必要であるが、これが難しいという。

  • 正しい答えを得る方法

    計算結果のqubitを読み出しても、ランダムな値が読めるだけ。ほぼ確定的に正しい答えを得るには良いReduction方法を見つけることが重要

原理的には、量子コンピュータは普通のコンピュータが行う古典的な演算も行うことができるが、効率は非常に悪い。このため、量子コンピュータは、特定の仕事を行うためのアクセラレータとして使われることになる。

量子コンピュータは本当に速いのか

量子コンピュータでは、演算は安価であるが、メモリは高くつき、非常に限定的にしか使用できない。量子コンピュータは重ね合わせを利用して指数関数的なスピードアップを実現する可能性は持っているが、そのためには可逆的な計算を行う必要があり、量子状態の複製を行うこともできない。また、意味のある結果を得るためには、賢いリダクションアルゴリズムの開発が必須であるという。

  • 量子コンピュータの課題

    量子コンピュータでは計算は簡単であるが、メモリは高くつき、限定的にしか使用できない。指数関数的に高速に計算できる可能性は持っているが、量子状態のコピーができないなど制約も多い。さらに、賢いリダクションアルゴリズムが見つからないと結果を読み出すこともできない

データベースのサーチは量子アルゴリズムで高速化できるが、サーチを行うためには、その前にデータをロードする必要がある。このために必要なハードウェアや実行時間を見積もっておくことが重要である。

宇宙の寿命ほどの計算時間がかかるアルゴリズムを指数関数的に高速化しても、計算に何千年も掛かるのでは実用上意味がなく、せいぜい、何日とか何週間で計算が終わる程度までアルゴリズムを高速化できなければ意味がない。

そして、アプリケーションを実際に使用するハードウェアに組み込んだ場合の実行時間を見積もることも重要である。

  • 実用的な計算に必要なもの

    実用的に計算が行なえるようにするには、(1)指数関数的な高速化ができるアルゴリズムを見つける。(2)これには入出力の方法も確立していなければならない。(3)計算時間が現実的な範囲の収まるようアルゴリズムを最適化する。(4)実行するハードウェアで実行時間を評価する。ことが重要である

最適化問題では、連続的に坂を下っていくとエネルギー最小の点が見つかるとは限らず、最適点は山の向こう側にあり容易には到達できないことも少なくない。アニールを行う場合、熱雑音のエネルギーでこの山を越えることもあり得るが、山が高い場合はなかなか容易ではない。このアニールを量子的に行えば、山をトンネリングで突き抜けてより低いエネルギー状態に移ることができ、より早く、最適点を見つけることが可能になる。

  • 通常アニールと量子アニールの違い

    通常のアニールでは熱エネルギーにより山を越えることもあるが、量子アニールの場合は、トンネル効果で山を突き抜けるので、エネルギー最低の点を見つけやすい

この原理を実用化したのがD-Waveの量子アニーラーである。D-Waveは2048qubitのマシンを商用化しており、量子効果を利用したアニールには利点があることが確認されている。しかし量子アニーリングは、普通の古典的コンピュータでシミュレートすることもできる。

  • D-Waveは2048qubitの量子アニーラーを製品化

    D-Waveは2048qubitの量子アニーラーを製品化している

量子的なトンネル効果は通常のコンピュータでシミュレーションすることができ、量子コンピューティングの研究の過程で新しい古典的アルゴリズムが見つかることが多い。その結果、右下のグラフのように、量子アルゴリズムにヒントを得たアニールの方が、本物の量子効果を使った最適化よりも速く最適化ができるという状況になってきている。また、マシンラーニングの学習においても、シミュレーションの方が速いという結果が得られている。

なお、右下のグラフについて詳しい説明がなかったので良く分からないが、このグラフは左の方がqubit数の大きい計算であると思われる。現在はシミュレーションの方が速いが、qubit数が増えるにつれて指数関数的に量子アニールの方が速くなり、逆転することになると思われる。

  • アルゴリズム1つで速さが変わる

    量子アルゴリズムの研究の過程で、新たな古典アルゴリズムが見つかることが多い。現状では量子アニールよりも、このようにして発見された古典アルゴリズムの方が速いというケースが多い

計算の効率を高めるのに必要なこと

自動車会社は交通の最適化に量子アニーラーを使い始めているが、D-Waveの量子アニーラーでは20秒かかった最適化が量子最適化にヒントを得た古典コンピュータでのシミュレーションでは1コアだけで0.2秒で最適化でき、AzureクラウドでFPGAを使えば、さらに300倍速くなるという結果が得られているという。

  • 量子アニーラーよりも速いFPGAでの演算

    交通最適化の例では、D-Waveの量子アニーラーでは20秒かかったが、量子計算にヒントを得た通常コンピュータ用のアルゴリズムでは0.2秒で計算でき、FPGAを使うと、さらに300倍速くなった

MRIの撮影で、パルスのシーケンスを最適化して短時間でより精度の高い診断を可能とするという問題にも量子アニールよる最適化が使われている。

  • MRIも高速化

    量子アニールからヒントを得た最適化でパルス列のシーケンスを改善し、MRIの診断をより短時間で高精度で行えるようになった

量子アルゴリズムではNエントリのデータベースのサーチをSQRT(N)の時間で行うことができる。これは大きなメリットであるが、量子コンピュータの場合も、まずはNエントリのデータをロードする必要があり、この入出力がどれだけの時間でできるかが問題である。

  • 課題は入出力

    データベースのサーチは量子コンピュータではSQRT(N)の時間で行うことができるが、サーチを行うためには、すべての要素をロードする必要がある。この入出力にどれだけ時間が掛かるかが問題

Ferredoxin Fe2S2の最低エネルギー状態を見つけるという問題は光合成の反応とエネルギー移動の計算に必要である。しかし、これを古典的アルゴリズムで行うのは、実用上、不可能な非常に長い計算時間が掛かる。また、量子コンピュータを使っても、2012年の量子アルゴリズムではおおよそ3000年掛かってしまう。しかし、2015年の改良された量子アルゴリズムでは約3時間で計算できるようになってきている。

このように、計算の効率を高める量子アルゴリズムと量子ソフトウェアの研究は非常に重要である。

  • 重要なアルゴリズムとソフトウェアの研究

    Ferredoxinの基底状態を見つける計算は、古典コンピュータでは事実上不可能な長い時間が掛かる。量子コンピュータでも2012年のアルゴリズムでは3000年掛かるが、改良された2015年のアルゴリズムでは3時間に短縮された。量子アルゴリズムとソフトウェアの研究は重要である

118のスピン軌道を持つFe2S2のエネルギー状態の計算は以前のアルゴリズムでは1018ゲートと1017の並列の回路深度を必要とし、ゲートの演算時間を1μsとすると、計算に3000年を必要としたのであるが、2015年の論文では必要ゲート総数は1011、並列回路深度は1010に減少し、計算時間が約3時間となっている。これは計算結果の再利用でO(N)の演算回数の減少、並列化が可能になるようなコードの改良でO(N)の実行時間の短縮、その他の最適化で1600倍の高速化などを行った結果である。

  • 高速化の内訳

    Ferredoxinの基底状態の計算は、以前の量子アルゴリズムでは3000年掛かるが、2015年の論文ではそれが3時間でできるアルゴリズムが提案された。下は高速化の内訳である

Microsoftが量子計算開発キットを提供

Microsoftの量子計算開発キットは、Q#言語でプログラムし、Visual Studioでデバグを行い、量子シミュレータでシミュレーションして動作をさせて見ることができる。そして、ライブラリやサンプルプログラムが揃っており、ドキュメントも提供されている。

Microsoftの量子計算開発キットは、クロスプラットフォームであり、Windows、MacOSとLinuxで使えるようになっている。

  • Microsoftの量子計算開発キット

    Microsoftの量子計算開発キットは、Q#言語でプログラムし、Visual Studioでデバグを行い、量子シミュレータでシミュレーションして動作をさせて見ることができる。そして、ライブラリやサンプルプログラムが揃っており、ドキュメントも提供されている

マメ科植物の根粒菌などの窒素固定のプロセスは、通常の古典コンピュータでは計算できる限界を超えている。しかし、200qubitの量子コンピュータが使えるようになれば、それがどのように行われているかを理解できるようになる。

  • qubitが増えれば計算ができるようになる問題も多い

    植物の窒素固定の過程は古典コンピュータでは実用上不可能な時間が掛かる。しかし、200qubitの量子コンピュータが実用化されれば計算ができるようになり、窒素固定のプロセスが理解できるようになる

MicrosoftはPNNL(Pacific Northwest National Laboratory)と協力して量子化学計算の高速化を可能にする環境を開発している。この開発では、知られている最良のアルゴリズムをQ#で実装し、NWChemに組み込んでいる。

このシステムは、小規模な問題をシミュレータで動かしてテストすることができる。また、大規模な問題が必要とする資源の量を見積もったり、プロフィールを生成したりすることができる。

  • MicrosoftはPNNLと協力して量子ソフトウェアの開発環境を開発

    MicrosoftはPNNLと協力して量子ソフトウェアの開発環境を開発している。Q#言語でプログラムを開発し、小規模なプログラムならシミュレータで実行してデバグすることができる。大規模なプログラムも、実行に必要なリソースの見積もりを行うことができる

また、量子コンピュータは、従来のコンピュータよりも強力なマシンラーニング用マシンを実現できる。

  • 量子コンピュータはマシンラーニングにも威力を発揮

    量子コンピュータはマシンラーニングにも威力を発揮する

さらに、量子コンピュータは、セキュアなプライベートクラウドコンピューティングとサーチを実現したり、量子計算で加速されたランダムアルゴリズムを実現したり、量子マネー、量子ゲーム、量子ソーシャルネットワークなどを作る可能性もある。

  • 量子コンピュータの応用

    さらに、量子コンピュータは、セキュアなプライベートクラウドの構築、量子効果で加速されたランダムアルゴリズム、量子マネー、量子ゲームなどに使える可能性がある

量子コンピュータ実用化の課題とは

この講演でTroyer先生が強調していたのは、量子コンピュータは実現に近づいているが、従来のコンピュータを置き換えるものではない。量子コンピュータは、膨大な計算を必要とするが必要とするデータは少ないBig Compute/Small Dataの特定の問題に対する非常に強力なアクセラレータとなり得るという点である。

量子アルゴリズムを非量子化することにより、量子計算から着想を得た古典コンピュータで実行できる新しいアルゴリズムが開発されており、現在でも役に立っている。

  • 覚えて帰ってほしいメッセージ

    覚えて帰ってほしいと題されたメッセージ。量子コンピュータの実用化は近づいているが、汎用のコンピュータを置き換えるものではなく、特定の分野でbig compute/small dataの問題を計算する非常に強力なアクセラレータとして使われる。量子アルゴリズムの研究から派生した古典コンピュータ用のアルゴリズムは現在でも役にたっている

Troyer先生の講演は、データの読み出しのためには正解が読み出せるようにするリダクションが必要で、効率の良いリダクション法を見つけることが重要とか、量子計算は演算は容易だが、メモリを作るのは高くつくとか色々と量子計算の問題点の指摘もあったが、全体的には量子計算に前向きの内容であった。

しかし、足元をみると、量子計算を行うには全部のqubitがもつれ(Entanglement)状態であることが必要であるが、50qubitという小規模な系でもミリ秒に届かない時間しかもつれ状態を維持できておらず、3時間もかかる量子計算ができるようになるのはまだまだ遠い先の話であろう。

また、IBMの超電導の50qubitの量子コンピュータは、熱雑音を減らし、もつれ状態を長くするため素子を14mK(絶対温度で0.014度)まで冷却しており、その冷凍機に20kWの電力を必要としている。Qubit数に比例して電力が増えるわけではないと思うが、それでもqubitが増えれば配線が増え、配線を伝って流入する熱量も増えて冷却電力は増える。温度を14mKより下げるとなると発熱をさらに深い井戸からくみ出すようなもので、冷却電力も増える。

指数関数的な高速化というバラ色の夢を抱いて、足元の困難さを1つずつ解決していくという開発が続くことになるのではないかと思われる。