量子感知机

news2024/11/26 19:32:11

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

from math import pi
from qiskit.visualization import plot_histogram

circuit = 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.coloradmin.cn/o/2248008.html

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

相关文章

实现在两台宿主机下的docker container 中实现多机器通讯

基于我的实验背景 上位机:ubuntu 20.04 (docker humble 22.04) 下位机:ubuntu 22.04(docker noetic 20.04) 目标:实现在上位机中的docker container 容器的22.04环境去成功远程访问 非同网段的下位机的20.04的contai…

远程控制软件:探究云计算和人工智能的融合

在数字化时代,远程控制工具已成为我们工作与生活的重要部分。用户能够通过网络远程操作和管理另一台计算机,极大地提升了工作效率和便捷性。随着人工智能(AI)和云计算技术的飞速发展,远程控制工具也迎来了新的发展机遇…

ISUP协议视频平台EasyCVR萤石设备视频接入平台银行营业网点安全防范系统解决方案

在金融行业,银行营业厅的安全保卫工作至关重要,它不仅关系到客户资金的安全,也关系到整个银行的信誉和运营效率。随着科技的发展,传统的安全防护措施已经无法满足现代银行对于高效、智能化安全管理的需求。 EasyCVR视频汇聚平台以…

C#基础上机练习题

21.计算500-800区间内素数的个数cn,并按所求素数的值从大到小的顺序排列,再计算其间隔加、减之和,即第1个素数-第2个素数第3个素数-第4个素数第5个素数……的值sum。请编写函数实现程序的要求,把结果cn和sum输出。 22.在三位整数…

ubuntu24挂载硬盘记录

1、显示硬盘及所属分区情况。在终端窗口中输入如下命令: sudo fdisk -l 找到自己硬盘的分区 我的地址/dev/sda 2、显示硬盘及所属分区情况。在终端窗口中输入如下命令,格式化自己硬盘: sudo mkfs -t ext4 /dev/sda 3、在终端窗口中输入如下…

函数类型注释和Union联合类型注释

函数类型注释格式(调用时提示输入参数的类型): )def 函数名(形参名:类型,形参名:类型)->函数返回值类型: 函数体 Union联合类型注释(可注释多种类型混合的变量)格式: #先导入模块 from typing import…

【Python】分割秘籍!掌握split()方法,让你的字符串处理轻松无敌!

在Python开发中,字符串处理是最常见也是最基础的任务之一。而在众多字符串操作方法中,split()函数无疑是最为重要和常用的一个。无论你是Python新手,还是经验丰富的开发者,深入理解并熟练运用split()方法,都将大大提升…

DICOM图像深入解析:为何部分DR/CR图像默认显示为反色?

概述 在数字医学影像处理中,CR(Computed Radiography,计算机放射摄影)和DR(Digital Radiography,数字放射摄影)技术广泛应用于医疗影像获取与分析。然而,临床实践中常常遇到这样一个问题:部分CR/DR图像在默认打开时呈现为反色(即负片效果),需手动反色后才能正常阅片…

正则表达式灾难:重新认识“KISS原则”的意义

RSS Feed 文章标题整理 微积分在生活中的应用与思维启发 捕鹿到瞬时速度的趣味探索 微积分是一扇通往更广阔世界的门,从生活中学习思维的工具。 数据库才是最强架构 你还在被“复杂架构”误导吗? 把业务逻辑写入数据库,重新定义简单与效率。…

详解 【AVL树】

AVL树实现 1. AVL的概念AVL树的实现2.1 AVL树的结点结构2.2 AVL树的插入2.2.1 AVL树的插入的一个大概操作:2.2.2 AVL树的平衡因子更新2.2.3 平衡因子的停止条件2.2.4 再不考虑旋转的角度上实现AVL树的插入 2.3 旋转2.3.1 旋转的原则2.3.2 右单旋2.2.3 右单旋代码实现…

go语言range的高级用法-使用range来接收通道里面的数据

在 Go 语言中,可以使用 for ... range 循环来遍历通道(channel)。for ... range 循环会一直从通道中接收值,直到通道关闭并且所有值都被接收完毕。 使用 for ... range 遍历通道 示例代码 下面是一个使用 for ... range 遍历通…

计算机网络 | 7.网络安全

1.网络安全问题概述 &#xff08;1&#xff09;计算机网络面临的安全性威胁 <1>计算机网络面临的完全性威胁 计算机网络面临的两大类安全威胁&#xff1a;被动攻击和主动攻击 被动攻击 截获&#xff1a;从网络上窃听他人的通信内容。主动攻击 篡改&#xff1a;故意篡改…

Unity——使用Unity制作BIM全景视频、图片

一、说明&#xff1a; 最近在研究使用threejs加载全景视频视图BIM视图的联动对比&#xff0c;需要制作BIM模型场景下测试用的全景视频demo。 二、生成方法 全景视频的可以使用全景相机拍摄&#xff0c;也可以使用三维引擎渲染生成。 BIM建模引擎Revit中可以使用渲染插件生成…

echarts4r 教程2:Advanced

❝ 写在前面 本文为 R 语言 echarts4r 包的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。软件可能随时更新&#xff0c;建议配合官方文档一起阅读。推荐先按顺序阅读往期内容&#xff1a; 1. echarts4r 教程1&#xff1a…

JSON 性能测试 - WastJson 性能也很快

WAST 是一个高性能 Java 工具集库包&#xff0c;包括 JSON、YAML、CSV、HttpClient、JDBC 和 EL 引擎. WastJson 无论是小中大文本各种数据类型等性能都没有明显的短板&#xff0c;除了推广外可以说是六边形战士&#xff0c;更多测试参考 wast-jmh-test: wast性能测试 (并非所…

DICOM图像处理:深入解析DICOM彩色图像中的Planar配置及其对像素数据解析处理的实现

引言 在DICOM(Digital Imaging and Communications in Medicine)标准中,彩色图像的存储与显示涉及多个关键属性,其中**Planar Configuration(平面配置)**属性(标签 (0028,0006))尤为重要。当遇到彩色DICOM图像在浏览时被错误地分割为9张小图,而实际应显示为一…

django authentication 登录注册

文章目录 前言一、django配置二、后端实现1.新建app2.编写view3.配置路由 三、前端编写1、index.html2、register.html3、 login.html 总结 前言 之前&#xff0c;写了django制作简易登录系统&#xff0c;这次利用django内置的authentication功能实现注册、登录 提示&#xff…

数字图像处理(4):FPGA中的定点数、浮点数

&#xff08;1&#xff09;定点数&#xff1a;小数点固定在数据的某一位置的数&#xff0c;可以分为定点整数和定点小数和普通定点数。定点数广泛应用于数字图像处理&#xff08;图像滤波、图像缩放&#xff09;和数字信号处理&#xff08;如FFT、定点卷积&#xff09;中。 定…

uniapp接入高德地图

下面代码兼容安卓APP和H5 高德地图官网&#xff1a;我的应用 | 高德控制台 &#xff0c;绑定服务选择《Web端(JS API)》 /utils/map.js 需要设置你自己的key和安全密钥 export function myAMap() {return new Promise(function(resolve, reject) {if (typeof window.onLoadM…

三种蓝牙架构实现方案

一、蓝牙架构方案 1、hostcontroller双芯片标准架构 手机里面包含很多SoC或者模块&#xff0c;每颗SoC或者模块都有自己独有的功能&#xff0c;比如手机应用跑在AP芯片上&#xff0c;显示屏&#xff0c;3G/4G通信&#xff0c;WiFi/蓝牙等都有自己专门的SoC或者模块&#xff0…