阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

机器学习 :IT 领域的下一件大事

  • 2021-01-28
  • 本文字数:3334 字

    阅读完需:约 11 分钟

机器学习 :IT领域的下一件大事

本文最初发表在 Medium 博客,经原作者 Deep Dutta 授权,InfoQ 中文站翻译并分享。


本文带你从零开始了解量子机器学习。


如今,随着量子信息科学的日益普及,量子机器学习将是信息科学与技术领域的下一个大事件。从根本上说,量子机器学习是量子计算和机器学习的结合。从零开始学习吧。

什么是量子计算机?

所以,量子计算基本上是在量子计算机上进行的计算,因为许多因素,如计算速度和计算空间,在经典计算机上是无法完成的。进行量子计算的计算机叫做量子计算机,它利用了量子的叠加、纠缠、干涉等性质。

量子计算机和经典计算机的区别是什么?



量子计算机与经典计算机的基本区别在于,经典计算机以比特为工作对象,而量子计算机以量子比特为工作对象。因此,如果我们想把数据存储在经典计算机中,它首先被转换成 0 和 1 的特定组合,然后把二进制数据存储在硬盘上。硬盘上有磁区,我们有磁极化,我们可以改变磁化强度,使之指向上或指向下。


而在量子比特中,可以用叠加的方法得到任意组合的二进制结果,我们可以把它看作是自旋。这样我们就可以把它想象成自旋向上或自旋向下,但我们也可以把它想象成是向上和向下的叠加,如果它足够孤立的话。

基本的量子特性是什么?

叠加、纠缠和干涉是量子信息科学中的三个基本属性。下面我们将简要地讨论这些特性。


叠加:我们已经讨论过叠加,它不仅仅是 0 或 1。它的状态是 0 和 1 的组合。通过一个例子,我们就能很容易地理解这一点。假设我有一个钢镚,它的正面和反面两个结果分别被分配为 0 和 1。无论什么时候,如果我们把这枚钢镚的一面朝下,问问别人这个钢镚是正面还是反面,我们都能很容易地回答这个钢镚是正面还是反面。它就像是经典计算机中的比特。现在,如果我们旋转钢镚并提问同样的问题,我们就不能回答这一问题,因为它可以是任意一面的组合。很可能就是量子比特。


纠缠:简单地说,假设我们有两个量子比特,如果我们把它们纠缠在一起,它们就会连接起来,然后它们就会永久地连接起来,然后它们的行为就像一个系统。这就是纠缠。并且,每一个成对或成组的粒子的量子状态不能独立于其他粒子的状态来描述,它们之间是以这种方式联系在一起的。举个例子就会更简单。假设我们有两个钢镚(把它们当成量子比特),它们纠缠在一起。然后,如果我们各自旋转两个钢镚,在停止之后,它们应该有相同的结果(正面或反面)。


干涉:想一想降噪耳机。它们是怎么工作的?它读取周围环境的波长,然后产生相反的波长来抵消。它们实际上制造了干涉。干涉有两种类型,相长干涉和相消干涉。在相长干涉中,两波的波峰(或波谷)同时抵达同一地点,称两波在该点同相,干涉波会产生最大的振幅;而在相消干涉中,两波之一的波峰与另一波的波谷同时抵达同一地点,称两波在该点反相,干涉波会产生最小的振幅。所以这个性质被用于控制量子态的。它放大了那些指向正确答案的信号,而消除了那些指向错误答案的信号。

什么是机器学习?

机器学习无非是在海量数据的帮助下训练机器(计算机),让计算机从我们的数据中找到一些模式,然后将这些模式应用到新的数据集上。你可以把它看作是婴儿如何学会说话。在不同的场合,他 / 她会多次听到我们周围环境中的大量词汇,并且每天学习何时说什么。


这是一个持续的过程,并且持续一生。同样,我们第一次遇到许多不同的单词,然后找出一种情况(计算机的模式),什么时候用到这个单词,以后遇到相同的情况就可能用到这个单词。因此,在这个例子中,我们正在使用这些数据来训练大脑。计算机就像一个婴儿,除了把 0 和 1 的组合作为输入外,它什么都不知道。因此,我们使用大量的数据训练计算机,然后使用另一组数据的模式完成某些任务。使用机器学习,我们可以解决许多不同类型的问题。在回归中,我们预测测试数据集的一些值;在分类中,我们可以在不同类别的数据之间进行分类。

什么是量子机器学习?

如今,通过对量子计算和机器学习的了解,我们很容易就能理解其背后的概念。量子机器学习无非是当我们在量子计算机上,或者在量子实例中代替经典计算机进行机器学习计算。下面我给大家举一个分类的基本问题,量子机器学习比经典机器学习更好。这里我将使用支持向量机算法(Support Vector Machine,SVM)。经典支持向量机与量子支持向量机的基本区别在于,经典支持向量机运行在经典实例上,而量子支持向量机运行在量子实例上。下面我们简单介绍一下支持向量机。


支持向量机:假设我们处理的是一个二元分类问题。然后,支持向量机算法的目标是在高维空间中找到一个超平面,超平面可以清晰地划分数据点。为了区分这两类数据点,需要选择多个可能的超平面。我们的目标是找到一个具有最大余量的平面,也就是两类数据点之间的最大距离。最大化边缘距离提供了一种增强方法,从而可以更有把握地对未来的数据点进行分类。


量子机器学习框架:到目前为止,量子机器学习有一些很好的框架。Tensorflow 有Tensorflow Quantum,IBM 有QisKit。除了这些之外,Pennylane还有一个很好的量子机器学习实现,并且所有的库都有很好的文档。如果你想知道更多的话,你可以通过它。在本文中,我将使用 qiskit 来实现。

量子机器学习超越经典机器学习?

接下来,我们会看到一个量子机器学习比传统机器学习实现有明显的优势。为了简单起见,我们将使用一个基本数据集,即ad-hoc数据集。在此,除了经典计算机所需要的所有依赖关系外,我们还需要通过导入 BasicAer 导入一个 Quantum Simulator,通过导入 ZZFeaturemap 导入一个特征图而不是量子特征图,通过导入 QuantumInstance 导入一个量子实例,最后是 QSVM。


我们把特征维度取 2,训练和测试大小分别取 20 和 10。这样做就可以进行基本的比较,另一个原因是我们目前还没有足够稳定的量子计算机。除此之外,我们把随机种子和散点数设为 10000。将 gap 设为 0.3,这只是一个高维空间的空隙,可以分隔我的数据。我们还会绘制数据并标记类。


加载和绘制数据集


因此数据集看起来是这样的,有两个类 A 和 B,分别标记为 0 和 1。所以我们可以清楚地看到,我们需要一个高维空间中的超平面来区分这两个类。



看一看数据集


为了在经典计算机上运行量子支持向量机,我们需要有一个量子模拟器作为后端,还有一个量子实例来在我的后端上运行。所以我们在 BasicAer 的后端有一个 Qasm-simulator,以及一个具有 reps2 的特征图,即重复电路(量子电路)的数目为 2。然后我们将在量子实例上运行量子支持向量机。



运行量子支持向量机


在运行量子支持向量机之后,我们就能在训练过程中检查我们的内核矩阵了。内核矩阵如下:


量子支持向量机内核矩阵


在量子支持向量机训练完成之后,就可以对测试数据集进行分类预测了。而你可以清楚地看到,量子支持向量机在这两个类别中的分类非常完美。



量子支持向量机预测


在掌握了量子支持向量机的正确率之后,我们就可以实现经典支持向量机,并比较量子支持向量机和支持向量机的正确率。在 qiskit 中也有同样的 scikit-learn SVM 的实现,我们将在本文使用该实现。内核矩阵如下:



支持向量机内核矩阵


而我们可以看到支持向量机对两个类的分类准确率都达到了 65%。所以,这里量子支持向量机的表现明显超过了机器学习。但是为什么呢?



为什么量子机器学习会超越经典机器学习?

既然我们在讨论支持向量机,我们就会用支持向量机的术语来解释它。对于分类来说,找到一个分割超平面往往只有在更高维度才有可能。这涉及到计算高维空间中数据点之间的距离。因此,如果维数很大,则计算发现距离的开销就非常大。所以,更简单的做法被称为“内核技巧”。内核是一个易于计算的函数,它获取我们的数据点并返回一个距离,而内核可以通过优化来最大化类间的距离。遗憾的是,有些内核指标很难用类计算。这就是量子计算机的用武之地。如果内核不能进行类优化,量子机器学习就显示出了很大的前景,因为它能够利用量子计算机的多维计算空间来寻找超平面。当数据从其输入维度映射到量子计算机的希尔伯特空间时,自然会把数据放到更高维空间。因此,量子支持向量机的性能优于支持向量机。


你可以在这里找到完整的代码实现:


https://github.com/itzzdeep/Quantum-Machine-Learning


作者介绍:


Deep Dutta,熟悉机器学习。


原文链接:


https://medium.com/swlh/quantum-machine-learning-the-next-big-thing-95bfc3b4f08f

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2021-01-28 10:211437
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 493.5 次阅读, 收获喜欢 1967 次。

关注

评论 2 条评论

发布
用户头像
没有看懂什么叫做量子纠缠,而且也没有看懂为什么量子计算机就比经典计算机要快
2021-01-28 12:56
回复
量子计算机,你要从量子比特开始理解
2021-01-29 20:04
回复
没有更多了
发现更多内容

花2个月备战字节,3轮面试拿下总包60W Offer!

Java架构师迁哥

在线HTML转JS/JSON工具

入门小站

工具

Linux之which命令

入门小站

Linux

国内市场主流音视频产品主要功能分析

anyRTC开发者

音视频 WebRTC 语音通话 实时通讯 视频通话

大专的我,闭关苦学56天,含泪拿下阿里offer,五轮面试,六个小时灵魂拷问

Java架构师迁哥

一文看懂 Context

Rayjun

Go 语言

08 | 指针系列(二):记住,指针变量也是变量(2)

Nydia

字节跳动实习生删库高操作

学神来啦

Linux 程序员 职场搞笑 linux运维

Linux常用命令-文件操作

正向成长

linux命令

Python协程 & 异步编程(asyncio) 入门介绍

行者AI

#python

将 FeignClient 的请求记录成 cURL 格式

哈德韦

微服务 前后端分离 log4j curl Spring boot Feign

全表遍历并处理数据有点慢?放开!我来!

林一

jpa Stram @QueryHints

从特斯拉召回事件,窥探OTA汽车进化真面目

脑极体

Vitalik Buterin眼中的区块链信任模型

CECBC

如何实现跨设备的双向连接? Labo涂鸦鸿蒙亲子版分布式开发技术分享

科技汇

AQS介绍和原理分析(下)

追风少年

并发编程 AQS

为什么AI需要大大大大大模型?

脑极体

为技术系统打“疫苗”,爱奇艺攻防演练平台的探索实践

爱奇艺技术产品团队

架构 安全攻防 开发 混沌工程

免费分享入门学习Java的优秀图书

Java入门到架构

Java 书籍 Java入门

模块1

cherrycheek

什么是数据仓库

奔向架构师

数据库 数据仓库 数据架构 话题讨论 7月日更

2022秋春招/提前批面经分享总结(字节、腾讯、阿里)

学无止境的阿奔

腾讯 面试 阿里 字节 校招

为什么AI需要大大大大大模型?

白洞计划

科创人|容联七陌CEO陈光:90后街舞少年的CEO修炼手册

科创人

人工智能 创业 程序员

Flink知识点总结

五分钟学大数据

flink 7月日更

新能源车的发展趋势

石云升

学习 新能源汽车 7月日更

网络攻防学习笔记 Day62

穿过生命散发芬芳

网络攻防 7月日更

利用 IComparable<T> 以及 IComparer<T> 定义顺序关系

喵叔

7月日更

iOS 15隐私升级及注意事项

阿里巴巴大淘宝技术

ios WWDC21

云原生负载均衡和网关应用实践

火山引擎开发者社区

云原生 后端

CVPR2021竞赛结果出炉,阿里淘系多媒体算法包揽3项国际冠军

阿里巴巴大淘宝技术

CVPR

机器学习 :IT领域的下一件大事_AI&大模型_Deep Dutta_InfoQ精选文章