当前位置: 首页 > news >正文

量子变分算法---损失函数

  引子

        关于损失函数,我们知道在强化学习中,会有一个函数,用来表示模型每一次行为的分数,通过最大化得分,建立一个正反馈机制,若模型为最优则加分最多,若决策不佳则加很少分或者扣分。而在神经网络中,通过正向传播可以求得模型的权重和偏执,用于最后的预测或者分类,真实值和预测值之间的差值。而反向传播,通过求权重和偏置的梯度,来调整参数,使得梯度不断下降,让模型的性能更优。

        所有物理系统,无论是经典系统还是量子系统,都可以存在于不同的状态中。例如,道路上的汽车可以具有表征其状态的特定质量、位置、速度或加速度。同样,量子系统也可以具有不同的配置或状态,但它们在处理测量和状态演变的方式上与经典系统不同。这导致了量子力学独有的叠加和纠缠等独特属性。就像我们可以用速度或加速度等物理属性来描述汽车的状态一样,我们也可以使用可观测量来描述量子系统的状态,可观测量是数学对象。

        在量子力学中,状态由归一化复列向量或 kets∣ψ〉表示,可观测量是作用于 kets 的厄米线性算子 (\hat H=\hat H^{+})。可观测量的特征向量 |λ〉 称为特征态。测量可观测量的其中一个特征态 (λ〉
将为我们提供相应的特征值 λ作为读数。

         在qiskit中提供了两种方法,来测量量子系统,一个是采样器(Sampler)和估计器(Estimator),采样器用于计算给定状态∣ψ〉下获取每一个基础状态的概率值,而估计器获取一个可以观测的\hat H和∣ψ〉

sampler原语,为什么它仅仅适合稀疏概率分布呢?

稀疏概率分布是指,量子态∣ψ〉仅涉及到少数几个计算基态|k>的概率,而大多数基态的状态为零或者非常小。例如

而下列是密集的

 而如果概率是密集的,那么测量基态的数量为2的幂次,而稀疏分布的只需要少数几次测量。

Sampler在处理稀疏分布时更加高效,因此它只是需要少数几次测量来捕捉少数几个基态的概率。

Estimator通过计算可观测量\hat H对于一个量子态∣ψ〉,它的观测概率可以被表达为p_{\lambda }=|\langle\lambda |\Psi \rangle

而它对每个状态的概率和,可以表示为:                                   

             ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​    \langle \hat H \rangle_{\Psi }: =\sum_{\lambda }p_{\lambda}=\langle\Psi | \hat H | \Psi \rangle

但是,计算可观测量的期望值并不总是可行的,因为我们通常不知道它的特征基。Qiskit Runtime 的 Estimator 使用复杂的代数过程来估计真实量子设备上的期望值,是将可观测量分解为我们知道其特征基的其他可观测量的组合。

简而言之,Estimator 将它不知道如何测量的任何可观测量分解为更简单、可测量的可观测量,称为 Pauli 算子。任何算子都可以表示为 4^{n}个 Pauli 算子的组合。

 其中(\sigma_{0} ,\sigma_{1} ,\sigma _{2},\sigma_{3} ):=(I,X,Y,Z)

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

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​     

如何计算期望值呢?

对于单量子比特状态

它的期望值 \langle \hat H \rangle_{+}: =\langle+| \hat H | + \rangle=2

我们又知道\langle \hat H \rangle_{+}=2\langle X \rangle_{+}-\langle Z \rangle_{+},我们注意到\langle+| X | + \rangle=1,\langle+| Z | + \rangle=1,由于X和Z不交换,所以我们需要辅助线路。

数学介绍

由于我们不知道目标可观测量H的特征值或特征态,所以我们需要考虑它的对角化(对角化话很重要,为什么?)假设H是厄密矩阵,存在一个幺正变换V使得,\hat H=V^{+}\Lambda V\langle j | \Lambda |k\rangle=0,V是一个酉变换。

这样期望值就可以被重写成

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

损失函数

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

我们使用估计器(estimator)来评估期望值,并将期望值传递给优化器使得它最小化,如果优化成功它将返回一组最佳参数,并且能得到解决|\Psi (\Theta ^{*}))\rangle,并计算观测期望C(\hat \Theta^{*} )

 测量速度和测量正确的关系图

总之,通过用哈密顿量的概率分布来表征,基本态的概率,通过最小化能量,即哈密顿量来活得最好的结果。

错误缓解

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

零噪声外推 

(ZNE) 的工作原理是

首先放大准备所需量子态的电路中的噪声,获得几个不同噪声水平的测量值,并使用这些测量值推断无噪声结果。
总体工作流程:

1.放大几个噪声因子的电路噪声

2.运行每个噪声放大电路

3.外推回零噪声极限 

 

附录

1.零噪声外推(zne)的方法?

零噪声外推实验步骤:

  1. 放大噪声因子

    • 在量子电路中,引入额外的噪声。这通常通过修改量子电路的某些部分来实现,例如引入故意增加的量子门错误(例如 X、Y、Z 操作),或者使用额外的测量错误。
    • 通过不同的放大因子,可以得到多个在不同噪声水平下的电路。
  2. 运行每个噪声放大电路

    • 在每个噪声级别下运行量子电路多次,通常会进行多次重复实验(shots)。每次运行的测量结果会受到噪声的影响,因此需要从多个实验中收集数据。
    • 通常,噪声因子较大的电路结果会与真实的量子态有所偏差。
  3. 外推回零噪声极限

    • 对不同噪声水平下的测量结果进行分析。因为噪声与量子电路的行为有一定的关系(通常是线性或接近线性的关系),可以通过对不同噪声级别的结果进行拟合。
    • 一般采用线性外推,即将噪声放大因子与测量结果之间的关系进行回归,推断出零噪声下的理论值。

 

相关文章:

量子变分算法---损失函数

引子 关于损失函数,我们知道在强化学习中,会有一个函数,用来表示模型每一次行为的分数,通过最大化得分,建立一个正反馈机制,若模型为最优则加分最多,若决策不佳则加很少分或者扣分。而在神经网络…...

计算机的性能评估

目录 计算机的性能评估 确定性能指标 考虑通讯因素 考虑机器过热因素 综合评估模型 动态评估与调整 计算机的性能评估 在分布式计算机系统中,综合考虑各种因素来评估性能是一个复杂但重要的问题。以下是一种可能的方法来综合考虑评估分布式计算机性能,动态地考虑实际情…...

大数据之国产数据库_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 数据库&#xff…...

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有冲突&#xff0c…...

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…...

干货!万字长文解析 Agent 框架中的上下文管理策略

0x01. 背景 (1)什么叫上下文工程(Context Engineering)? “上下文工程”简单来说,就是在一些LLM的约束下(如上下文窗口大小、注意力长度的限制),优化上下文token的效用…...

3D NAND闪存技术:从量产到普及的挑战与演进

1. 项目概述:当3D NAND遇上量产与市场的十字路口2013年底,当三星宣布开始大规模生产128Gb的3D NAND闪存时,整个存储行业都为之震动。这感觉就像大家还在努力把平房(2D NAND)盖得更密、更小,突然有人宣布要盖…...

深度学习模型冷启动优化:从原理到生产级预热实践

1. 项目概述与核心价值最近在部署一些涉及内容审核或图像识别的AI应用时,我遇到了一个非常典型且棘手的问题:模型冷启动。简单来说,就是当你第一次加载一个训练好的深度学习模型(尤其是像NSFW检测这类需要处理复杂视觉特征的模型&…...

从单Agent协作到多Agent并行:收藏这份AI编程协作新范式指南,小白也能轻松掌握大模型

随着AI编程占比提升,传统单Agent协作模式已无法满足高效需求。本文探讨了AI编程协作范式的转移,提出人应与多个Agent并行协作,并通过关键节点Review和验收整合结果。作者设计开发了Mexus工具,该工具提供WebUI交互终端,…...

ARM开发板触摸屏移植全记录:Qt应用依赖的tslib-1.4交叉编译与配置详解

ARM开发板触摸屏移植实战:从tslib交叉编译到Qt应用集成 触摸屏作为嵌入式设备最自然的人机交互方式,其性能直接影响用户体验。但在实际项目中,工程师常会遇到触摸坐标漂移、点击抖动、响应延迟等问题。本文将深入探讨如何通过tslib-1.4的定制…...

别再只当复位工具!深入STM32H7的IWDG窗口模式,实现更精准的故障检测

解锁STM32H7 IWDG窗口模式:从复位工具到智能监控策略的蜕变 在嵌入式系统开发中,看门狗定时器(WDT)常被视为最后的防线——当系统跑飞时触发复位。但STM32H7系列的独立看门狗(IWDG)提供的窗口模式,彻底颠覆了这一传统认知。想象一下&#xff…...

5G神经接收器技术:站点特定微调与性能优化

1. 5G NR神经接收器技术背景解析在5G及未来通信系统中,物理层信号处理面临三大核心挑战:复杂的信道环境、多样化的硬件损伤以及动态变化的移动场景。传统基于固定模型的接收算法(如MMSE)在设计时往往依赖简化的信道假设&#xff0…...

零代码RAG构建与向量数据库操作:从文档到知识的自动化之路

如果你接触过大语言模型(LLM),大概率听过RAG(Retrieval-Augmented Generation,检索增强生成)这个词。简单来说,RAG就是让AI在回答问题之前,先去翻一翻你提供的资料库,找到…...

逆向工程助手:自动化二进制分析框架的设计与实践

1. 项目概述:逆向工程助手的诞生与定位在软件安全、漏洞研究、恶意代码分析乃至软件兼容性开发的领域里,逆向工程(Reverse Engineering)一直是一项核心且极具挑战性的技能。它要求从业者不仅要有扎实的编程功底,更需要…...

ChatGPTBox:浏览器AI侧边栏插件部署与效率提升实战指南

1. 项目概述与核心价值最近在折腾浏览器插件,发现一个叫 ChatGPTBox 的开源项目挺有意思。简单来说,它不是一个独立的聊天机器人,而是一个功能强大的浏览器侧边栏工具。你可以把它理解为一个“瑞士军刀”,把各种主流AI模型&#x…...