使用量子计算机进行距离估计

我进行了一次小型基准测试,将算法的量子版本与其经典版本进行比较,发现与经典版本相比,量子计算花费的时间要多得多。

我不明白这是为什么,量子计算应该与经典计算相近或者更好才对。

数据集说明:1个测试数据点和3个训练数据点,维度为2。目标:我们的目标是将测试数据点分类到训练数据点的一个类别中。

...

输出:

classical time =>  **1.0967254638671875e-05**
quantum time =>  **0.2530648708343506**  // 花费更多时间
According to our distance algorithm, the new data point belongs to the Blue class.
Euclidean distances:  [0.520285324797846, 0.4905204028376393, 0.7014755294377704] 
According to euclidean distance calculations, the new data point belongs to the Blue class.

我不明白为什么量子计算会花费这么多时间。


回答:

我是一名物理学家和程序员,曾在Qiskit上进行了大量工作。我在机器学习方面的经验有限,但如果我没记错的话,这篇关于最近邻方法的论文第22页的图13正是你正在创建的电路。

你之所以会遇到显著的性能下降,是因为你使用经典算法来模拟量子硬件。这部分被注释掉了:

...

其中”ibmq_16_melbourne”指的是一台物理量子计算机,其ibm架构在这里有部分文档记录。这完全合理,因为IBM对大多数账户限制了访问。这就是为什么后面你有这样的代码:

...

“Aer”指的是在客户端计算机上本地运行的量子计算机模拟软件。据我所知,qiskit中还没有可以模拟特定物理量子计算机的东西。这可能会告诉你模拟/理论上的加速效果会是什么(尽管在经典计算机上模拟会花费更长时间)。

重要提示:Qiskit生态系统中定义的许多标准(如OpenQASM格式)旨在与硬件无关。你可以描述一个电路,其中任何两个量子比特可以在任何时间进行交互。但事实是,任何规模的物理量子计算机(10+量子比特)都不会有直接的任意量子比特到任意其他量子比特的连接。你必须以特定于该架构的方式(如墨尔本16量子比特架构)来交换事物。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注