見出し画像

量子コンピュータの学び方

最近、量子コンピュータを学ぶにはどうすればいいのか、と聞かれます。以前よりも教材も増えてきているので、少しまとめてみます。

アニーリングかゲートか?

量子コンピュータには大きく分けて、量子アニーリング方式と量子ゲート方式があり、これらは結構違う方式です。なので、まずはどちらを(または、どちらから)勉強するかを決める必要があります。

アニーリングは、(実は量子コンピュータではないものも含めると)実応用に近いので、ビジネスになるものがいい、今すぐ社会に役立つものがいいというなら、アニーリング一択です。

ゲートは、今あるハードウェアでは実応用が難しいのと、理論面でもアニーリングよりも学習する範囲が増えてしまうのですが、最適化計算以外のこともやりたい、ゲート方式に夢を感じる、という人にはゲートをぜひやってほしいです。

実はアニーリングからゲートに行く道というのもあって、アニーリングを完全に理解したら、そこからQAOAというゲートのアルゴリズムを学ぶ、ということもできます。

アニーリングを学ぶための資料

アニーリングでは、概要を学んで、続いて、問題ごとのQUBOの作り方、QUBOを解くシステムとその使い方を学ぶことになると思います。

過去の資料では、イジングモデルとQUBOと2種類、とされているものもよくありましたが、実用上はQUBOの方が作りやすい場合が多く、イジングモデルの理解は特に必須ではありません。

Fixstarsの資料が、概要やQUBOの作り方を比較的分かりやすくまとまっています。

あと、自社のもので恐縮ですが、NTTデータの量子コンピューティングガイドラインは、かなりしっかりと、理論からコード例まで書かれています。

慣れてきたらD-Waveのドキュメントも目を通すといいかもしれません。

東北大のT-QARDが、たくさんの有用なブログ記事を書いています。

アニーリングのSDKなど

SDKは基本的にドキュメントは英語ですが、SDK名で検索すると日本語のやってみた記事などが引っかかることもよくあります。

D-WaveのOcean SDKは量子アニーリング界隈では最も有名です。

nealライブラリは、通常のコンピュータで動く普通の焼きなまし法のライブラリですが、D-Waveの量子コンピュータと同じ書き方ができるので、よく使われます。

QUBOを作るのを補助するツールでは、PyQUBOが有名です。検索すると使い方が比較的よく出てくると思います。

Amplifyという、Fixstarsの実行環境があります。

研究・開発目的の場合は無料でお使いいただけます。実運用フェーズでお使いいただく場合は、月額10万円から提供しております

https://amplify.fixstars.com/ja/#faq

とのことです。

ゲートを学ぶための資料

ゲートでは、量子ビットや量子ゲートの概念を理解し、量子回路の作り方を覚えるのが初手になると思います。

いくつかのSDKがありますが、IBMのQiskitが一番有名です。記法や機能面に違いはありますが、どのSDKでも、必要となる概念は同じで、別のライブラリに乗り換えるのもそれほど苦はないはずです。

教材をいくつか紹介します。

Qiskit はチュートリアルが充実していて、とりあえず動かして学びたい人にいいと思います。マニアックなトピックも含んでいるので、分からないものはスルーして大丈夫です。

Qiskit にはテキストブックもあって、丁寧にいろいろなことが説明されていますが、入門者には難しいトピックも入っています。読めるところだけつまみ食いしたらいいと思います。

Quantum Native Dojo も、比較的丁寧に説明がされています。

また、書籍では、こちらがおすすめです。

ゲートのSDKなど

現状、最も広く使われているのはQiskitです。コミュニティが分厚いのも利点かなと思います。

blueqatは、前職で私が作っていたライブラリです。誰でも簡単で気軽に使えることを目指しており、チュートリアルも結構充実しています。

GoogleのCirqもよく使われています。Qiskitが初学者から研究者まで幅広く使われているのに対し、Cirqは、やや研究者寄りな印象があります。

Pennylaneは量子機械学習などでは比較的人気です。

AWSの量子コンピューティング環境であるAmazon Braketと相性のいい、Braket SDKもあります。

ここまで紹介してきたのはPythonのライブラリでしたが、Q#という言語で書くものもあり、Azure Quantumがそれをサポートしています。

もっと学ぶにはどうすればいいの?

研究者になるには、大学の博士課程に進むのが一番いいと思います。
一方で、それ以外の道としては、積極的にいろいろ作ってみて、発信してみるのがおすすめです。まだあんまり人がいないので、その方法が結構目立ちます。

また、IBMが半年に1度、Quantum Challangeという量子コンピューティングのコンテストを開催していたり、いろいろな会社がハッカソンを開催していたりという機会も探せば結構あります。

あと、何気におすすめなのが未踏ターゲット事業で、人材育成を目的に年1回、アニーリングとゲートの両方で、提案を募集しています。これは学生でも社会人でも応募することができて、ガチの研究者のPM/TAに指導してもらいながらアプリケーションの開発ができます。

来年もきっとあると思うので、応募してみたらどうでしょう。

また、例年であれば、未踏ターゲット事業は最終成果報告会が2月前半にあります。一般の方も参加できるので、ぜひ参加してみて下さい。

この記事が気に入ったらサポートをしてみませんか?