李电匠:量子计算机计算的概念和术语、提供

注册

简介:AlphaGo与李世石交手,最终以4:1击败李世石。毫无疑问,计算机已经打败了人类。当你知道量子计算机是为“优化”问题而生时,你就知道结果将是不可避免的。但我们也看到,一些媒体知之甚少,过分夸大量子计算机的能力,片面解读其计算优势。看完这两篇 D-Wave 文章,你就会明白:什么是量子计算机,它是如何实现和工作的,它长什么样子,它解决了什么类型的问题等等…… D-Wave 系统公司是全球第一家量产量子计算机的公司,堪称量子计算机的鼻祖。本文为科普文章的翻译“

本教程旨在介绍量子计算中的概念和术语,提供量子计算机的一般概念,以及您可能想要获得一台的原因。这里的材料是用非常高级的概念编写的,目的是让有和没有工程背景的读者更容易理解。如果您有物理、数学、编程方面的背景,理解本文中的概念会有所帮助,但这不是必须的。在阅读本入门书时,您将了解到:

1:量子物理学如何为我们提供了一种新的计算方式

2:量子计算与经典计算的异同

3:如何利用量子计算的基本单元解决疑难问题

4:为什么量子计算同样适用于人工智能、机器自学习应用以及量子计算机可以用作人工智能的协处理器

第 1 节

1.1 – 传统计算机原理

为了理解量子计算,首先了解常规计算机的原理是有帮助的。我们使用现代数字计算机及其功能来执行各种软件应用程序,例如,我们的台式机、笔记本电脑和智能手机可以运行电子表格、流式传输视频,让我们能够与世界另一端的人聊天,让我们沉浸其中在栩栩如生的 3D 场景中。但在这些数字计算机的核心,它们都有一个共同点:它们都执行简单的算术运算,它们的计算能力取决于它们可以做这些事情的最大计算速度。计算机可以完美地执行数十亿条指令。这些指令执行得如此之快,以至于计算机可以让我们运行非常复杂的高级软件。一般来说,

图 1. 传统计算机中的数据流

尽管传统计算机在很多领域都很好地解决了很多问题,但在某些领域用传统计算机进行计算似乎非常困难。例如,这些领域:图像识别、自然语言(允许计算机理解我们人类所说的而不是编程语言),以及在计算机能够处理之前必须学习的某些特殊任务。有的甚至在过去的几十年里对某个领域投入了大量的精力和研究,但是我们在这个领域的进展还是很慢,要使用大量的超级计算机来进行计算,耗费大量的精力和空间。

我们可能会问:没有其他方法可以设计计算机系统吗?如果我们可以从摸不着头脑开始做一些完全不同的事情,我们就可以在传统计算机难以解决的领域大幅提升计算性能。那么我们如何才能重建一种新型计算机呢?

1.2 – 一种新的计算方式

与将 0 和 1 的比特流转换为其他比特流的传统计算操作相比,量子计算是一种非常不同的计算方式。在量子计算中,一切都发生了变化,无论是从我们经常了解信息位的物理层还是从操作它们的设备。我们制造这种设备的方法不同,需要新材料、新设计规则和新处理器架构。最终,我们编写这些系统的方法也完全不同。本文将揭露这些问题的根源,即如何用新的信息表示“量子比特”(Q bit)代替传统的二进制0和1信息表示,从而改变我们对计算本身的思考方式。

1.3 – 电灯开关游戏

在了解量子计算之前,我们需要深入了解为什么传统数字计算机无法解决某些问题。让我们考虑这样一个数学问题,我们称之为电灯开关游戏。

电灯开关游戏涉及尝试在一堆开关中找到最佳设置。这是问题的一个例子:

图 2. 电灯开关游戏

让我们假设每个电灯开关都有一个与之关联的数字,对您来说是可选的(您不想更改它)。我们称这个数字为“偏差值”。您所要做的就是选择每个电灯开关是打开还是关闭。在我们的游戏中,open 表示 1,close 表示 -1。然后我们将所有开关的偏差值乘以相应的开/关值。这将产生一个结果。这个游戏的初衷是将所有的开关设置为开和关,以获得最小值。数学上,我们定义每个开关的偏差值为hi,开关设置称为Si

图 3. 玩电灯开关游戏,将每个开关的偏差乘以它们的设定值(您必须选择)并将它们加在一起。

根据哪个开关打开和哪个开关关闭,我们会得到不同的分数。你可以试试这个游戏。希望你很容易找到,因为这有一个简单的成功规则:

图 4. 请回答为此开关设置的特殊“猜测”

我们发现,如果我们将所有正偏置值的开关都设置为关闭,将负偏置值的开关都打开,然后相加,我们得到最小值。容易吧?我可以给你无数个不同偏差值的开关,你只需要根据这个规则打开和关闭这些开关。

好吧,让我们把这个问题变得更难一点。请想象有许多带有附加规则的“对”开关,这里一个是“对”而不是开关。我们添加一个新的偏差值 J,将两个开关的设置相乘并乘以 J,并将此规则应用于每对开关之后的结果与之前的结果之和。同样,我们需要做的是如何选择开关状态打开或关闭以适应这个新规则。

图 5. 添加额外的规则使切换游戏的难度取决于切换“对”的数量

但是现在很难决定哪个开关应该打开或关闭,因为邻居可以影响它。即使简化为上图只有两个开关的情况,仍然不能使用之前的规则,即根据偏差值将它们设置为负数。(你试试看)面对一个所有交换机都有邻居的复杂网络,找出正确的组合来一次让你最小化变得非常令人沮丧。

图 6. 带有附加规则的电灯开关游戏,形成一个互动电灯开关网络

1.4 – 那么量子力学如何帮助我们呢?

如果您尝试所有组合,则对于每对开关,您有四种可能性:

[开,开],[开,关],[关定义新运算怎么做,开],[关,关]。

但是随着你添加越来越多的开关,这种可能性的数量随着开关的数量呈指数增长:

图片[1]-李电匠:量子计算机计算的概念和术语、提供-老王博客

图 7. 电灯开关游戏的指数问题

你应该明白为什么这个游戏不再有趣了。事实上,即使对于最强大的超级计算机来说,这个问题也很困难。将这么多可能的配置存储在内存中并将它们输入常规处理器以计算我们的猜测是否正确需要很长时间。假设有 500 台交换机,宇宙没有足够的时间检查所有配置。

量子机制可以很好地帮助我们解决这个问题。量子计算机的基本计算能力来自于你可以将信息位放入状态叠加的想法。你可以想象一个量子比特还没有决定它会处于哪个状态的情况。有些人喜欢将这种叠加视为“同时具有两种状态”。或者你可以把量子比特的状态想成是选择+1还是-1。这意味着使用量子计算机,我们的电灯开关将能够同时打开和关闭。

图8:一个量子机制的信息位(Q bits)可以存在于一个已知的叠加态,它不会选择变成+1还是-1(换句话说,你可以再把它想成+1-< @1)

现在看开关组的数量和之前一样,但是现在在量子计算机的内存中(注意还没有添加偏置值)

图 9,一个叠加的量子比特网,答案就在这里!

由于所有的电灯开关同时打开和关闭,我们知道正确的答案(每个开关的正确打开和关闭)就在那里,它现在只是对我们隐藏。但没问题,因为量子机制会为我们找到它。D-Wave 量子计算机允许您采用一种这样的“量子表示”并提取获得最小值的开关的开关配置。以下是它的工作原理:

图 10. 计算机以叠加位开始计算定义新运算怎么做,最后生成传统的正常位流,并沿此方式找到答案

你如上所述在量子叠加状态下启动系统,然后慢慢调整量子计算机以关闭量子叠加效应。同时,你慢慢增加所有的偏差值(H,J必须先调整)。执行此操作时,所有开关都会慢慢跳出叠加状态,选择一个状态,无论是开还是关。当您将它们相加时,内部使用量子机制工作的计算机有助于将开关设置为最小值的正确状态。尽管 N 个开关可能会产生可能配置的 N 次方的 2,但它也可以在最后找到最小值,从而赢得电灯开关游戏。因此,我们可以知道,量子计算机允许我们减少我们研究过的表达式:

[ E(s) = sum_i h_i s_i + J_{ij}s_i s_j ]

但对于传统计算机来说,这是非常困难(或不可能)的

第 2 节

2.1 这是一个数学公式,谁在乎?

我们永远不会制造一台机器来玩一些奇怪的、扭曲的电灯开关游戏。在我们的日常生活中,我们遇到过很多应用程序的核心问题,其本质就是找到一对变量(如开关)的最佳组合。下面列出了其中一些。甚至科学探索本身也是一个优化问题。(您正在尝试找到元素的最佳“配置”,以便科学公式与现实世界的观察结果一致)

图 11。这些示例正在寻找可以由量子计算机非常有效地处理的良好“开关设置”。

2.2 能源计划

要了解这些问题如何映射到寻找开关设置,让我们看看量子计算机是如何编程的。回到之前的图1,在通过逻辑程序的应用软件将比特流转换成其他比特流的过程中,我们现在将其替换为不确定是“-1”还是“1”的东西,所以计算方法是从 最基本的方式不同,如图12所示。在这种情况下,将一组Q位初始化为叠加状态,此时“能量程序”(而不是逻辑程序)开始作用于 Q 位组。Q 位在计算开始时处于未决定状态,并且在计算结束时所有 Q 位都做出了选择,无论选择是 -1 还是 1。那么什么是能源计划?其实就是H和J的值,我们前面提到的偏移设置。在电灯开关游戏中,我们说 H 和 J 是给定的。我们现在知道 H 和 J 实际上来自您要解决的问题,并且因问题而异。

图 12. 量子计算机最基本的操作是支持能量程序(一组 H 和 J 数)

并让计算机查找开关设置(+1 和 –<@1)

制定一个能源程序,或者为 H 和 J 构建一系列值,可以用来解决你真正关心的实际问题,是非常困难和耗时的。这基本上与通过将机器代码发送到微处理器来在计算机内部进行编程相同!幸运的是,有一种更好的方法可以通过量子编译器编写量子计算机程序。有关此过程的详细说明,请参阅“使用 D-Wave 进行编程”白皮书。

2.3 量子计算机将学习

教计算机了解现实世界问题的原因并从经验中学习的方法称为机器学习。这是人工智能的一个分支。我们编写的大部分代码都是完全静态的,也就是说,给定新数据,它会不断重复同样的计算并犯同样的错误。使用机器学习,我们可以设计能够自我纠正的程序。这样的程序还可以学习新的方法来处理机器以前从未见过的小块数据。

在 D-Wave 硬件上运行良好的程序是需要在不确定性下学习和做出决策的程序。举个例子,想象一下要求计算机根据一组之前展示过的相似对象的图片来识别一个对象。对于出于严格逻辑原因而设计的传统计算机体系结构,这项任务非常困难。如果为系统提供了一个新图,则很难概括地描述该图。例如“这看起来像一个苹果”。D-Wave 的处理器旨在支持具有高级认知和决策能力的应用程序

我们如何使用量子计算机来实现学习?例如,假设我们希望系统识别对象。对此进行能量编程也是非常困难的,即使使用量子编译器也是如此,因为我们不知道如何详细掌握系统必须知道的对象的本质。幸运的是,我们有另一种方法来解决这个问题。因为这里有一种模式可以让量子计算机根据新输入的数据来调整自己的能量程序。这使机器可以更好地猜测物体是什么。甚至从未见过这台实例计算机。以下部分概述了此过程。

2.4 可以自行编程的计算机

为了让系统改变它的能量程序,你首先要向系统展示许多你想让它知道的概念的例子。图 13 中的例子,这里是为了让计算机学习不同种类水果的区别。为了实现这一点,我们展示了许多不同的苹果、杨梅、甜瓜和水果的图片(或者其他任何东西,用数字表示这些图片),以让系统了解差异。同时,每次我们告诉系统“正确”答案时,我们都会告诉它每次量子计算完成后的“开关设置”(标志)是什么。系统必须找到一个能源程序(我们一开始不知道,这里是一个问号),它可以让系统在看到显示的图片后立即找到相关的标志。如果多次出错,

图 13. 通过允许量子芯片重写能量程序本身来教育量子芯片。系统会调整能量程序,直到每次都正确为止。

这就是我们常说的训练或学习阶段。

起初,系统随机选择一个能量程序(记住,一堆 h 和 j 值)。一开始他可能选择了错误的标志,但没关系,我们继续向它展示样本,并让它每次调整能量程序。然后他会越来越多地选择正确的标志(开关设置)。当系统基于之前的数据100%准确时,我们保留最后一个能量程序,并使用这个能量程序作为我们的“学习”程序来识别一个新的从未见过的样本(图14)。在机器学习术语中,这称为强制学习算法。我们不断的绘制图形并告诉正确答案的目的是帮助它学习。当然系统支持其他类型的学习算法,甚至有些可以用于识别数据. 不可用时使用。

图 14. 系统在训练过程中找到一个好的能量程序后,它可以识别出从未见过的样本来帮助我们解决现实世界的问题。这就是所谓的“测试”阶段。

2.5 不确定性是一个特征

另一个有趣的点是,量子计算机是概率性的,这意味着它会给出很多答案,其中一些你正在寻找,而另一些则不是。恐怕一开始听到这个不是一件好事。就像你每次问电脑一样的问题,电脑每次都给你不同的答案,这应该是bug!然而,对于一台量子计算机,返回不同的答案意味着我们掌握了有关计算机置信度的重要信息。以上面的水果为例。假设你问它 100 次,计算机回答 Apple 100 次,那么计算机是 100% 有信心的。但如果它回答 Apple 50 次,Yangmei 50 次,这意味着计算机不确定你要向它展示什么。但是如果你给电脑看苹果和杨梅的混合物 你会得到这个结果 那么这是绝对正确的。当您想要设计一个可以做出复杂决策并从现实生活中学习的系统时,这种不确定性非常有用。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论