量子感知机

        神经网络类似于人类大脑,是模拟生物神经网络进行信息处理的一种数学模型。它能解决分类、回归等问题,是机器学习的重要组成部分。量子神经网络是将量子理论与神经网络相结合而产生的一种新型计算模式。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.rhkb.cn/news/477014.html

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

相关文章

AI Large Language Model

AI 的 Large Language model LLM , 大语言模型: 是AI的模型,专门设计用来处理自然语言相关任务。它们通过深度学习和庞大的训练数据集,在理解和生成自然语言文本方面表现出色。常见的 LLM 包括 OpenAI 的 GPT 系列、Google 的 PaLM 和 Meta…

运维团队3D可视化智能机房管理方案

随着信息技术的飞速发展,机房作为信息技术基础设施的核心部分,其管理效率与可视化程度对运维团队的工作质量有着直接影响。本文将介绍一种结合3D可视化技术的机房管理方案,为运维团队提供一种新的视角和工具,以提升机房管理的效率…

CKA认证 | Day2 K8s内部监控与日志

第三章 Kubernetes监控与日志 1、查看集群资源状态 在 Kubernetes 集群中,查看集群资源状态和组件状态是非常重要的操作。以下是一些常用的命令和解释,帮助你更好地管理和监控 Kubernetes 集群。 1.1 查看master组件状态 Kubernetes 的 Master 组件包…

111 - Lecture 10

File I/O and GUI with JavaFX 文件输入/输出与JavaFX图形用户界面 一、Overview 1. File I/O (1) learning Java File I/O mechanism (2) writing into and reading from a file 使用文件I/O进行数据读取和…

分享一下arr的意义(c基础)(必看)(牢记)

arr 即数组名 一般指数组首元素地址 在两种情况下不是 1:sizeof(arr) arr指整个数组简单讲解一下strlen与sizeof(c基础)_strzeof在c语言中什么意思-CSDN博客 2:printf("%p",&…

大数据基于Spring Boot的化妆品推荐系统的设计与实现

摘 要 随着大数据时代的到来,人们对于个性化服务的需求越来越高。化妆品推荐系统作为一个认知智能模型段,在为消费者提供更好的购物体验方面发挥了重要作用。本研究基于大数据技术设计了一个高效准确的化妆品推荐系统。通过对海量数据的分析和处理&…

NUXT3学习日记四(路由中间件、导航守卫)

前言 在 Nuxt 3 中,中间件(Middleware)是用于在页面渲染之前或导航发生之前执行的函数。它们允许你在路由切换时执行逻辑,像是身份验证、重定向、权限控制、数据预加载等任务。中间件可以被全局使用,也可以只在特定页…

在Unity环境中读取Excel配置文件(入门)

使用Excel作为配置的优势 使用Excel作为配置文件有相对普通的文本文档/json等类型的配置文件有一个更好的优点,更易于编辑,更易读.譬如上面的例子,我可以制作一个人员名单,可以记录它们的姓名,年龄等信息,每一行就是一个对象,该表就是一个List. 环境准备 GitHub - ExcelDataR…

Maven maven项目构建的生命周期 Maven安装配置 IDEA 配置 Maven

一,Maven的概述 Maven的作用:专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化的项目结构提供了一套标准化的构建流程(编译,测试,打包,发布……)提…

VM虚拟机装MAC后无法联网,如何解决?

✨在vm虚拟机上,给虚拟机MacOS设置网络适配器。选择NAT模式用于共享主机的IP地址 ✨在MacOS设置中设置网络 以太网 使用DHCP ✨回到本地电脑上,打开 服务,找到VMware DHCP和VMware NAT,把这两个服务打开,专一般问题就…

day06(单片机高级)PCB设计

目录 PCB设计 PCB设计流程 元器件符号设计 原理图设计 元器件封装设计 元器件库使用 PCB设计 目的:学习从画原理图到PCB设计的整个流程 PCB设计流程 元器件符号设计 元器件符号:这是电子元器件的图形表示,用于在原理图中表示特定的元器件。例…

向量数据库FAISS之一:官方简单教程

1.安装 1.conda安装 # CPU-only version --> Linux (x86_64 and arm64), OSX (arm64 only), and Windows (x86_64) $ conda install -c pytorch faiss-cpu1.8.0# GPU(CPU) version --> Linux (x86_64 only) for CUDA 11.4 and 12.1 $ conda install -c pytorch -c nvid…

VMware Workstation 17.6.1

概述 目前 VMware Workstation Pro 发布了最新版 v17.6.1: 本月11号官宣:针对所有人免费提供,包括商业、教育和个人用户。 使用说明 软件安装 获取安装包后,双击默认安装即可: 一路单击下一步按钮: 等待…

java实现小程序接口返回Base64图片

文章目录 引言I java 接口返回Base64图片接口设计获取验证码图片-base64字符串获取验证码图片-二进制流arraybufferII 小程序端代码过期代码: 显示文件流图片(arraybuffer)知识扩展:微信小程序下载后端返回的文件流引言 场景: 图形验证码 背景: 接口返回arraybuffer的格式…

transformer.js(一):这个前端大模型运行框架的可运行环境、使用方式、代码示例以及适合与不适合的场景

随着大模型的广泛应用,越来越多的开发者希望在前端直接运行机器学习模型,从而减少对后端的依赖,并提升用户体验。Transformer.js 是一个专为前端环境设计的框架,它支持运行基于 Transformer 架构的深度学习模型,尤其是…

xiaolin coding 图解网络笔记——HTTP篇

1. HTTP 是什么? HTTP 是超文本传输协议(HyperText Transfer Protocol),一个用在计算机世界里专门在【两点】之间【传输】文字、图片、音频、视频等【超文本】数据的【约定和规范】。 2. HTTP 常见的状态码有哪些? …

23种设计模式-模板方法(Template Method)设计模式

文章目录 一.什么是模板方法模式?二.模板方法模式的特点三.模板方法模式的结构四.模板方法模式的应用场景五.模板方法模式的优缺点六.模板方法模式的C实现七.模板方法模式的JAVA实现八.代码解析九.总结 类图: 模板方法设计模式类图 一.什么是模板方法模…

力扣 LeetCode 235. 二叉搜索树的最近公共祖先(Day10:二叉树)

解题思路: 方法一:递归 递归法没有中的逻辑 class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {return recur(root, p, q);}public TreeNode recur(TreeNode root, TreeNode p, TreeNode q) {if (root…

Python数据结构day2

一、链表 1.1目的 解决顺序表存储数据有上限,并且插入和删除操作效率低的问题 1.2概念 链表:链式存储的线性表,使用随机物理内存存储逻辑上连续的数据 链表的组成:由一个个结点组成 结点:由数据域和链接域组成&a…

Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试

点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatis&#xff…