Paddle Quantum 量桨入门手册

Paddle Quantum 量桨入门手册

Copyright ? 2021 Institute for Quantum Computing, Baidu Inc. All Rights Reserved.

Paddle Quantum 量桨入门手册

总览

这是一份简洁、实用的关于量子机器学习(Quantum Machine Learnig,QML)的介绍,面向读者包括但不限于物理、数学和计算机背景。本手册主要采用 Jupyter Notebook 的交互形式 (调用 Numpy, Matplotlib 等 Python 包以及飞桨 Paddlepaddle 深度学习框架来实现基于线性代数的量子运算和机器学习优化问题)。我们不仅提供了关于量子计算的一些基础教程同时还能手把手带你完成属于你自己的第一份量子机器学习算法。这并不是一份关于量子计算的百科全书,但我们涉及的案例经常出现在教科书中以及文献中。如果你想深入挖掘一些相关的基础知识,我们也提供了一些外部链接方便用户自己学习。

量子计算是由量子力学与计算理论交叉形成的新型学科,本质上是通过量子力学的基本规律去操控信息单元量子比特(quantum bit, qubit)的新型计算模式。与经典计算模型相比,在许多特定的信息处理任务上量子计算被普遍认为具有更强大的信息处理优势。关于量子计算的介绍与入门知识可以参考 [1-2],想要系统性地学习量子计算学科的读者请参阅 Nielsen & Chuang 编写的经典教材 [3]。近期,量子计算领域中一个热门的课题是如何有效地结合量子计算和人工智能两者的潜能。量子机器学习便是这样一门结合了量子计算与机器学习的交叉学科,一方面研究者们希望利用量子计算的信息处理优势去促进人工智能的发展,另一方面也存在可能性去利用现有的人工智能的技术突破量子计算的研发瓶颈。关于量子机器学习的入门资料可以参考 [4-6]。

内容上,这份快速入门包括以下几个方面:

  • 量子计算和量子神经 络的基础知识介绍
  • 量桨(Paddle Quantum)的使用介绍
  • 飞桨(PaddlePaddle)优化器的使用教程
  • 具体的量子机器学习案例—— 变分量子特征求解器(VQE)

最后修改于: 2021年3月2日 由量桨 Paddle Quantum 开发小组共同完成。


目录

  • 入门手册总览
  • 安装: [Conda 与环境配置] [安装 Paddle Quantum包]
  • 量子计算基础: [量子比特] [量子门] [测量] [示例和练习]
  • 量子电路模板的搭建: [量子神经 络QNN] [内置电路模板]
  • 量桨的运算模式: [波函数向量模式] [密度矩阵模式] [练习:贝尔态]
  • 飞桨优化器的使用: [简单案例] [应用与练习]
  • 量子机器学习案例: [无监督学习 – VQE] [无监督学习 – VQE命令行方式执行]
  • 知识点总结
  • 参考文献

安装教程

Conda 与 Python 环境安装

我们推荐使用 Anaconda 作为 Python3 的开发环境,支持多种主流操作系统(Windows, MacOS, 以及 Linux)。Anaconda 本身提供 Scipy, Numpy, Matplotlib 等科学计算、作图包,最主要的是其自带 Python 开发环境的管理器 conda,可以用来安装或者更新主流 Python 包。这里我们提供一个例子来学习使用 conda 创建和管理环境:

  1. 首先进入命令行 (Terminal) 界面:Windows 用户可以通过 / Mac用户可以使用组合键 再输入 。
  2. 进入 Terminal 后输入 创建名为 的 Python3.7 环境。
  3. 在 Terminal 内通过 查看已有的环境,然后通过 进入我们刚建立的环境。
  4. 为了能正确运行 Jupyter Notebook 我们还需要安装 或者 。安装完成之后,如果你想开启 Jupyter 只需要在Terminal内激活正确的环境然后输入 即可。

关于 conda 更多的本地指令请参考 官方教程。
此外,你也可以通过使用 Anaconda Navigator 开启 jupyter notebook。

以下是这个教程中你需要使用的包:

  • Numpy
  • Paddlepaddle 2.0.1+
  • Paddle Quantum 2.0.0+

在AIStudio项目中,Python环境已经安装和配置好,此步可忽略。

安装 Paddle和 Paddle Quantum

接着我们安装 Paddle Quantum 包,用户可以直接通过 完成安装。关于本地安装方式,用户可以通过 Terminal 界面使用 git指令 或者直接下载 压缩包,然后找到对应本地文件的路径输入 和 完成安装。接着在 Terminal 界面输入查看是否在正确的环境中安装完成。关于 git的使用和安装,请参考这篇 教程。此外,如果你需要更多的关于安装 Paddle Quantum 的帮助,可以参考我们的 Github链接 或者通过 Github Issues联系我们。

这里我们建议用直接安装。

  • 以上的几个代码块没有任何 错的话(众所周知,Warning和INFO信息不算 错,可忽略),恭喜你!接着就可以顺利运行全部的教程了!

[回到 目录]


量子计算基础

量子计算(Quantum Computing, QC)是利用量子物理中特有的现象(量子叠加态、量子相干性和量子纠缠等)来设计相应的量子算法以解决 (物理、化学、计算机等领域)特定的任务。现有的量子计算有存在几种模型,例如基于绝热定理的绝热量子计算模型(Adiabatic Quantum Computation, AQC)以及基于测量的量子计算模型(Measurement-Based Quantum Computation, MBQC)等等。在本介绍中,我们主要讨论目前影响力最大、使用最广泛的量子电路(Quantum Circuit)模型。在量子电路的框架下,运算最基本的组成单元是量子比特(qubit)。这与经典计算机中比特(bit)的概念很相似。经典比特只能处于0和1两种状态中的某一种(物理图景上可以对应晶体管的高低电位)。与之不同的是,量子比特不仅可以处于两个状态 ∣ 0 ? |0rangle 0? 还有 ∣ 1 ? |1rangle 1? 还可以处于两者的叠加态(稍后我们来具体讲解下这一概念)。在量子电路模型中,我们通过由一系列量子逻辑门构成的量子电路来操控这些量子比特的状态从而完成计算任务。逻辑门运算的基本理论是线性代数,在此我们假定读者已经具备一定的线性代数基础。

什么是量子比特/h3>

数学表示

在量子力学中,一个二能级系统微观粒子(qubit)的量子态(quantum state)可以表示为由两个正规正交基线性组合得到的向量,这些基向量一般可以写为

∣ 0 ? : = [ 1 0 ] , ∣ 1 ? : = [ 0 1 ] . (1) |0rangle :=

[10][10], quad |1rangle := [01][01]. tag{1} 0?:=[10?],1?:=[01?].(1)

这里向量的表示方法采用了量子物理上传统的狄拉克表示(bra-ket)。这两个单位正交向量 { ∣ 0 ? , ∣ 1 ? } {|0rangle, |1rangle } {0?,1?} 一般被称为计算基(computational basis)。物理图景中我们可以认为 ∣ 0 ? |0rangle 0? ∣ 1 ? |1rangle 1? 分别对应一个原子的能量基态和激发态或者其他一些二分类状态。 一个量子比特所有可能的态可以看作是二维希尔伯特空间中所有的归一化向量,这个希尔伯特空间的一组正规正交基正是 { ∣ 0 ? , ∣ 1 ? } {|0rangle, |1rangle } {0?,1?}。更多的量子比特系统也同样可以由高维度的希尔伯特空间中的的单位向量表示,而这个高维希尔伯特空间的正交基就是 { ∣ 0 ? , ∣ 1 ? } {|0rangle, |1rangle } {0?,1?} 的张量积。比如说,一个两量子比特(2-qubit)系统可以被一个4维的希尔伯特空间里的单位复数向量表示,而这个希尔伯特空间的正规正交基是

{ ∣ 00 ? = ∣ 0 ? ? ∣ 0 ? : = [ 1 0 0 0 ] , ∣ 01 ? = ∣ 0 ? ? ∣ 1 ? : = [ 0 1 0 0 ] ,

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月22日
下一篇 2021年2月22日

相关推荐