外資系コンサルタントが主夫になったら

主夫、はじめました。興味のあることをとことん研究します。勉強法、テクノロジーなど

感覚的に理解する量子コンピュータ

量子コンピュータをわかりやすく解説してほしい!」というリクエストをいただいたので、まとめてみました。話題になりながら仕組みの難しい量子コンピュータですが、これを読んでいただければニュースに書かれていることを理解できるようになるはずです。

 

■まずはざっくりと理解

量子コンピュータは既存の半導体コンピュータよりもずっと高速だと言われます。その違いはどこにあるのでしょうか。

ざっくり理解すると、半導体コンピュータと量子コンピュータには、以下の2つの大きな違いがあります。

まずはここまで理解しておくだけでも、量子コンピュータ半導体コンピュータよりも高速だと言われる理由がわかっていただけると思います。

f:id:shufu-gaishi:20190331130418p:plain

 

■「重ね合わせの原理」で並列処理を実現

前述の検討により量子コンピュータを作るモチベーションができたので、実際にこれを実装しようと試みるわけですが、実はこの仕組みは単純には実現できないことがわかります。

コンピュータを作るためには、ビット=電子を自在にコントロールすることが必要なわけですが、量子力学には「不確定性原理」という重要な法則があり、電子のような微小な粒子(量子)は確率的にしか制御できないことが証明されています。

f:id:shufu-gaishi:20190331130619p:plain

 

しかし、これで量子コンピュータへの夢をあきらめるわけではありません。確率的にしか制御できないのであれば、それを逆手に取る、つまり、同時に複数の状態を確率として表せることを利用して、複数の計算を同時に実行する方式が考え出されました。

f:id:shufu-gaishi:20190331131013p:plain

量子コンピュータは「組合せ問題」を解くのが得意だと言われますが、そこにはこのような背景があります。

 

シュレディンガーの猫と状態の観測

重ね合わせについてもう少し詳しく理解しましょう。

シュレディンガーの猫」という話を聞いたことがあるかもしれません。前述の話の中で、「電子の状態は確率的にしか決定できない」という点は理解できても、「同時に複数の状態を取りうる」と言うのはやや難解です。それをこのようなたとえ話で表現したものです。

f:id:shufu-gaishi:20190331131749p:plain

ここで面白いことは、この思考実験を行ったシュレディンガーは、本来「半死半生の猫など存在するはずがない。不確定性原理は誤りである」ということを主張するはずでした。しかし後に不確定性原理を証明する実験が多く行われ、この思考実験は不確定性原理を説明するものとして使われるようになったのです。

物理学者の中でも激しい議論のあった理論であり、ロジカルに理解するというよりは「そういうものだから」と考えてしまうほうがすっきりするような気がします。

 

この原理を量子コンピュータに当てはめてみましょう。電子の状態を観測するまで、その電子は複数の状態を取りうるわけですから、まずは見えないところで複数の状態を同時に計算させておきます。そして計算が終わった後で結果を観測することで、最終的な正解だけを見ることができます。そして、最終的に欲しい答えが生き残る(最も高い確率になる)ようにゲートの並び順を調整することが、量子コンピュータにおけるプログラミングであると言えます。

f:id:shufu-gaishi:20190331132241p:plain

 

■現在検討されている量子コンピュータは大きく2種類

現在、「量子コンピュータ」と呼ばれるものには大きく2種類が存在します。これまで議論してきた方式は「量子ゲート方式」と呼ばれるもので、そのほかに「量子アニーリング方式」「QNN方式」と呼ばれるものが検討されています。

f:id:shufu-gaishi:20190331132847p:plain

f:id:shufu-gaishi:20190331132906p:plain

 

量子アニーリング方式

この方式は「最適化問題」を解くことに特化した仕組みです。「最適化問題」とは、数学の授業で言うところの「最大・最小問題」のことなのですが、「そもそも最適化問題が解けたら何かうれしいんだっけ?」という疑問が最初に浮かびます。

実は最適化問題が高速に解けることは機械学習アルゴリズムを実行するために非常に重要で、アニーリング方式の量子コンピュータが実現することで、AI技術の発展が期待されます。

f:id:shufu-gaishi:20190331133024p:plain

アニーリング方式は、複数の量子が全体のエネルギーを最小化する状態へ向かう性質を利用します。つまり、最小値を求めたい式を量子ビットを変数とする式で表現し、それを量子コンピュータ内でシミュレーションすると、自動的に全体が最小化された状態が得られる。最終的な量子ビットの状態を観測することで、全体を最小化する変数の値がわかる、という仕組みです。

f:id:shufu-gaishi:20190331133510p:plain

こちらは確かに量子ゲート方式と比較すると「これって量子コンピュータ何だっけ?」という疑問はありますが、まあ細かいことは言わず、今のコンピュータよりも早いよね、という点をポジティブに評価すべきです。

 

■これでニュースが読める

いかがでしょうか。少し雑な部分もありつつ、量子コンピュータの全貌はわかっていただけるのではないかと思います。ここまでの知識があれば、量子コンピュータ関連のニュースを読み解き、どこが凄いのか、どんな活用余地があるのか、理解できるようになると思います。

今後確実にブームが来る分野ですから、先取りして理解していきたいですね。

極限は3時間で解けるようになる

目標習得時間:3時間、問題数:6問

 

■極限がわかると、微積分がわかる

極限は、微分積分の基礎となっている考え方です。

数IIで計算できたのはn次関数の微積分だけですが、極限の計算を学ぶことによって、様々な関数の微分積分を計算できるようになります。まずは数IIの微積分を復習して、微分積分の計算がどのように行われているのか、確認しておくことをお勧めします。

 

■極限の計算パターンを覚えよう

極限の計算とは要するに「収束する形を作る」だけなのですが、シンプルなだけにいくらでも問題のパターンを作れてしまうので、習得にはかなりの計算練習が必要な単元でもあります。

今回は、できる限り少ない練習で極限計算のコツがつかめるよう、以下のまとめを作成しました。演習問題を通して、このまとめの使い方を確認していくことにしましょう。

f:id:shufu-gaishi:20190323153521p:plain

f:id:shufu-gaishi:20190323154106p:plain

 

■とにかく、「収束する形」を目指して変形する

問1

f:id:shufu-gaishi:20190323154708p:plain

数IIIでは数IAIIBと比べて、問題のパターン化が難しくなってきます。そんな中で有効なのは、「最初の一手」をパターン化しておくことです。まず手を動かし始めることで、解答の糸口を探っていくことができます。

極限の場合で言えば、指針が見えていてもいなくても、とにかく

  • 「公式A~Dのどれかを目指して変形する」
  • 「知っている変形テクニックのどれが当てはまるか考える」

この2つを考えながら手を動かします。

 

(1)から順番にやっていきましょう。

まず最初に考えるのは、一番シンプルな公式Aとテクニック①の組み合わせです。

これは難しくないので、一度やれば習得できるでしょう。

f:id:shufu-gaishi:20190324071032p:plain

 

次に(2)です。ここでも公式Aを目指していくわけですが、手を動かし始めると気づくことが2つあるはずです。

  • 「-∞」の扱い方に頭が混乱しそう
  • 分数式ではないので、テクニック①が使いにくい

これらを解決するのが、テクニック②と③です。やってみましょう。

f:id:shufu-gaishi:20190324073111p:plain

まずはテクニック①~③を覚えると、基本的な多項式の極限計算には対処できるようになります。

 

それでは、他の公式も確認していくことにしましょう。

問2

f:id:shufu-gaishi:20190324073611p:plain

指数を見たら、 公式Bを目指します。テクニック①を応用して、公式の形に変形することを考えてみましょう。

f:id:shufu-gaishi:20190324073724p:plain

指数の扱い方にクセがありますが、これも一度やれば習得できると思います。

なお、この問題は、他の問題集などの模範解答では以下のように解かれているのではないかと思います。

f:id:shufu-gaishi:20190324073928p:plain

こちらの方が、計算がすっきりしますね。今回は「一番強い項」というテクニックを愚直に守ってn+1乗の項で割りましたが、計算に慣れてきたらこのような効率化も考えていくとよいと思います。

 

問3

f:id:shufu-gaishi:20190324074342p:plain

今度は、公式Cを目指していくパターンです。

そろそろコツがつかめてくると、変形のアイデアが浮かんでくるかもしれません。極限のための変形計算は、二次関数の平方完成のように、とりあえず欲しい形を作り、後で補正する、という考え方です。

f:id:shufu-gaishi:20190324074744p:plain

 

さて、ここまでで極限計算の基本的なテクニックを紹介しました。まずはここまでを一度振り返り、極限計算のコツを確認してください。

 

微分のための極限計算

問4

f:id:shufu-gaishi:20190324075109p:plain

 これまでに身に着けたテクニックを使って、対数関数の微分を求めてみましょう。最終的には公式として答えを覚えればよいのですが、この導出を学んでおくことで、極限の計算力を高めるだけでなく、これまで棚上げしていた

  • 「e」という数がなぜ必要なのか
  • なぜ対数の底はeなのか

という疑問に答えることができます。

 

まずは、これまでのテクニック通りに変形してみます。

f:id:shufu-gaishi:20190324075621p:plain

さて、ここまで計算すると、(公式Dを知らないという前提で)手が止まってしまうはずです。普通に考えると、対数関数の微分はこれ以上シンプルにならないんですね。

しかし、これだと対数関数の微分は実用的じゃない、何とかしたい、というモチベーションから、数学者たちは2つのルールを設定することにしました。

f:id:shufu-gaishi:20190324080112p:plain

このルールのもとで、先の式を変形してみましょう。

f:id:shufu-gaishi:20190324080244p:plain

いかがでしょうか。2つのルールを設定することで、対数関数の微分を非常にシンプルな形に収束させることができました。これが「e」という数を導入する目的であり、対数の底がいつも「e」になっている(=自然対数の底)理由です。計算テクニックとともに、このような周辺知識も押さえておくと、極限の理解が深まるでしょう。

 

 ■条件が与えられたら、はさみうちの原理を意識

次は少し特殊なテクニックを扱います。何か極限の条件が与えられた時や、証明問題において有効な「はさみうちの原理」です。これは、公式としては当たり前のことを言っているだけなのですが、「どこで使うか?」「どう使うか?」が難しいテクニックです。

問5

f:id:shufu-gaishi:20190324081031p:plain

先ほどeの定義を紹介しましたが、実は少しズルをしていて、本当はあの公式はnが自然数の場合を前提にしています。したがって、対数関数の微分のように、実数としてあの公式を使いたいときは、まず実数でも公式が成り立つことを証明しておく必要があります。

 

この問題のように、条件が与えられたり、証明問題だったりする場合は、はさみうちの原理を意識します。そして、はさみうちの原理を利用するために、まず不等式を作ることからスタートします。

f:id:shufu-gaishi:20190324081305p:plain

答えを見れば難しくないと思いますが、問題は、「試験の土壇場でこれを思いつくかどうか」です。この解法を理解した上で、問題集などからはさみうちの原理を使う問題をいくつか解いてみて、どんな時にこの解法が有効なのか、感覚を身に着けておくとよいと思います。

 

積分のための極限計算(区分求積法)

問6

f:id:shufu-gaishi:20190324081716p:plain

この極限は、以下の図形の面積を表します。(この考え方が不安な方は、画面上部のリンクから数II積分の回を復習してみてください)

f:id:shufu-gaishi:20190324090601p:plain

この問題は、ジャンルとしては「無限級数」というものに分類されますが、指数関数の積分と絡めて無限級数を学ぶと、この計算を習得する意義を理解できると思います。

 

それでは計算してみましょう。

テクニックの種類として新しいものはありませんが、計算力が求められます。

f:id:shufu-gaishi:20190324094611p:plain

 

∞×0になってしまうほうを取り出して考えてみましょう。実はこの式は公式として紹介されていることも多いのですが、eの定義を理解していると、公式を知らなくても答えにたどり着けます。

f:id:shufu-gaishi:20190324094419p:plain

 

■極限がわかると、微積分がわかる

いかがだったでしょうか。ただの計算問題ととらえられがちな極限ですが、微積分と絡めて理解すると、これを学ぶ意味が見えてくると思います。今回紹介したテクニックを理解した上で、問題集などで演習を積めば、この単元だけでなく、微積分の理解も深まっていくことと思います。

 

■もっと分かりやすく!オンライン学習サービスを始めました!

2020年8月、「一夜漬け高校数学」は、オンライン学習サービス「スタディメーター」としてリニューアルしました!

講義動画はYoutubeで無料配信中!公式サイトで販売している講義スライドと練習問題を一緒に学習すると、1人でもしっかり数学の力を身に着けることができます。

そのまま教材にできる!先生のためのプログラミング教育超入門

2020年、小学校でプログラミングが必修化されますね。

学習指導要領によれば、プログラミングにより身に着けるべきは「プログラミング的思考力」であり、「プログラミング」という科目ができるわけでも、プログラミングのテストを行うわけではありません。そんな中で、多くの先生方がその準備に戸惑っていると聞きます。

続きを読む

データの分析は2時間で解けるようになる

目標習得時間:2時間、問題数:3問

 

■AIの基礎になっている数学

世の中は「デジタル化」と言われ、あらゆる情報がコンピュータ内で数値として管理されています。いま人工知能=AIが急速に発展している背景には、コンピュータの扱えるデータ量が飛躍的に拡大したことがあります(ビッグデータ)。

さて、日々ニュースになっているAIですが、その根幹には、今回学ぶ「データの分析」と、数Bで学ぶ「確率分布と統計的な推測」があります。これらの数学を習得し、AIのカラクリを理解しておくことは、AIに仕事を奪われないための必修事項であると言えるでしょう。

ぜひ今回はテストのためではなく、将来のために数学を学んで頂ければと思います。

続きを読む

テクノロジー系業界マップ50件を一覧化しました

業界研究の入り口として、業界マップは便利ですよね。

今回は、Webで公開されているテクノロジー系業界マップを50件集めました。ぜひ色々なリサーチに活用してください。

 

全体像

Machine Intelligence - Shivon Zilis

 

AI

全232サービス!「AIサービスマップ 2017 Summer」9カテゴリ132サービス増加 ~新たな領域での活用に期待~ | 人工知能ニュースメディア AINOW

B向け人工知能業界をまとめたカオスマップ(2017年下期版)が公開 | TechCrunch Japan

 

続きを読む

TwitterとDialogflowを連携してAIボットを作る

現在、LINEでAIチャットボットを作るビデオ講座を提供しています。

その中で、「LINEではなく、TwitterとDialogflowを連携するには?」というご質問をいただきましたので、今回はその方法をご紹介したいと思います。

 

続きを読む

どのAIを採用すべきか?-実用観点でスマートスピーカー比較

前回記事で「AI秘書」の導入を考えました。

まずは、スマートスピーカーの中から、何を選択するのが良いか、考えてみたいと思います。

 

スマートスピーカーは、どれも一長一短

現時点で一般的なスマートスピーカーといえば、GoogleGoogle HomeAmazonのEcho、LINEのClovaの3種類です。なお、「Google Home」「Echo」というのはスピーカー端末の名前で、その裏側にそれぞれ「Google Assistant」「Alexa」というAIの本体が存在します。

 

続きを読む