深層強化学習は量子猫の夢を見るか?

PLAID Advent Calendar 2019 3日目担当の @algas です。今年は量子コンピュータを個人的に勉強しています。最近では量子スプレマシーが話題になりましたね。会社の業務では量子コンピュータを直接使っているわけではないので今のところは完全に個人の趣味です。ソフトエンジニアとして生きていれば遠くない将来に業務で量子コンピュータを使うこともあると思っています。

概要

本記事では Google の論文 “Universal Quantum Control through Deep Reinforcement Learning” の中で使われている技術とそれが必要な背景を解説したいと思います。論文自体の内容に関する考察までは本記事では扱いません。論文の概要は Google AI Blog "Improving Quantum Computation with Classical Machine Learning" でも紹介されています。

対象読者

量子コンピュータや機械学習に多少の知見がある読者を対象とします。アドベントカレンダーのネタなのにそんなに軽くないです。それぞれの技術の専門家の方はぜひ元論文を読んでみてください。

背景

現状の量子コンピュータを使って実用的な問題を解くための主な課題として以下の3つがあります。

  1. 量子ビット数が少ない
    量子ビットの数が多いほど高い精度の計算や多くのパターンの組み合わせの計算ができるようになります。
  2. 量子状態を維持できる時間が短い
    量子コンピュータで問題を解いている間は量子状態を維持する必要があります。
    量子状態を長い間維持できる方がより複雑な問題を解くことができます。
  3. ノイズやエラーのために信頼性が高くない
    古典コンピュータではノイズの除去やエラー訂正が実用上で十分なレベルに達しています。
    それに比べて量子計算でのエラー訂正は簡単ではありません。量子状態を維持する時間が短いので大規模計算で訂正処理をするのが困難です。量子ビットを測定すると量子状態が壊れるので測定せずに訂正する方法が必要です。

この3つ目の課題を解くのが紹介する論文の手法です。

論文の解説

量子コンピュータのノイズ

量子コンピュータのノイズには主に以下の2つがあります。

  1. 量子ビット自体への干渉
    • 量子コンピュータでは量子ビットに情報が保持されます。光子や音量子が量子ビットの近くを通ることによって量子力学的に干渉することがあります。
    • 量子ビットの値を確定するためには「測定」する必要があります。測定の精度によって量子ビットの値が間違っていることがあります。
  2. 量子ビットを制御する道具によるノイズ
    • 量子ビットが載ってる物理基板の電気信号や電磁場によってアナログのノイズが混じってしまうことがあります。
    • 熱によるホワイトノイズ以外にも、外部の電波源、DAコンバータなどもノイズの発生源になります。

ノイズの図

論文の概要

量子コンピュータのノイズ問題を解決するために「深層強化学習を使った新しい量子制御フレームワーク」を作りました、という内容の論文です。
フレームワークの応用用途には以下があります。

  • 量子シミュレーション
  • 量子化学
  • 量子スプレマシー

量子計算中の情報の漏れがノイズの主な原因の1つです。理論的には情報の漏れを完全に予測できればノイズを改善できます。量子コンピュータ全部をシミュレーションできればこれが実現できます。しかし現実的には量子コンピュータ全部をシミュレーションするのは計算効率の問題や大規模な計算においては難しいので完全には予測できません。その代わりに物理モデルを改良することで量子計算のいくつかのパラメータを最適化してノイズを減らすことができます。

論文の結論

既存の手法の確率勾配降下法(SGD)よりも桁違いで良い結果が得られたそうです。
“Universal Quantum Control through Deep Reinforcement Learning” (Fig. 4)

“Universal Quantum Control through Deep Reinforcement Learning” (Fig. 4)

On-Policy Trusted-region Deep Reinforcement Learning

深層強化学習の図です。
“Universal Quantum Control through Deep Reinforcement Learning” (Fig. 1)

“Universal Quantum Control through Deep Reinforcement Learning” (Fig. 1)

深層強化学習の技術については以下によくまとめられています。本記事と合わせてお読みください。
深層強化学習アルゴリズムまとめ

  • 深層学習(Deep Learning)
    DeepLearning
  • 強化学習(Reinforcement Learning)
    a487c561028d9bf9783570645d39d350-png
  • 深層強化学習(Deep Reinforcement Learning)
    = 深層学習(Deep Learning) + 強化学習(Reinforcement Learning)
    f09e4543ebfe850c4b2daa220cb1b97b-png

http://people.csail.mit.edu/hongzi/content/publications/DeepRM-HotNets16.pdf

https://medium.com/@jonathan_hui/rl-trust-region-policy-optimization-trpo-explained-a6ee04eeeee9

  • On-Policy
    解説記事: 強化学習のOn-PolicyとOff-Policy
    現在の方策(Policy)に則って(on)将来の行動が選択されることを前提に学習します。崖の近くの道が選ばれにくくなります。On-Policy とは逆に方策に依存しない Off-Policy もあります。
  • Policy Neural Network
    解説記事: Policy Networks vs Value Networks in Reinforcement Learning
    現在の方策(Policy)を改善するのが目的です。行動空間が高次元でも連続でも使えます。確率論的な方策も学習できます。局所解に陥りやすく評価が非効率的であるというデメリットもあります。
  • Value Neural Network
    最適行動価値(Value)関数を推定するのが目的です。局所解には陥りにくいアルゴリズムもあります。行動空間が高次元の場合には計算負荷が大きくなります。
  • 確率勾配降下法(Stochastic Gradient Descent Method)
    解説記事: 勾配降下法の最適化アルゴリズムを概観する
    目的関数を最小化する問題を解く方法の1つです。局所解に陥りにくいメリットと最適解をいつまでも得られない可能性があるデメリットを持ちます。

Quantum Unitary Gate

量子回路図です。
“Universal Quantum Control through Deep Reinforcement Learning” (Fig. 2)

“Universal Quantum Control through Deep Reinforcement Learning” (Fig. 2)

量子コンピュータに知見がない方は以下も合わせてお読みください。
ゲート方式量子コンピュータの概要
Quantum logic gate

  • 量子ビット(qubit)
    古典ビットは0か1の2つの状態しかありません。量子ビットは測定した時に初めて値が確定し、その状態によって確率的に0か1のどちらかの値になります。複数回測定するとその出現確率の状態に近づきます。
    • 古典ビットの「0」: 0が100%測定される状態
      ket0
    • 古典ビットの「1」: 1が100%測定される状態
      ket1
    • 一般的な量子1ビット
      qubit1
    • ブロッホ球:量子ビットの状態を仮想的に表した球
      bloch-sphere
  • 量子ゲート演算の基本
    • nビット量子ゲート演算
      2^n x 2^n の行列=ゲート( U )を 2^n 要素のベクトル = 量子nビットに作用させます。
    • 1ビットの場合には以下の式で書けます。
      quantum1_u_gate
      quantum1_u
  • 1ビット量子ゲート
    • RYゲート: ブロッホ球のY軸の周りに位相をθだけ変化させます。
      ry-gate
    • RZゲート: ブロッホ球のZ軸の周りに位相をθだけ変化させます。
      rz-gate
  • 2ビット量子ゲート
    • CNOT(Controlled Not)ゲート: コントロールビット(下図の上側のビット)が1の時だけターゲットビット(下図の下側のビット)の値を反転させます。
      cnot-gate
      cnot-circuit
    • SWAPゲート: 2つのビットの値を交換します。
      swap-gate
      swap-circuit
  • Quantum Unitary Gate
    • たとえば簡単のために α=π/4,γ=π/4 と仮定すると、U は以下のような演算になります。
      ui-simple
      rz0
      rz1
      ui-result
      SWAPゲートと一緒になります。ちょっと簡単にしすぎました。
    • 論文による測定結果
      α を横軸にして γ=π/2,π/6,π/3 の場合の単位時間あたりのゲート実行時間を縦軸にした図です。
      “Universal Quantum Control through Deep Reinforcement Learning” (Figure 3)

    “Universal Quantum Control through Deep Reinforcement Learning” (Figure 3)

本記事のまとめ

量子コンピュータの直近の主な課題の1つであるノイズ問題を改善する手法を提案する論文の背景と論文内に登場する技術を紹介しました。背景の状況や要素技術が理解できると論文の内容にも興味を持てるのではないでしょうか。

参考文献

CX(顧客体験)プラットフォーム「KARTE」を運営するプレイドでは、KARTEを使ってこんなアプリケーションが作りたい! KARTE自体の開発に興味がある!というエンジニア(インターンも!)を募集しています。
詳しくは弊社採用ページまたはWantedlyをご覧ください。 もしくはお気軽に、下記の「話を聞きに行きたい」ボタンを押してください!