量子变分算法---损失函数
引子
关于损失函数,我们知道在强化学习中,会有一个函数,用来表示模型每一次行为的分数,通过最大化得分,建立一个正反馈机制,若模型为最优则加分最多,若决策不佳则加很少分或者扣分。而在神经网络中,通过正向传播可以求得模型的权重和偏执,用于最后的预测或者分类,真实值和预测值之间的差值。而反向传播,通过求权重和偏置的梯度,来调整参数,使得梯度不断下降,让模型的性能更优。
所有物理系统,无论是经典系统还是量子系统,都可以存在于不同的状态中。例如,道路上的汽车可以具有表征其状态的特定质量、位置、速度或加速度。同样,量子系统也可以具有不同的配置或状态,但它们在处理测量和状态演变的方式上与经典系统不同。这导致了量子力学独有的叠加和纠缠等独特属性。就像我们可以用速度或加速度等物理属性来描述汽车的状态一样,我们也可以使用可观测量来描述量子系统的状态,可观测量是数学对象。
在量子力学中,状态由归一化复列向量或 kets∣ψ〉表示,可观测量是作用于 kets 的厄米线性算子 ()。可观测量的特征向量 |λ〉 称为特征态。测量可观测量的其中一个特征态 (λ〉
将为我们提供相应的特征值 λ作为读数。
在qiskit中提供了两种方法,来测量量子系统,一个是采样器(Sampler)和估计器(Estimator),采样器用于计算给定状态∣ψ〉下获取每一个基础状态的概率值,而估计器获取一个可以观测的和∣ψ〉
sampler原语,为什么它仅仅适合稀疏概率分布呢?
稀疏概率分布是指,量子态∣ψ〉仅涉及到少数几个计算基态|k>的概率,而大多数基态的状态为零或者非常小。例如
![]()
而下列是密集的

而如果概率是密集的,那么测量基态的数量为2的幂次,而稀疏分布的只需要少数几次测量。
Sampler在处理稀疏分布时更加高效,因此它只是需要少数几次测量来捕捉少数几个基态的概率。
Estimator通过计算可观测量对于一个量子态∣ψ〉,它的观测概率可以被表达为
而它对每个状态的概率和,可以表示为:
但是,计算可观测量的期望值并不总是可行的,因为我们通常不知道它的特征基。Qiskit Runtime 的 Estimator 使用复杂的代数过程来估计真实量子设备上的期望值,是将可观测量分解为我们知道其特征基的其他可观测量的组合。
简而言之,Estimator 将它不知道如何测量的任何可观测量分解为更简单、可测量的可观测量,称为 Pauli 算子。任何算子都可以表示为 个 Pauli 算子的组合。

其中
执行此分解后,估算器会为每个可观测量 Pk 即来自原始电路)导出一个新的电路 V k∣ψ〉,以有效地在计算基础中对泡利可观测量进行对角化并对其进行测量。我们可以轻松测量泡利可观测量,因为我们提前知道 Vk,而其他可观测量通常并非如此。
对于每个 Pk ,估算器会在量子设备上运行相应的电路多次,在计算基础中测量输出状态,并计算获得每个可能输出 j 的概率 Pkj 。然后,它寻找与每个输出 j 对应的 Pk 的特征值 λkj ,乘以 wk ,然后将所有结果相加在一起,以获得给定状态 ∣ψ 〉的可观测量的预期值。与sampler类似,估计器也仅仅作用于稀疏状态。所以可以表示如下:

如何计算期望值呢?
对于单量子比特状态

它的期望值
我们又知道,我们注意到
,
,由于X和Z不交换,所以我们需要辅助线路。
数学介绍

由于我们不知道目标可观测量H的特征值或特征态,所以我们需要考虑它的对角化(对角化话很重要,为什么?)假设H是厄密矩阵,存在一个幺正变换V使得,且
,V是一个酉变换。
这样期望值就可以被重写成

我们需要知道如何获得矩阵 V 和特征值 Λ。如果您已经有了特征值,那么就不需要使用量子计算机了,因为变分算法的目标是找到 H ^的这些特征值。
幸运的是,有一种方法可以解决这个问题:任何 矩阵都可以写成
个张量积的线性组合,这些张量积是n 个 Pauli 矩阵和恒等式的,它们都是厄米矩阵和幺正矩阵,并且已知 V 和 Λ 。这就是 Runtime 的 Estimator 在内部所做的,它将任何 Operator 对象分解为 SparsePauliOp 。
以下是可以使用的运算符:

损失函数
让我们考虑一个寻找系统基态的简单例子。我们的目标是最小化表示能量的可观测量的期望值(哈密顿量 H ^ )

我们使用估计器(estimator)来评估期望值,并将期望值传递给优化器使得它最小化,如果优化成功它将返回一组最佳参数,并且能得到解决,并计算观测期望
。
测量速度和测量正确的关系图

总之,通过用哈密顿量的概率分布来表征,基本态的概率,通过最小化能量,即哈密顿量来活得最好的结果。
错误缓解
错误缓解是指允许用户通过在执行时对设备噪声进行建模来减少电路错误的技术。通常,这会与模型训练相关的量子预处理开销和使用生成的模型缓解原始结果中错误的经典后处理开销相关。
Qiskit Runtime 原语的 resilience_level 选项指定针对错误构建的弹性量。更高的级别会产生更准确的结果,但由于量子采样开销,处理时间会更长。在将错误缓解应用于原始查询时,可以使用弹性级别来配置成本和准确性之间的权衡。
在实施任何错误缓解技术时,我们都希望结果中的偏差相对于之前未缓解的偏差有所减少。在某些情况下,偏差甚至可能会消失。然而,这是有代价的。随着我们减少估计量的偏差,统计变异性将增加(即方差),我们可以通过在采样过程中进一步增加每个电路的采样次数来解决这个问题。这将引入超出减少偏差所需的开销,因此默认情况下不执行此操作。我们可以通过在 options.executions.shots 中调整每个电路的镜头数量来轻松选择此行为,如下例所示。

零噪声外推
(ZNE) 的工作原理是
首先放大准备所需量子态的电路中的噪声,获得几个不同噪声水平的测量值,并使用这些测量值推断无噪声结果。
总体工作流程:
1.放大几个噪声因子的电路噪声
2.运行每个噪声放大电路
3.外推回零噪声极限

附录
1.零噪声外推(zne)的方法?
零噪声外推实验步骤:
-
放大噪声因子:
- 在量子电路中,引入额外的噪声。这通常通过修改量子电路的某些部分来实现,例如引入故意增加的量子门错误(例如 X、Y、Z 操作),或者使用额外的测量错误。
- 通过不同的放大因子,可以得到多个在不同噪声水平下的电路。
-
运行每个噪声放大电路:
- 在每个噪声级别下运行量子电路多次,通常会进行多次重复实验(shots)。每次运行的测量结果会受到噪声的影响,因此需要从多个实验中收集数据。
- 通常,噪声因子较大的电路结果会与真实的量子态有所偏差。
-
外推回零噪声极限:
- 对不同噪声水平下的测量结果进行分析。因为噪声与量子电路的行为有一定的关系(通常是线性或接近线性的关系),可以通过对不同噪声级别的结果进行拟合。
- 一般采用线性外推,即将噪声放大因子与测量结果之间的关系进行回归,推断出零噪声下的理论值。

相关文章:
量子变分算法---损失函数
引子 关于损失函数,我们知道在强化学习中,会有一个函数,用来表示模型每一次行为的分数,通过最大化得分,建立一个正反馈机制,若模型为最优则加分最多,若决策不佳则加很少分或者扣分。而在神经网络…...
计算机的性能评估
目录 计算机的性能评估 确定性能指标 考虑通讯因素 考虑机器过热因素 综合评估模型 动态评估与调整 计算机的性能评估 在分布式计算机系统中,综合考虑各种因素来评估性能是一个复杂但重要的问题。以下是一种可能的方法来综合考虑评估分布式计算机性能,动态地考虑实际情…...
大数据之国产数据库_OceanBase数据库002_在centos7.9上_安装部署OceanBase001_踩坑指南_亲测可用
部署前最好看一下,部署前的要求, 主要是系统 以及系统内核版本,还有比如清理一下缓存等,按照做一做. 这些都是前置条件. 清一下缓存. 也就是说官网给的前置的条件,都要根据说明去执行一遍,如果不执行可能后面安装会报错. 然后用户最好也去创建一个用户. 注意前置...
【ETCD】【源码阅读】深入解析 EtcdServer.run 函数
EtcdServer.run 是 etcd 的核心运行逻辑之一,负责管理 Raft 状态机的应用、事件调度以及集群的核心操作。本文将逐步从源码层面分析 run 函数的逻辑,帮助读者理解其内部机制和设计思想。 函数签名与关键职责 func (s *EtcdServer) run() {... }关键职责…...
springboot/ssm校内订餐系统Java代码web项目美食外卖点餐配送源码
springboot/ssm校内订餐系统Java代码web项目美食外卖点餐配送源码 基于springboot(可改ssm)vue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库ÿ…...
floodfill算法
目录 什么是floodfill算法 题目一——733. 图像渲染 - 力扣(LeetCode) 题目二——200. 岛屿数量 - 力扣(LeetCode) 题目三——695. 岛屿的最大面积 - 力扣(LeetCode) 题目四—— 130. 被围绕的区域 …...
【JAVA】六亮增加贴
James Gosling(詹姆斯.高斯林) Java 语言源于 1991 年 4 月,Sun 公司 James Gosling博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序…...
git提交时出现merge branch main of xxx
git提交时出现merge branch main of xxx 原因: 1、同事commit了一个修改A,push到remote 2、我把这个修改直接pull了下来(pull是fetchmerge的操作,自动合并到本地workspace) 3、同事因为后续的commit有冲突,…...
lstm 输入数据的形状是怎么样的,他有两种输入方式,通过参数 batch_first来设置 默认是False
lstm 输入数据的形状是怎么样的,他有两种输入方式,通过参数 batch_first来设置 默认是False 当batch_firstFalse时,LSTM输入的数据形状通常是一个三维张量,其维度顺序为[sequence_length, batch_size, input_size]。下面是对这些维…...
Apache Doris 数据类型
Apache Doris 已支持的数据类型列表如下: 数值类型 类型名存储空间(字节)描述BOOLEAN1布尔值,0 代表 false,1 代表 true。TINYINT1有符号整数,范围 [-128, 127]。SMALLINT2有符号整数,范围 …...
编译问题 fatal error: rpc/rpc.h: No such file or directory
在编译一些第三方软件的时候,会经常遇到一些文件识别不到的问题,这里整理下做个归总。 目前可能的原因有(排序分先后): 文件不存在;文件存在但路径识别不了;…… 这次以常见的编译lmbench测试…...
linux 安装composer
下载composer curl -sS https://getcomposer.org/installer | php下载后设置环境变量,直接通过命令composer -v mv composer.phar /usr/local/bin/composer查看版本看是否安装成功 composer -v...
数据库公共字段自动填充的三种实现方案
背景介绍 在实际项目开发中,我们经常需要处理一些公共字段的自动填充,比如: createTime (创建时间)updateTime (更新时间)createUser (创建人)updateUser (更新人) 这些字段在每个表中都存在,如果每次都手动设置会很麻烦。下面介绍三种常用的解决方案。 方案一:M…...
《MySQL 入门:数据库世界的第一扇门》
一、MySQL 简介 MySQL 是一种开源的关系型数据库管理系统,在数据库领域占据着重要地位。它以其高效查询、高安全性、低成本和扩展性著称,广泛应用于网站、企业级应用、数据分析等领域。 MySQL 具有诸多优点。首先,它成本低,作为…...
Qt之第三方库QCustomPlot使用(二)
Qt开发 系列文章 - qcustomplot(二) 目录 前言 一、Qt开源库 二、QCustomPlot 1.qcustomplot介绍 2.qcustomplot下载 3.qcustomplot移植 4.修改项目文件.pro 5.提升QWidget类 三、技巧讲解 1.拖动缩放功能 2.等待更新 总结 前言 Qt第三方…...
JAVA-类与继承
啥是继承? 在JAVA中, 继承就是子类继承父类的特征和行为,使得子类拥有父类的特征和行为,同时还可以拥有父类所没有的特征和行为。 举个例子通俗来讲,兔子和羊是食草动物类,狮子和豹子是食肉动物类&#x…...
SSH连接报错,Corrupted MAC on input 解决方法
问题描述 客户在windows CMD中SSH连接失败,报错: Corrupted MAC on input ssh_dispatch_run_fatal: Connection to x.x.x.x port 22: message authentication code incorrect值得注意的是,客户通过别的机器做SSH连接可以成功,使用putty, mo…...
【C++】8___继承
目录 一、基本语法 二、继承方式 三、对象模型 四、继承中的构造与析构的顺序 五、继承中同名成员处理 六、多继承语法 七、菱形继承 一、基本语法 好处:减少重复的代码 语法: class 子类 : 继承方式 父类 子类 也称为 派生类 父类…...
C# 中的异常处理:构建健壮和可靠的程序
C#中的异常处理(Exception Handling)。异常处理是编程中非常重要的一部分,它允许开发者优雅地处理程序运行时可能出现的错误或意外情况。通过有效的异常处理,可以使应用程序更加健壮、可靠,并提供更好的用户体验。以下…...
基于智能合约的医院凭证共享中心路径探析
一、引言 随着医疗行业的不断发展和信息技术的进步,基于智能合约的医疗凭证共享中心解决方案成为了可能。在当今数字化时代,医疗领域面临着诸多挑战,如医疗数据的分散存储、信息共享的不便捷以及凭证管理的复杂性等问题。而智能合约的出现&am…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
前端开发者常用网站
Can I use网站:一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use:Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站:MDN JavaScript权威网站:JavaScript | MDN...
