久しぶりに大学の授業を受けてテンションが上がった:量子アニーリング(QA)の世界へようこそ
今年の3月に行われた超異分野学会の基調講演をお願いした東北大学の大関 真之先生が、チャレンジングな取り組みをしています。
詳細は公式Webサイトを参照。
到達目標
量子コンピューティング技術に期待が高まり
多くの研究機関や企業がこぞって研究競争を繰り広げています
そんな時代にあるからこそ「触ってみたい」から始まり
「何ができるのか」を知り
「自分で考える」ところを目指します
どこからでも受けられると言うことは
いろいろな場所にいる人との出会いが可能です
受講するにあたり思わぬ出会いと突発的なアイデアが
本講座で生み出されることを期待します
ただ技術を学ぶのではなく
一緒にそれを活かすためにはどうしたら良いか
考える場所として
受講を終えたら一緒に研究を始めることを目指します
講座自体はYouTube Liveで行っておりなんと無料。事前登録をしておくことでSlackコミュニティを通して研究活動を行っていくというスタイルになっています。高校生以上に向けた取り組みということもあり、本当に高校生から社会人まで幅広い参加者がいる模様。(僕もその一人)
因みに、正式に申し込んでいなくても見るだけであれば公式サイト及びYouTubeのアーカイブを見て理解ができると思います。
昨日Day1が終わったばかりで興奮冷めやらぬ状態なのですが、振り返ってみたいと思います。
Day1の様子
1時間半の予定が3時間半講義を続けた大関先生は自身で「量子アニーリングについて語り尽くす」とおっしゃっていて、完全に体現していました。
量子アニーリングを何に使うのか?
量子アニーリングは組み合わせ最適化問題を解くのに使われます。組み合わせ最適化問題の例についてはこちらを参照。事例にある「巡回セールスマン問題(配送経路問題)」あたりがイメージが湧きやすいかもしれません。どの道を通って行けば最も効率よく巡回ができるかを考える問題なのですが、道順は無数にあり、それぞれの組み合わせで一番最適なものを選ぶという計算をすると、従来のいわゆる古典コンピュータで解くのには膨大な時間がかかってしまいます。これを量子コンピュータを使うことで素早く解くことができまっせというアプローチということでした。
Day1の動画を見てもらうと分かるのですが、参加者は今後チーム分けされ、共同で研究を進めていくというスタイルになります。このチームのマッチングもQAで行われる予定です。そのために、キャラクター判定用のアンケートを取ると言っていましたが、無数にあるチームの組み合わせの中で最適なものを導き出すことができるという使い方、あなたの身近にも考えられるのではありませんか?(私自身もやりたいことはそんなことです)
ここがすごかったぞ大関式オンライン授業
当講座ではその性質上プログラミングを行うのですが、先生の説明を聞くととてもわかり易かった。独学でしか勉強してこなかったので、人の説明付きで学ぶ事自体が新鮮でした。
すごいぞGoogle Colaboratory
公式サイトにこんなリンクが貼ってあるのですが
これをクリックすると、先生側で用意してくれたノートにアクセスすることができます。(Googleアカウントは必須ですが)
Google Colaboratoryの事を全然知らなかったのですが、元はJupyterノートブックで、Googleがクラウドホスティングしているものだそうです。
コードの説明+実際に走らせるコードブロックを共存させることができるので初学者にはめちゃくちゃ理解しやすい形式ですね。世に出ているプログラミング系の書籍は全部これに置き換えてくれれば、世界の生産性が上がるんじゃないでしょうか。
すべての質問に答えていくスタイル
そもそもなんで3時間半かかったかってすべての質問に大関先生が答えていくからなんですけれど、質問を通して参加者の理解が進んでいく事がリアルタイムに分かって良いやり方でした。
YouTube Live良い
長丁場かつ夕方から夜にかけて行われたため、学生なんかは晩ごはんタイムで親に呼び出されて離席したりしていたのですが、復帰した学生が2倍速でみて追いつきます!とか言っていて衝撃を受けました。私自身も寝かしつけタイムで追いつこうとしたクチではあるのですが。YouTube使っての授業配信、とても良いですね。
量子アニーリングの世界の入り口に立ってみて
面白かったのは、量子アニーリングマシンに解析対象のデータ(行列)を突っ込むための準備のほうが、実際の計算より時間がかかるというものです。いわゆるデータの前処理と、その転送ですね。
前処理はpythonを使ってゴリゴリと書いていく必要がありますし、その前段には課題を行列で解決できる形に計算する必要があったりします。数学的な脳みそが必要なのと、それを効果的に作り上げる力が必要になってきます。
そう考えると、ちょっとむずかしいかなという印象があるかもしれませんが、多分これからの授業でこのあたりについて実際にどうアプローチをかけていくのかについて考えていくのだろうと思います。
Day2の内容
第2回 量子アニーリングマシンでどんな問題が解けるのか(予定)
2-1. 組合せ最適化問題って何?
2-2. どんな答えが出るのか知っておこう
2-3. 罰金法で制約条件を課す
2-4. 様々な応用事例を見てみよう
2-5. コスト関数を読む
楽しみですね。
Google Colaboratoryじゃなくても動きます
僕自身はVS code使ってるのでそちらでも動かしてみました。
まずは仮想環境を作りましょう。
% python3 -m venv QA
% cd QA
% source bin/activate
次でいきなり躓くわけですが・・・
% pip install dwave-ocean-sdk
ERROR: pyqubo 1.0.10 has requirement numpy<1.20,>=1.17.3, but you'll have numpy 1.20.3 which is incompatible.
numpyのバージョンが高すぎました。1.2台は使えないようです。インストールし直しましょう。これでうまくいきます。
% pip install numpy==1.19.5
% pip install dwave-ocean-sdk
あとはコードを書いていけばGoogle Colaboratory同様に使うことができます。
noteにはこれまでの経験を綴っていこうかと思います。サポートによって思い出すモチベーションが上がるかもしれない。いや、上がるはずです。