在我们之前的博客中这里我们已经解释了量子至上实验。如果你不熟悉量子门、QISKIT 和不同的算法、它的应用和资源,我建议你先阅读一下IBM-Q和齐斯基特,了解详细信息。本博客适用于所有希望快速了解如何使用IBM问答以及 Qiskit 库,用于在您的计算机上运行 SVM 的量子版本 (QSVM)。我将在接下来的部分中讨论 Qiskit 库及其用途。
什么是 QSVM?
量子支持向量机 (QSVM) 是支持向量机 (SVM) 算法的量子版本,它使用量子定律进行计算。QSVM 利用量子技术和量子软件的强大功能来提高在具有 CPU 或 GPU 的传统机器上运行的传统 SVM 算法的性能。
量子机器学习分为两个主要步骤 – 第一步,通过量子计算机的计算将经典数据转换为量子数据;第二步,计算机将量子结果转换回经典格式。
我们来看看实现 QSVM 所涉及的不同组件?
核技巧——用于使用 SVM 将数 土耳其数据 据集分类为各种类别,SVM 转换数据以找到可能输出之间的最佳边界。在原始空间中难以通过简单超平面分离的数据可以通过在称为特征空间的空间中应用非线性变换函数(称为特征图)来分离。计算集合中每对数据点的内积以评估它们之间的相似性,进而将其用于对数据点在这个新的特征空间中(内积的值越高,它们彼此越相似),并且这个内积的集合称为核。
Qiskit 库 – Qiskit 是一个开源量子计 当前业务和未来计划 算框架由 IBM 开发。Qiskit 可用于设计和操作量子实验,然后在本地计算机上的模拟器或 IBM Q Experience 上的真实量子计算机上运行它们。它主要使用 Python 编 巴西号码列表 程语言,但也支持 Swift 和 JavaScript。
Qiskit 由四个基础元素组成(来源):
Qiskit Terra:用于编写电路级别的量子程序
Qiskit Aer:通过模拟器、仿真器和调试器加速开发
Qiskit Ignis:解决噪音和错误
Qiskit Aqua:用于构建算法和应用程序
安装 Qiskit 并访问 IBM Q
在这里我们解释如何编写量子计算机。
安装 Qiskit,研究最新算法点击这里
IBM Q 帐户可访问最先进的基于云的 IBM Q 量子系统和模拟器。它通过在 Qiskit 和 Quantum 计算机/设备之间建立稳定的连接,帮助我们开发、运行和监控作业/程序。请按照以下步骤操作设置您的 Qiskit 环境以将作业发送到 IBM Q 系统。
Qiskit 框架由三个高级步骤组成:
构建:设计一个量子电路来解决手头的问题。
执行:在不同的后端运行实验
分析:计算汇总统计数据并可视化实验结果。
开始了解 Qiskit 的基础知识。这里是文档和视频教程
现在让我们看看量子算法实际上是如何工作的?
首先利用量子电路产生叠加态,利用叠加对信息进行编码和操控后,对叠加态进行干涉,得到最终结果。
QSVM 如何工作?
实施包括三个基本步骤:
包括缩放、规范化和主成分分析的预处理
核矩阵的生成
对 QSVM 分类的新数据点集(测试数据)的核进行估计。
在 QSVM 分类阶段,使用经典 SVM 来生成分离超平面,而不是使用量子电路,这里量子计算机被使用了两次。首先,为所有训练数据对估计核,第二次为新数据(测试数据)估计核。支持向量机的最小二乘重构用于将 SVM 的二次规划问题转变为求解线性方程组的问题:
线性方程组
来源
在哪里,
K 是 m×m 核矩阵,其元素可以通过以下公式计算
m×m核矩阵
Y 是用户定义的值,用于控制训练误差和 SVM 目标之间的权衡,y 是存储训练数据标签的向量,因此等式中唯一未知的参数是一个向量
矢量方程
在量子计算机上计算出核矩阵后,我们可以像训练经典 SVM 一样训练量子 SVM。一旦确定了超平面的参数,新的数据点 x 就可以分类为
量子支持向量机
在哪里,
向量 x ,其中 i = 1,…,m 是训练数据,
αi 是参数向量 α 的第 i 维
第 i 维参数
量子算法的参数
量子算法特有的几个重要参数是:
feature_dimension:特征数量,
深度:重复电路的数量,
entangler_map:描述量子比特的连接性[源,目标],
纠缠:生成量子比特连通性{‘完全’-将每个量子比特与所有后续量子比特纠缠在一起,’线性’-将每个量子比特与下一个量子比特纠缠在一起}
feature_map(FeatureMap):特征图模块,用于将数据变换到特征空间,
数据点:预测数据集
quantum_instance (QuantumInstance):具有所有执行设置的量子后端,
shots:每次循环的重复次数,
seed_simulator:模拟器的随机种子,
seed_transpiler:电路映射器的随机种子
QSVM:将运行分类算法(二分类或多分类)的量子 SVM 方法
乳腺癌数据集上的 QSVM
我已经在 Python 库 Scikit learn 中的乳腺癌数据集上应用了 SVM,既可以在经典计算机(传统 SVM)中使用,也可以在其他计算机中使用 IBM 云中的量子计算机 (QSVM) 模拟器及其量子机器学习库 Qiskit 进行学习。该数据集收集了 31 个表征肿瘤的参数信息,其中包括:平均半径、平均周长、平均纹理等,总共 569 条记录。
以下是在最不繁忙的 IBM Q 后端上选择算法的代码
IBM Q 后端代码
进行了四次模拟。第一次是具有所有特征的经典 SVM,第二次是具有 2 个主成分的分类 SVM,第三次是模拟器上的具有 2 个主成分的量子 SVM (QSVM),最后一次是 IBM Q 上的 QSVM,同样具有 2 个主成分。这样做是为了能够相互比较结果,当然还有量子计算和量子算法备受关注的运行时间。
一旦准备就绪,我将在本系列的下一篇文章中讨论所有这些结果!希望您喜欢我的作品并开始在 QSVM 中寻求新的挑战。
您觉得这篇文章有用吗?您是否计划在任何业务问题中使用 QSVM?如果是,请与我们分享您计划如何进行。