量子变分算法---损失函数
引子
关于损失函数,我们知道在强化学习中,会有一个函数,用来表示模型每一次行为的分数,通过最大化得分,建立一个正反馈机制,若模型为最优则加分最多,若决策不佳则加很少分或者扣分。而在神经网络中,通过正向传播可以求得模型的权重和偏执,用于最后的预测或者分类,真实值和预测值之间的差值。而反向传播,通过求权重和偏置的梯度,来调整参数,使得梯度不断下降,让模型的性能更优。
所有物理系统,无论是经典系统还是量子系统,都可以存在于不同的状态中。例如,道路上的汽车可以具有表征其状态的特定质量、位置、速度或加速度。同样,量子系统也可以具有不同的配置或状态,但它们在处理测量和状态演变的方式上与经典系统不同。这导致了量子力学独有的叠加和纠缠等独特属性。就像我们可以用速度或加速度等物理属性来描述汽车的状态一样,我们也可以使用可观测量来描述量子系统的状态,可观测量是数学对象。
在量子力学中,状态由归一化复列向量或 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…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
