QuTrunk与Paddle结合实践--VQA算法示例

变分量子算法(VQA)其实就是用一个经典优化器来训练一个含参量子线路,即VQA使用参数化的量子电路在量子计算机上进行计算,然后把参数的优化训练丢给经典优化器来处理,从而充分利用了经典优化的工具箱。
摘要由CSDN通过智能技术生成

QuTrunk与Paddle结合实践–VQA算法示例

1、概述

QuTrunk 是启科量子开发和已经开源的一款量子编程框架软件产品,它使用 Python 作为宿主语言,利用Python 的语法特性实现针对量子程序的 DSL(领域专用语言),所有支持 Python 编程的 IDE 均可安装使用 QuTrunk。QuTrunk 基于量子逻辑门、量子线路等概念提供量子编程所需的各类API。这些 API 分别由相应的模块实现,比如 QCircuit 实现量子线路功能,Qubit 实现量子比特,Qureg 实现量子寄存器,Command 对应每个量子门操作的指令, Backend 代表运行量子线路的后端模块,gate 模块实现了各类基础量子门操作。同时 QuTrunk 还可以作为其他上层量子计算应用的基础,比如:量子算法、量子可视化编程、量子机器学习等。QuTrunk 设有多种量子计算后端模块,如:BackendLocalPy(本地 Python 版本模拟器);BackendLocalCpp(本地 C++版本模拟器);BackendQuSprout(量子计算云服务);BackendIBM(IBM 量子云计算平台)等。QuTrunk 对所有量子逻辑门及量子编程涉及到的基本概念进行了封装与实现,支持主流的量子算法。在使用 QuTrunk 进行量子编程时, 开发者只需通过提供的量子编程 API 即可直接调用量子逻辑门进行使用。QuTrunk 也支持混合量子-经典程序编写,已设计了量子线路分段执行机制, 提供 QuSL 量子汇编指令标准,与 Python 代码完全兼容。完整了解QuTrunk的文档请参考开发者社区上的相关文章介绍:启科开发者平台 (queco.cn)

QuTrunk的github链接:QuTrunk

PaddlePaddle是百度发布的一款AI框架(下面简称Paddle),QuTrunk框架的特性天然支持与Paddle的结合,通过使用QuTrunk开发量子计算+AI融合的应用程序以帮助用户解决各领域在经典计算机无法解决或者解决起来耗时很长复杂问题。本文主要通过量子计算上常用的VQA算法示例来展示如何使用QuTrunk和Paddle结合。

2、VQA算法简介

2.1 VQA算法定义

变分量子算法(variational quantum algorithm, VQA)其实就是用一个经典优化器(classical optimizer)来训练一个含参量子线路(quantum circuit),即VQA使用参数化的量子电路在量子计算机上进行计算,然后把参数的优化训练丢给经典优化器来处理,从而充分利用了经典优化的工具箱。与其他为容错时代开发的量子算法相比,VQA具有保持量子电路深度较浅从而降低噪声的额外优势,因而VQA也成为NISQ上设备取得量子优势的主要策略,在大量的应用中被使用,基本上涵盖了研究人员为量子计算机设想的所有应用,如下图所示:

在这里插入图片描述

2.2 VQA基本元素介绍

VQA的主要优点之一是它提供了一个通用框架,可用于解决各种问题。尽管这种多功能性转化为具有不同复杂度级别的不同算法结构,但大多数(如果不是所有)VQA都有一些共同的基本元素。它有些像是机器学习在量子计算中的自然类比,经典机器学习框架中有四个要素:

  1. 数据 { ( x k , y k ) } \{(x_k,y_k)\} {(xk,yk)}
  2. 模型   y = f ( x ; θ ) \ y=f(x;θ)  y=f(x;θ)
  3. 损失函数 C ( θ ) = C ~ ( f ( x k ; θ ) , y k ) C(θ)=\tilde{C} (f(x_k;θ),y_k) C(θ)=C~(f(xk;θ),yk)
  4. 优化器 θ = a r g m i n θ C ( θ ) \theta= \underset{\theta }{argmin}C(\theta ) θ=θargminC(θ)

我们的目标是找到一个可以拟合数据 ${(x_k,y_k)} $的模型 y = f ( x ; θ ) y=f(x;θ) y=f(x;θ),即确定一组最优的参数 θ 。确定 θ的方法就是让模型与给定的数据尽可能地接近(但不过拟合),接近程度由损失函数 C ( θ ) C(θ) C(θ) 来定义。利用一些优化器来找到 C ( θ ) C(θ) C(θ) 的最小值点,目标即可达成。

  • 对于经典机器学习算法,model通常是一个在经典计算机上运行的神经网络;
  • 对于变分量子算法,model是一个在量子计算机上运行的量子电路t;
img

对比经典ML,VQA算法的4个基本元素为:损失函数,ansatz,梯度和优化器。下面分别介绍:

2.2.1 损失函数

VQA的一个重要方面是将问题编码为损失函数。类似于经典的机器学习,损失函数将可训练参数θ的值映射到实数,优化任务是找到损失函数的全局最小值,损失函数的数学表达式如下:
C ( θ ) = ∑ k f k ( T r [ O k U ( θ ) ρ k U † ( θ ) ] ) C(\theta)=\sum_{k}f_k\left ( Tr\left [ O_kU(\theta )\rho_kU^{†}(\theta)\right]\right ) C(θ)=kfk(Tr[OkU(θ)ρkU(θ)])
如上(1)式中,U(θ)是参数化的酉,θ由离散和连续的参数组成, { ρ k } {\{\rho_k\} } { ρk}是训练集的输入状态, { O

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值