【情報系向け】量子コンピュータを学ぶためのオススメ本・資料
はじめに
この記事では、量子コンピュータを学ぶためのオススメ本や資料について紹介します。僕は量子力学だけでなく線形代数すら怪しいレベルから学び始めた情報系の高専生なので、特に情報系の学生にオススメできるラインナップになっています。
現在、量子コンピュータを研究している方々のほとんどが物理出身ということもあり、非物理学科である情報系の人間が量子コンピュータを学ぼうと思うと苦労します。「物理の知識を仮定しない」と書いてあったとしても、物理の知識が無いと意味がわからない記述がある入門書も多々あります。また、実際に論文を読もうとすると物理色が強くて入口にすら立てないこともあります。
僕は量子力学について全く知らないところから量子コンピュータを卒業研究で学び始めたので、スピンやボルンの規則ってなにそれ?という状態で普通の人以上に苦労しました。なんなら、ハミルトニアンすら知らないレベルでした。
以上のことを踏まえて、情報系の人間が量子コンピュータを一から学ぶために考えた戦略は次の通りです。
- 物理は後回しで大丈夫。今考えると、物理の記述を無視したとしても、情報系の人間が必要な量子コンピュータの内容は十分理解できる。研究レベルを目指すなら、後で回収しよう。恥をかきます(実体験)。
- 最初は量子コンピュータの簡単な入門書を読む。読み物レベルでも大丈夫です。
- 興味がある量子アルゴリズムについて載っている本を読む。
- 理解したいアルゴリズムを Qiskit などで実装する。正直難しいです。
- 計算が途中でわからなくなったら、量子情報と線形代数の基礎力を高める。特に、量子コンピュータで使う線形代数は授業では扱われない応用的な内容が多いです。
- 古典論への理解度が問題だと思ったら、その分野を勉強する。実は量子コンピュータを学ぶ上で一番大変なのはここです。何かしら元となっている理論があり、それを拡張する方針のものが多いです。
- 量子アニーリングは物理系の人でないと難しいので、手を出さないほうがいいです。量子アニーリングで使われるイジングモデルは、統計力学の教科書の最後らへんに出てくるやつです。
量子コンピュータ
入門以前
Chris Bernhardt『みんなの量子コンピュータ』
おそらく、この世で一番簡単でわかりやすい量子コンピュータの本です。量子力学では通常複素ベクトルを使用しますが、この本は実数ベクトルだけで記述しています。そのため、簡単な量子アルゴリズムしか説明できていませんが、それでも計算や考えのエッセンスを十分に学べます。また、テンソル積への導入が丁寧です。
残念なことに翻訳があまりにも酷いので、それが耐えられない人は原著を読んでください。とはいえ、これ以上に易しい入門書はないので耐える価値はあります。
藤井啓祐『驚異の量子コンピュータ』
阪大の藤井先生が書かれた読み物です。先生の専門に偏っていたり、「宇宙をハックせよ」という帯が過大広告気味だったりなど思うところは色々ありますが、国内の第一線の研究者が書いた本なので十分に信頼できます。
縦書きで数式が非常に読みにくいことと、これだけ読むとオカルトに走りかねないので、量子コンピュータの概要だけを抑えておきたい人でも、先程の『みんなの量子コンピュータ』とセットで読むことをオススメします。
束野仁政『量子コンピュータの頭の中』
比較的最近に出た量子コンピュータの本です。上 2 つに比べると難易度が高いですが、後述の入門書に比べると簡単なのでここに分類しました。
既に初学者とは言えない状態でこの本に目を通したので、この本がもっと前にあればよかったのにな~と思いました。初学者からも評判が非常に良く、プログラムを書きながら学べる本ということで紹介しました。
Web 資料
量子コンピュータは Web 上に資料がたくさんあります。検索すれば大学の講義ノートやチュートリアルが出てきます。ここでは代表的なものを掲載します。
Quantum native dojo
株式会社 QunaSys によって運営されている、国産のチュートリアルです。非常に良く書かれており、初学者には難しいかもしれませんが、上述の本を読めるレベルの人であれば十分に活用できると思います。
Qiskit のチュートリアル
Qiskit という IBM の量子コンピュータライブラリのチュートリアルです。日本語版も探せば多少あります。Quantum native dojo より簡単に書かれているので、英語を気にしないのであればこちらがオススメです。
入門
M. A. Nielsen, I. L. Chuang『量子コンピュータと量子通信』(Quantum Computation and Quantum Information)
Nielsen-Chuang と呼ばれる量子コンピュータのバイブル的な入門書です。この本を読める基礎力があるのであれば、量子コンピュータの入門書はこれだけでいいかも?と思えるほどの網羅率です。少々内容は古くなっていますが、この本を読むと大体の論文に手を出せるようになるので問題ありません。
二巻が量子アルゴリズムについて書かれているパートなので、その部分だけ謎に売れています。三巻は最悪読まなくても大丈夫です。
N. D. Mermin『マーミン 量子コンピュータ科学の基礎』
マーミンが書いた情報系向けの量子コンピュータの入門書です。翻訳版は絶版になっているので、原著を買うか図書館や中古で読んでください。
この本の特徴は量子回路について丁寧に書かれており、とにかく読んでいて面白いです。Grover のアルゴリズムの解説は一級品です。欠点を挙げるとすれば、記法が独特なので他の本との接続が悪いです。また、Shor のアルゴリズムの説明は微妙です。
Thomas G. Wong『Introduction to Classical and Quantum Computing』
比較的最近出た入門書です。PDF が著者ページで無料公開されているのが特徴です。量子加算器(古典ベース)について書いてあることが推しポイントです。
量子情報
物理よりの量子情報まで含めると大量の本を紹介しないといけないので、ここでは推し本を一冊だけ紹介します。
石坂智ら『量子情報科学入門』
量子コンピュータの内容も一応ありますが、どちらかというと量子情報の入門書です。他の本よりも数学的で、量子力学を理解していないとよくわからない箇所が出てくると思います。
この本の推しポイントは付録の線形代数です。研究で苦労した内容がほぼ全部載っていて感動しました。他の内容も理論物理の本らしくスッキリと書かれています。
量子計算
量子計算は量子コンピュータにおける計算理論を指します。
森前智行『量子計算理論』
森前先生による量子コンピュータにおける計算量理論の本です。量子コンピュータの入門書ではないので注意が必要です。前半はわかりやすいですが、後半はやや専門的で難しいです。
量子コンピュータが速い(かも?)理由を「負の確率」で説明していることが特徴的です。前半部だけでも買う価値があるオススメ本です。
西村治道『基礎から学ぶ量子計算: アルゴリズムと計算量理論』
森前先生の本より易しく書かれた本です。こちらは量子コンピュータの入門書としても使えると思います。立ち読みした程度なので詳しいことが言えません(T_T)
量子機械学習
量子機械学習を学ぶためには、古典の機械学習についても知っておく必要があります。古典の本については情報系の人なら知っていると思うので省略します。
M. Schuld, F. Petruccione『量子コンピュータによる機械学習』
日本語で書かれた本の中で、量子機械学習について一番まとまっています。なぜか原著の 1/4 の価格で翻訳版が買えます。ただし、原著は版が変わっているので、より最新の情報にこだわるのであればそちらをオススメします。機械学習と量子コンピュータの両方を知らないと読み通すのは困難です。
嶋田義皓『量子コンピューティング: 基本アルゴリズムから量子機械学習まで』
量子機械学習まで書かれている量子コンピュータの入門書です。「入門」の欄に入れなかった理由は、入門書としては微妙な点が多いからです。ただし、参考文献の欄が豊富なので、そういう用途では役に立ちます。
線形代数
量子コンピュータは実質線形代数といっても過言ではありません。というわけで、いくつか紹介します。線形代数の本は大量にあるので、正直どれでもいいです。
基礎
齋藤正彦『線型代数入門』
線型代数の標準的なテキストです。二次形式やジョルダン標準形は使わないので無視しても大丈夫ですが、それ以外の内容(特にユニタリ行列周り)は重要なのでちゃんと理解しておく必要があります。
S. Axler『Linear Algebra Done Right』
ベクトル空間から始まる理論的な線形代数の本です。4 版から PDF が著者ページで公開されています。固有値や対角化について計算だけでなく理論でもよく理解しておかないと、量子コンピュータの計算は意味がわからなくなりがちです。
個人的に一番好きな線形代数の本です。行列式の導入が特徴的です。
この本のショートバージョンとして、原啓介『線形性・固有値・テンソル<線形代数>応用への最短コース』が出ているので、一応紹介しておきます。
応用
基礎的な内容がわかっていれば、必要になったら調べるという方針がオススメです。正直、まとまった文献を読んでいないので、紹介できる本が少ないです。英語版の Wikipedia 駆動で勉強しました。
Gilbert Strang『世界標準 MIT 教科書 ストラング:線形代数イントロダクション』
特異値分解のような応用的な内容まで載っている入門書です。洋書特有のクドさと演習量が特徴的です。非常に分厚いので速習には向きませんが、割と易しいです。
N. J. Higham『Functions of Matrices: Theory and Computation』
自分が知る限り、行列値関数について最も詳しい本です。量子アルゴリズムによっては行列値関数を使うので、必要になるかもしれません。
Web 資料
白石直人『物理数学:講義ノート』
量子情報で使うような線形代数についてよく書かれたレベルの高い講義ノートです。
田崎晴明『数学:物理を学び楽しむために』
物理数学の入門書ですが、線形代数についてもよく書かれています。
整数論
Shor のアルゴリズムを学ぶためには整数論の知識が多少必要になります。フェルマーの小定理や位数がわからないのであれば、整数論の本で学ぶことをオススメします。
本
楫元『工科系のための初等整数論入門』
RSA 暗号を目標とした工学向けの整数論の本です。証明も丁寧で、これ以上にわかりやすくて面白い入門書はないと思います。
雪江明彦『整数論 1 初等整数論から p 進数へ』
雪江先生の整数論の本です。数学科向けなのでやや難しいです。代数学もついでに学べてしまう一石二鳥本。
フーリエ解析
量子フーリエ変換という重要なアルゴリズムがありますが、これは離散フーリエ変換の量子バージョンです。数学科レベルで深入りする必要はありませんが、最低限フーリエ級数展開ぐらいは知っておきましょう。
本
大石進一『フーリエ解析 (理工系の数学入門コース 新装版)』
フーリエ解析で一番オススメの入門書です。これがわかったら応用上は十分です。
西森秀稔『物理数学 II―フーリエ解析とラプラス解析・偏微分方程式・特殊関数』
物理数学の本です。量子力学を学ぶつもりがあるなら、ついでに買っておくと幸せになります。
Web 資料
予備校のノリで学ぶ「大学の数学・物理」
フーリエ解析であれば動画と多少の演習で十分だと思います。
計算量理論
もし量子計算を学ぶなら、古典の計算量理論について知っておくべきです。情報系の人間であれば知っている可能性が高いですが、一応挙げておきます。
本
M. Sipser 『計算理論の基礎』
計算理論の入門書だとこの本一択です。演習問題が多いタイプの洋書で、しかも重要な定理が何個か演習問題で登場しているので、読むのにはそれなりに大変です。
米田政明ら『オートマトン・言語理論の基礎』
Sipser の 1 巻がオートマトンですが、それに関してはこの本の方が易しくてわかりやすいです。
数理最適化
最適化周りの量子アルゴリズムを扱いたいのであれば、古典についても知っておくべきです。ただし、この分野は普通に難しいので僕は詳しくないです(ノ Д`)
本
梅谷俊治『しっかり学ぶ数理最適化 モデルからアルゴリズムまで』
やや難しい本ですが、調べながら読むとなんとかなります。後、図がわかりやすいので数式の意味がわかりやすいです。
Web 資料
Takami Sato『最適化超入門』
数理最適化の分類やイメージがつかめます。
米田優峻『数理最適化ことはじめ』
線形・離散最適化について、図や例を用いてわかりやすく説明しています。
物理
「はじめに」で述べた通り、量子コンピュータを学ぼうとすると物理がネックとなることが多いです。そこで、情報系の自分が物理を勉強するために使った中でオススメ本を紹介します。
量子力学
阿部龍蔵『量子力学入門』
解析力学から説明してくれる、最も易しい量子力学の入門書。内容は全然物足りないが、最初に読むのであればこの本が一番オススメ。シュレディンガー方程式の導入に波動方程式を使うので、情報系の人間はここで面食らうかも。
J. J. サクライ『現代の量子力学』
量子コンピュータを学んだ人はブラケット記法に慣れているはずなので、いきなり J. J. サクライに手を出したほうが幸せになれます。必要な前提知識も比較的少なく、量子力学についてよくわかるようになる一冊(二冊?)です。
ちなみに猪木・川合の量子力学が並んでオススメされていますが、猪木・川合は必要とする物理の前提知識が非常に多く、演習書としての要素が多いので個人的にはオススメしません。大学院の対策ならあり。
清水明『量子論の基礎』
量子情報に近い、公理ベースの量子力学です。J. J. サクライをより理論的に精錬した天下り的な本です。簡単な本ではありますが、これを初学で読んでもよくわからないことになるので、量子力学をある程度学んでから読むべきです。
ランダウ=リフシッツ『量子力学』
ランダウ=リフシッツのシリーズは非常に難しいことで有名ですが、少し読むだけでも脳がクリアになります。量子力学は学ぶほどモヤモヤが増えますが、この本を読むとかなり明確にわかるようになります。ただし、めっちゃ計算難しいです。
解析力学
量子力学を学ぼうとすると解析力学が必要になるケースが多いです。最近の量子力学だと解析力学を使わないこともありますが、それでも知っておいたほうがいいです。
ランダウ=リフシッツ『力学』
ランダウ=リフシッツの『力学』では解析力学が綺麗に説明されています。同シリーズの他の本に比べても非常に簡単で、これを読むと物理が好きになります。ただし、内容が少ないので他の本も読む必要があります。
前野昌弘『よくわかる解析力学』
くどいほど丁寧に書かれた解析力学の入門書です。必要な内容は大体書かれており、変分原理についても丁寧に説明してくれます。いきなりこの本を読むとゴチャゴチャになると思うので、ランダウ=リフシッツで大枠を掴んでから補足として読むことをオススメします。
電磁気学
量子力学を学ぼうとすると、最初の導入部分で電磁気学が使われていることがあります。もちろん、情報系の人間は知らない場合が多いので、電磁気学も多少は学んでおく必要があります。そこまで完璧にする必要はないので、軽く読む程度で十分です。
砂川重信『電磁気学』
電磁気学の王道的なテキストです。ベクトル解析について多少知っておくと、読み進めやすくなります。
横山順一『電磁気学』
速習に最も向いている電磁気学の本です。前半部分で最速でマクスウェル方程式まで向かい、後半部分で応用的な内容に触れています。
Web 資料
白石直人『電磁気学:講義ノート』
線形代数でも挙げた、白石先生の講義ノートです。凄まじいです。
岡部洋一『電磁気学』
岡部先生のテキストです。初学はこれで学びました。
さいごに
この記事では、情報系が量子コンピュータを学ぶためのオススメ本や資料を紹介しました。もちろん、これが全てというわけではないので、必要な内容や好みに合わせて探してみてください。
量子コンピュータは複合的な研究分野が大半なので、まともにやろうとすると勉強すべき内容が非常に多くなってしまいます。最初はある程度絞ったり、焦らずやったりなどをオススメします。
Discussion