sora_sakakiのブログスマートフォン用の表示で見るsora_sakakiのブログこの広告は、90日以上更新していないブログに表示しています。19日目の記事です(遅刻1日)。昨日はumezouさんでした。本記事は量子コンピュータに詳しくないWebエンジニア向けに某所で発表したものを記事に落とし込んだものです。元ネタとしていますので、そっちを読んだ方が多分ワクワクします。量子コンピュータとは量子コンピュータとは量子現象を用いて計算するコンピュータのことです。物理法則を直接的に活用するという意味で、今広く使われているデジタルコンピュータよりアナログコンピュータ(OPアンプとか)のほうが近いかもしれません。量子コンピュータと呼ばれるものは量子現象をどういう演算に活用するかという観点で現在以下の2種類が存在します。ゲート式量子コンピュータ量子アニーラゲート式量子コンピュータは汎用量子コンピュータとも呼ばれ古くから知られているものです。暗号を破るなどでSFなどに登場するものもこちらのことです。他方、量子アニーラは2012年にD-Waveが発表し注目を集め急速に発展した量子コンピュータです。こちらは最適化問題に特化した専用計算機のようなもので国内のWeb系ベンチャーなどで「量子コンピュータやってます!」というときの量子コンピュータはこちらです。今回は「ゲート式量子コンピュータ」についての記事になります。以下量子コンピュータと言った時はゲート式量子コンピュータの意味で使います。量子コンピュータについてよく知られている(と私が思っている)ことやばい計算ができるらしい一番知られているものとしては、やはり高速な素因数分解を用いた既存の暗号の解読でしょう。これはかなりインパクトがあることです。ムーアの法則が限界に来ていることから古典コンピュータの限界を超える方法として話題に挙げている記事などもあり、全般的に計算機として古典コンピュータより速いのではと考えている方もいるかもしれません。実現が遠そう他方、実現は遠いのではないかと感じている方も多いのではないでしょうか。ニュースでは3量子ビットや16量子ビット、72量子ビットなどの成功記事が話題となっています。いってもD-Waveが2048量子ビットを実現しているし、それと比べると実現が遠いように見えます。以上の印象を踏まえて、実際の量子コンピュータはどうなのでしょうか。量子コンピュータは古典コンピュータより必ずしも速いわけではない量子コンピュータは古典よりも必ずしも速いわけではありません。古典でできる計算が全てエミュレーションできると証明はされているものの、古典より速いかどうかは証明されていません。他方、量子力学の性質によっていくつかの問題は古典コンピュータより速いどんな場合も速いわけではないですが、前述の素因数分解やまた量子力学のシミュレーションなど古典より速いとされているものは存在します。量子コンピュータの実用化には原理的に難しい問題を孕んでいる量子コンピュータの実現が遠そうという印象はその通りです。量子コンピュータの実現は難しいのでしょうか?それは原理的な問題が存在します。量子性がはっきりと確認できる環境というのは、ご存知の通り非常にミクロな領域になります。そのようなミクロな領域での現象なので非常に雑音などに対して弱い現象とも言えます。そのため、量子状態を保持するためには外界から遮断された環境が必要です。量子状態を変化させたり確認するためには干渉する必要があります。状態を変えるということは外界からなんらかの影響を与えて望む変化を起こすことになるためです。干渉するためには外界からの遮断が破れてしまい、その際に量子状態が変わってしまったり破れてしまうことが発生するわけです。量子ビット同士も干渉しあう必要があります。量子状態を保持するためには外界から遮断する必要があるにも関わらず、それを制御するためには外界から影響を与えないといけないという原理的な問題が量子コンピュータの実用化の上で大きな障壁になっているわけです。量子コンピュータが強力とされているかそのように原理的に困難な量子コンピュータですが、なぜ盛んに研究が続いているのでしょうか?それはその困難を乗り越えてでも量子コンピュータが強力だと信じられているからです。どのような点が強力なのでしょうか。古典では困難だが、量子コンピュータで容易に解ける問題が知られている素因数分解のアルゴリズムなどのことです古典では扱えない複雑さを扱える古典的にはいかなる方法を使っても簡単に表現できないとわかっている情報が量子ビットで簡単に表現できることが知られている量子コンピュータを古典で効率的にシミュレートする方法がわかっていない特に、3番目の「効率的にシミュレートする方法がわかっていない」点が重要です。効率的にシミュレートできないということは、そこに古典を超えるなんらかの優位性が存在すると考えられます。関連していくつか言及すると古典的に難しい問題と量子的に難しい問題には違いがある前述のように古典で難しく量子では容易な問題が知られていますが、他方巡回セールスマン問題のようなNP-困難な問題は古典的にも量子的にも難しいようです。古典はともかく量子が得意とする問題はまだまだ研究の途中なので、それが明らかになってくると古典と量子の計算傾向の違いや使い分けなどが見えてくるかもしれません。量子が得意なものとして多粒子量子系のシミュレーションがある古典では量子系のシミュレーション、特に多粒子の量子系のシミュレーションは困難を極めます。古典的には計算が複雑すぎるためです。当然ですが量子コンピュータは量子系そのものなので量子系のシミュレーションに向いています。これは余談ですが、ファインマンは35年前に古典でのシミュレーションが困難な点について量子コンピュータでシミュレーションすることを構想していたそうです。量子コンピュータの研究自体は1980年代から行われています。簡単に以下にまとめます。1950年代:量子力学を計算に使うという考えが提唱される1980年代:量子計算の基本的なコンセプトが考案され、研究が始まる1990年代:Shorのアルゴリズムなどアルゴリズム研究が進む2000年代:ハードウェアの研究が進み始める2010年代:量子アニーラ(D-Wave)が注目を浴び、また量子ゲートも民間等含めた開発が盛んになるいくつか重要な点があります。一つは1990年代で、有用なアルゴリズムが開発されたために注目を浴びます。実現に向けてで言えば、ここが研究が加速する契機です。次は2011年のD-Waveの発表です。これはゲート式ではないものの商業の量子計算機が出たということで大変注目を集めました。それによって量子コンピュータ界隈全体が活発になりました。ゲート式が今盛り上がっている前提として量子コンピュータ界隈自体が盛り上がっていることは重要です。その上で、2012年に量子超越性(量子スプレマシー)、古典をゲート式量子コンピュータで超えるという概念が提唱されます。これは2018年にメディア露出し現在民間各社が競って狙っている目標です。具体的に目指すべき目標が設定されたことは一つ契機だと思います。最後に、2015年にエラー訂正すればまともに使える精度の量子ビットの開発が報告され、開発競争が加速し今に至ります。開発競争が加速した結果、2014年、Googleが研究室ごとゲート式の開発チームを買収し参入2016年、IBMがクラウドでつかえる5量子ビットの量子コンピュータを公開2017年、Microsoftが量子コンピュータ向け言語Q#を公開2017年、IBMが16量子ビットの量子コンピュータの開発に成功2018年、IonQが79量子ビットの量子コンピュータの開発に成功このように加速度的に開発が進んで現在に至っています。Quantumの略で「50から数百量子ビット程度の中規模でノイズが多い量子コンピュタ」を意味します。これは、現在から数年後の量子コンピュータを表現するために2018年にPreskillによって提唱されたものです。NISQNISQがなぜ熱いかNISQがなぜ熱いかをお話しするにはなぜNISQという概念が作られたかを説明する必要があります。50量子ビットの障壁NISQの50量子ビットという数字は非常に重要です。いうと量子超越性が確認できる数字だと考えられているからです。NISQは初めて古典で計算できなかったことが実現できる量子コンピュータを指し示します。古典コンピュータを超越する新しい歴史の幕開けとして、NISQという概念が作られました。NISQによって計算の世界は誰も知らない新時代に入るのです。次に熱いポイントは、実現が見えてきた故に生まれた新しいアルゴリズムの数々です。古典で語られることの多かった量子コンピュータですが、これらの新しいアルゴリズムの筆頭「古典-量子ハイブリッドアルゴリズム」は量子コンピュータをアクセラレータ的に使用することを念頭に置いたアルゴリズムです。QAOAやVQEがそれに当たります。QAOA(量子近似最適化アルゴリズム)は、最小値問題を解くアルゴリズムです。説明するとハイパーパラメータの探索は古典で実施し、最小値の計算を量子で実施するアルゴリズムです。qiita.comVQE(量子変分アルゴリズム、量子変分固有値ソルバー)は、低エネルギー状態を計算するアルゴリズムです。変分パラメータの探索を古典で実施し、エネルギー期待値を量子で計算します。qiita.comまた、他に量子RBMなどの量子ディープラーニングも提唱されています。具体的なアプリケーション案も考案されています。前述の最適化アルゴリズム量子力学のシミューレション量子レコメンデーション量子ゲーム特に、個人的には量子ゲームは日常の直感に反する量子力学の世界を体感する貴重な機会を提供すると思います。エンジニア目線で見たNISQエンジニア目線でこのNISQの世界を見てみます。エンジニア目線で見た時、NISQにエンジニアとして関わるのは比較的やりやすい状況が作られています。一つは、クラウドで使える環境やシミュレーターがすでに存在することです。Kit」ほかいろいろこのように計算できる環境があるため、アプリケーション開発をすぐにでも始めることができます。一つは、開発環境やフレームワーク、それに伴うサンプルコードなどが存在することです。CirqほかにCodeforcesなどの競技プログラミングサイトでQ#を題材にしたコンテストの開催実績などもあります。エンジニアならではの魅力もあります。いうのは、NISQでのプログラミングはWebのプログラミングなどとはフェイズが大きく異なる点です。NISQは前述の通り、多くのアルゴリズムが想定したような大規模な処理系ではなく、非常にチープな処理系です。非富豪的なプログラミングが求められる側面があります。個人的にはこれはかなりチャレンジングでワクワクするシチュエーションだと思っています。古典の世界で遥か昔の英雄たちがファミコンでドラクエを開発したような、頭を絞るようなプログラミングができる余地があるように思います。絶好の俺TUEEEEEEEEできるフロンティアがここにあります。(妄想)最後に以上、かなり偏見の混ざったNISQに関する記事でした。冒頭にもかいているのですが、もしこれを読んで少しでも気になったのであれば元ネタの論文を読んでいただいたほうが正確な内容が理解できると思います。完全に個人の印象なのですが、珍しい環境かつ今後発展するかもしれない領域で再開発でないエンジニアリングができるという点に大変魅力を感じています。1.4以前の物になります。1.4以前の物になります。現在の仕様とは...2015-07-16機械学習初心者が1からChainerのコードを書き始められるまでに必要だったことをまとめたディープラーニングが面白そうだったので、始めたChainer。月別アーカイブはてなブログをはじめよう!sora_sakakiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。