量子感知机

        神经网络类似于人类大脑,是模拟生物神经网络进行信息处理的一种数学模型。它能解决分类、回归等问题,是机器学习的重要组成部分。量子神经网络是将量子理论与神经网络相结合而产生的一种新型计算模式。1995年美国路易斯安那州立大学KAK教授首次提出了量子神经计算的概念,开创了该领域的先河。随后又相继 出现了多种量子神经计算模型,包括量子感知机、量子神经网络、量子受限玻尔兹曼机等。近年来,量子生成对抗网络、量子卷积神经网络等量子机器学习模型。

        量子感知机算法,这与经典感知机的方法类似,在量子感知机中,规定输入样本x_{i}和权重系数w的元素只能为+-1。经典感知机中通过激活函数的输出判断输入样本是否被正确分类。而在量子算法中通过阈值\Theta将式写为

                                               y_{i}=\left\{\begin{matrix} 0, & |\sum_{j=0}^{M-1}\omega _{j}x_{ji} |\geq \Theta\\ 1, & |\sum_{j=0}^{M-1}\omega _{j}x_{ji} |\leq \Theta\\ \end{matrix}\right.                                             (1)

 

1.|\sum_{j=0}^{M-1}\omega _{j}x_{ji} |的计算方法 

        |\sum_{j=0}^{M-1}\omega _{j}x_{ji} |=|x_{i}^{T}\omega |,即x_{i}\omega的内积的模。在量子计算中,样本信息x_{i}和权重系数\omega存储在量子态中,归一化之后,x_{i}\omega的量子态形式为

                                                          |x_{i}\rangle =\frac{1}{\sqrt{M}}\sum_{j=0}^{M-1}x_{ji} |j\rangle                                               (2)

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​                          |w\rangle =\frac{1}{\sqrt{M}}\sum_{j=0}^{M-1}w_{j} |j\rangle                                                (3)

这里系数取\frac{1}{\sqrt{M}}是因为量子算法中x_{i}\omega内积的模为\frac{1}{M}|\sum_{j=0}^{M-1}\omega _{j}x_{ji} |

        假设存在酉算子U_{x_{i}}U_{w}能够完成如下变换:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​          ​​​​​​​       U_{x_{i}}|0\rangle^{\bigotimes }=\frac{1}{\sqrt{M}}\sum_{j=0}^{M-1}x_{ji} |j\rangle=|\Psi _{1i}\rangle                                (4)

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​           ​​​​​​​       U_{x_{i}}|1\rangle^{\bigotimes }=\frac{1}{\sqrt{M}}\sum_{j=0}^{M-1}w_{i} |j\rangle=|\Psi _{2}\rangle                                 (5)

式子中:m=logM

      则有 U^{-1}_{x_{i}}|\Psi _{2}\rangle=|1\rangle^{\bigotimes M },将|1\rangle^{\bigotimes M }写成十进制的形式有,U^{-1}_{x_{i}}|\Psi _{2}\rangle=|M-1\rangle

首先制备初态|0\rangle^{\bigotimes (m+1) },其中前m个量子比特用于存储输入样本向量x_{i}和权重\omega,最后一位是辅助量子比特,用于存储最终结果。

        第一步:使用酉算子U_{x_{i}}作用于前m个量子比特|0\rangle^{\bigotimes m },得到量子态

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​         ​​​​​​​               |\Psi _{1i}\rangle=\frac{1}{\sqrt{M}}\sum_{j=0}^{M-1}x_{ji} |j\rangle                                               (6)

        第二步:使用U_{w}^{-1}作用于|\Psi _{1i}\rangle得到量子态

                                                       |\Psi _{3\rangle=}U^{-1}_{x_{i}}|\Psi _{1i}\rangle=\sum_{j=0}^{M-1}c_{j} |j\rangle                                       (7)

式子中:\sum_{j=0}^{M-1}c_{j}^{2}=1

则                              \langle \Psi _{1i}|\Psi _{2}\rangle=\langle \Psi _{1i}|U_{w}U_{w}^{-1}|\Psi _{2}\rangle=\langle \Psi _{3}|M-1\rangle=c_{M-1}                  (8)              

#量子感知机
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister, transpile
from qiskit_aer import Aer
import numpy as np
from qiskit.visualization import plot_histogramfrom math import pi
from qiskit.visualization import plot_histogramcircuit = QuantumCircuit(5,5)
#两控制位的受控z门
def ccz():circuit=QuantumCircuit(2)circuit.cz(0,1)circuit= circuit.to_gate()circuit.name = "ccz"c_U = circuit.control()return c_U
#两控制位的受控z门(与前一个的控制位不同)
def ccz1():circuit=QuantumCircuit(3)circuit.cz(0,2)circuit= circuit.to_gate()circuit.name = "ccz1"c_U = circuit.control()return c_U
#三控制位的受控z门
def cccz():circuit=QuantumCircuit(3)circuit.append(ccz(),[0]+[m+1 for m in range(2)])circuit= circuit.to_gate()circuit.name = "cccz"c_U = circuit.control()return c_U
#三控制位的受控x门
def cccx():circuit=QuantumCircuit(3)circuit.ccx(0,1,2)circuit= circuit.to_gate()circuit.name = "cccx"c_U = circuit.control()return c_U
#四控制位的受控x门
def ccccx():circuit=QuantumCircuit(4)circuit.append(cccx(),[0]+[m+1 for m in range(3)])circuit= circuit.to_gate()circuit.name = "ccccx"c_U = circuit.control()return c_U
#U_i
for i in range(4):circuit.h(i)
for i in range(3):circuit.z(i)
circuit.cz(1,2)
circuit.cz(0,2)
circuit.cz(0,1)
circuit.append(ccz(),[0]+[m+1 for m in range(2)])
#U_w
circuit.z(1)
circuit.z(2)
circuit.cz(1,3)
circuit.cz(0,2)
circuit.cz(0,1)
circuit.append(ccz(),[1]+[m+2 for m in range(2)])
circuit.append(ccz1(),[0]+[m+1 for m in range(3)])
circuit.append(cccz(),[0]+[m+1 for m in range(3)])
for i in range(4):circuit.h(i)
for i in range(4):circuit.x(i)
#将内积提取到辅助量子比特上
circuit.append(ccccx(),[0]+[m+1 for m in range(4)])
circuit.barrier()
circuit.measure(4,4)
circuit.draw(output='mpl', plot_barriers=False)

# Set up the backend
backend = Aer.get_backend('qasm_simulator')
# Transpile the circuit for the simulator
transpiled_circuit = transpile(circuit, backend)
# Run the transpiled circuit
job = backend.run(transpiled_circuit, shots=100000)
sim_result = job.result()
# Get and plot the results
measurement_result = sim_result.get_counts(circuit)
plot_histogram(measurement_result)

 

 1的概率为0.1376,开根号为0.370944,小于0.5,属于C_{2}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/61680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql in查询大数据量业务无法避免情境下优化

在 MySQL 中,IN 查询操作广泛用于从数据库中检索符合条件的多条记录,但当涉及到大数据量的 IN 查询时,性能可能会显著下降。特别是当 IN 子句中的元素数量非常大时,MySQL 需要对每个元素进行匹配,这会导致查询变得非常…

大语言模型---ReLU函数的计算过程及其函数介绍

文章目录 1. 概要2. ReLU定义 1. 概要 **ReLU 作用:**主要用于为神经网络引入非线性能力,作用是将输入中的整数保留原值,负数置为 0。 从而在层与层之间引入非线性,使神经网络能够拟合复杂的非线性关系。 **ReLU使用场景&#xf…

SPSS统计学:连续均匀分布

概念 连续均匀分布是指在某个连续区间上,随机变量取值的概率密度函数是常数的分布。假设连续均匀分布的区间为[a,b],其中a是区间的下界,b是区间的上界。 方差的推导 连续均匀分布的方差计算中出现数字12,是因为在推导过程中&…

时间请求参数、响应

(7)时间请求参数 1.默认格式转换 控制器 RequestMapping("/commonDate") ResponseBody public String commonDate(Date date){System.out.println("默认格式时间参数 date > "date);return "{module : commonDate}"; }…

JAVA八股与代码实践----接口与抽象类的区别和用法

接口和抽象类的区别 关键字abstractinterface 实例化不能直接实例化不能直接实例化 方法可以有抽象和具体方法只能有抽象方法(Java 8 支持默认方法) 变量可以有普通变量只能有常量 (public static final) 继承单继承多继承 构造函数可以定义不允许…

python学习记录18

1 函数的定义 python中的函数指使用某个定义好的名字指代一段完整的代码,在使用名字时可以直接调用整个代码,这个名字叫做函数名。利用函数可以达到编写一次即可多次调用的操作,从而减少代码量。 函数分为内置函数与自定义函数。内置函数例…

设计模式:4、命令模式(双重委托)

目录 0、定义 1、命令模式包括四种角色 2、命令模式的UML类图 3、代码示例 0、定义 将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 1、命令模式包括四种角色 接…

WPF动画

在 WPF(Windows Presentation Foundation)中,主要有两种类型的动画:属性动画(Property Animation)和关键帧动画(Key - Frame Animation)。属性动画用于简单地从一个起始值平滑地过渡…

VSCode汉化教程【简洁易懂】

我们安装完成后默认是英文界面。 找到插件选项卡,搜索“Chinese”,找到简体(更具你的需要)(Microsoft提供)Install。 安装完成后选择Change Language and Restart。

海洋通信船舶组网工业4G路由器应用

船舶是浩瀚海洋中探索与贸易的载体,更是船员们生活与工作的家园。为了在广阔的水域中搭建起稳定、高效的网络桥梁,工业4G路由器以卓越的通信组网能力,为船舶组网提供网络支持。 工业4G路由器以其强大的信号发射能力,确保船舶内部…

深入浅出分布式缓存:原理与应用

文章目录 概述缓存分片算法1. Hash算法2. 一致性Hash算法3. 应用场景Redis集群方案1. Redis 集群方案原理2. Redis 集群方案的优势3. Java 代码示例:Redis 集群数据定位Redis 集群中的节点通信机制:Gossip 协议Redis 集群的节点通信:Gossip 协议Redis 集群的节点通信流程Red…

麒麟部署一套NFS服务器,用于创建网络文件系统

一、服务端共享目录 在本例中,kyserver01(172.16.200.10)作为客户端,创建一个目录/testdir并挂载共享目录;kyserver02(172.16.200.11)作为服务端,创建一个共享目录/test,设置为读写权限,要求客户端使用root登录时映射为nobody用户、非root登录时保持不变。 服务端启…

美国AWS EC2 ubuntu 使用密码登陆

1。使用页面登录ec2 2.切换root用户 sudo -i 3.为root用户或者其它用户配置密码 passwd user passwd root 4.修改下面文件的配置vi /etc/ssh/sshd_config PermitRootLogin和PasswordAuthentication 修改为yes 第五步:进入/etc/ssh/sshd_config.d目录,…

PHP 高并发解决方案

PHP作为一种脚本语言,在处理高并发请求时可能面临一些挑战。但通过合理的设计和优化,可以有效提升PHP应用程序的性能和并发处理的能力。 一、缓存 页面缓存:将生成的页面缓存起来,减少对数据库的查询,提高响应速度。…

圣诞节秘诀

🕰️你想在2024年圣诞节脱颖而出吗?利用我们的数据洞察,发现今年最受欢迎的礼物!无论是在亚马逊、速卖通、Shopify还是直销平台上,我们的排行榜都将帮助您找到最畅销和最受欢迎的产品。立即优化您的库存,以…

Unreal从入门到精通之如何绘制用于VR的3DUI交互的手柄射线

文章目录 前言实现方式MenuLaser实现步骤1.Laser和Cursor2.移植函数3.启动逻辑4.检测射线和UI的碰撞5.激活手柄射线6.更新手柄射线位置7.隐藏手柄射线8.添加手柄的Trigger监听完整节点如下:效果图前言 之前我写过一篇文章《Unreal5从入门到精通之如何在VR中使用3DUI》,其中讲…

JDK1.8中JVM堆内存等参数配置

在JDK 8中,JVM内存模型主要包括堆内存(Heap Memory)、元空间(Metaspace)以及直接内存(Direct Memory)。以下是一些常用的JVM内存参数配置建议,特别是在JDK 8环境下: 1. …

2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略 完整参考论文(2)

5.2 问题一模型的建立与求解 5.2.1 分析发展情况 为了更好地理解数据的变化趋势,利用matlab通过六个子图对宠物行业中的关键变量进行了可视化展示。 图 1. 宠物数量变化展示了 猫数量、狗数量 和 总宠物数量 在 2019-2023 年间的变化趋势。结果显示:猫的数量呈逐年上升的趋…

堆外内存泄露排查经历

优质博文:IT-BLOG-CN 一、问题描述 淘宝后台应用从今年某个时间开始docker oom的量突然变多,确定为堆外内存泄露。 后面继续按照上一篇对外内存分析方法的进行排查(jemalloc、pmap、mallocpmap/mapsNMTjstackgdb),但都没有定位到问题。至于…

数据检索是什么意思?数据检索包括哪几个

不少用户会提出这样的疑问,数据检索是什么意思?数据检索即把数据库中存储的数据根据用户的需求提取出来,选择适合的数据库检索方式需要根据具体的需求和场景来进行判断。数据检索的结果会生成一个数据表,既可以放回数据库&#xf…