计算思维前沿:SXSW报告

新利app怎么样Stephen Wolfram在2015年SXSW演讲

上周,我在德克萨斯州奥斯汀的2015年SXSW互动大会上发表了演讲。以下是经过编辑的文字记录:

最高产的一年

嗯,你好。我讲过计算三个在SXSW。我不得不说,当我第一次同意做这个演讲的时候,我担心我没有任何新的东西可以讲。但实际上,有很大一部分是新的。事实上,这可能是我一生中最有成效的一年。我很高兴今天能在这里和你们谈谈我最近发现的一些事情。

这将是一段相当疯狂的旅程,有点像是在非常概念性和非常实践性之间跳跃——从千年的哲学问题,到现在就可以使用的云技术。

基本上,在过去的40年里,我一直在建造一个思想和技术的大塔,或多或少地交替工作基础科学技术.并利用基础科学弄清楚了更多的技术,以及技术弄清楚了更多的科学。

我很高兴地说,很多人都使用了我所建立的科学和技术。但我认为我们现在的规模比以前大得多。事实上,在过去几天的SXSW大会上与人们交谈时,我真的很兴奋,因为大概有3/4的人与我交谈过,他们可以通过使用我们创建的新东西,真正地改变——或者至少显著地升级——他们正在做的事情。

Wolfram语言

好的。现在我来告诉你们怎么做。这一切都始于Wolfram语言.实际上,我第一的就在两年前的SXSW大会上

Wolfram语言是一个巨大而雄心勃勃的东西,它实际上既是技术的核心部分,也是一堆技术的仓库和实现基本思想.这也是你现在可以开始使用的东西,网上免费.实际上,它几乎可以在任何地方运行——在云、桌面、服务器、超级计算机、嵌入式处理器、私有云等等。

Wolfram语言

从知识分子的观点来看目标Wolfram语言的基本目的是表达尽可能多的计算——提供一种非常广泛的方法来封装计算和知识,并尽可能多地自动化它们可以做什么。

我花了大约三十年的时间来构建现在的Wolfram语言。而在Mathematica在美国,很多很多人都使用过我们现在所拥有的先兆。

但是今天的Wolfram语言有所不同。它是更广泛的东西,我认为它可以是很多计算的方式,在任何地方,在各种系统和设备等等。

让我们看看它是怎么运作的。让我们从和语言进行一个简短的对话开始,我们在26年前发明了一个我们称之为笔记本的东西。让我们做一些琐碎的事情。

2 + 2

好。让我们试试不同的方法。你可能知道它是圓周率日周六:3/14/15。因为我们是历史上使用圆周率最多的公司,我们有一点庆祝活动关于π的一天。让我们来看看Wolfram语言计算π对我们来说;假设有一千个位置:

N(π,1000)

在那里。或者让我们更有雄心;让我们把它计算到一百万位。要花一点时间……

N(π,10 ^ 6)

但不是很多。这就是结果。它会一直延续下去。看看这个滚动拇指有多小。

对于不同的东西,我们可以拿起维基百科文章关于PI:

WikipediaData(“π”)
从其中造出文字云。

wordcloud [deletestopwords [%]]

不用说,在这篇关于π的文章中,π本身就很突出。

或者让我们得到一个图像。这是我:

CurrentImage []

所以让我们来继续做点一个形象 - 例如,让我们边缘检测它。总是指我们最近得到的东西,所以…

Edgedetect [%]

这是图像的边缘检测。或者假设我们有一个形态图根据这个图像,现在我们要做一个网络:

MorphologicalGraph (%)

哦,这很吸引人;好的。或者让我们在这里自动创建一个小的用户界面来控制我们的急躁程度,所以我在这里:

操作[EdgeDetect[CurrentImage[], r], {r, 1,30}]

或者我们来看看这张图中不同程度的急躁情绪:

表[EdgeDetect[CurrentImage[], r], {r, 1,30}]

现在,举个例子,我们可以把所有这些图像叠加起来,做成一个三维图像

Image3D[%, boxratio -> 1]

面向真实世界的语言

Wolfram语言有无数种不同的算法内置的。它也有现实世界知识和数据.例如,我可以这样说"行星”:

(行星)

所以它从自然语言中理解了我们所说的。让我们来看看行星列表:

EntityList (%)

还有一个行星列表。让我们来看看他们的照片:

EntityValue[%,“图像”)

让我们找到他们的群体:

EntityValue(% %,“质量”)

现在让我们根据质量来制作行星大小的信息图:

ImageCollage [% -> %%] % %]" title="ImageCollage[% -> %%]" title="ImageCollage[% -> %%]" width="493" height="294" class="alignnone size-full wp-image-9513">

只用一行代码就能做出这样的东西,我觉得这太神奇了。

让我们继续。这是在哪里互联网认为我的电脑现在是:

在这里

我们可以说,“何时”日落在这一天,在这个位置上?”

日落[]

多长时间从现在

现在

好的,我们来地图比如说,,10英里左右奥斯汀的中心:

地理(GeoDisk[奥斯汀(=),(= 10英里)))

或者,假设是一个10的幂序列:

表[geography [GeoDisk[(=Austin), Quantity[10^n,

或者我们离开地球,做同样的事情。我们要求阿波罗11号着陆点,让我们看看月球上围绕它一千英里的地方:

地理[{Red,GeoDisk[第一个[=阿波罗11号着陆点],(=1000英里)]]


我们可以做各种各样的事情。让我们在另一个领域试试。让我们来看看梵高的作品列表:

(=梵高艺术品)
让我们取前20个,让我们得到它们的图像:

EntityValue [Take [%,20],“图像”]

现在,举个例子,我们可以拿着这些,然后说,“这是主要的颜色在这些图片中使用的?”

DominantColors / @ %

让我们把这些颜色绘制成色品图在3 d:

ChromaticityPlot3D (%)

Wolfram语言的哲学

我认为仅仅用少量的Wolfram语言代码就可以完成的事情是相当令人惊讶的。

这是一个全新的编程情况。我的意思是,这是一个戏剧性的变化。传统的想法一直从一个相当小的编程语言开始,然后写出相当大的程序来完成你想要的东西。Wolfram语言中的想法是使语言本身在尽可能大的觉得中 - 尽可能多地建立,并且实际上可以尽可能多地自动化编程。

这些是Wolfram语言处理的事情类型:

Wolfram语言非常广泛

到目前为止,我们已经有了成千上万的内置函数,成千上万的模型,方法和算法等等,以及成千上万个不同领域的精心整理的数据。

我差不多花了30年的时间来保持设计所有这些都是干净一致的。

这真的很有趣,结果也很令人满意,因为现在我们有了一些非常强大的东西——我们也可以用它来加速发展语言本身。

可推特程序

下面是我们最近做的一些事情,希望能从中得到一些乐趣。叫做推特节目

Wolfram Tweet-a-Program

这里的想法是,你以tweet的形式发送整个程序,然后得到运行它的结果。如果你在我们的展位上驻足,你可以买一件这个可调带款计划的画廊”. 这里有一个在线集合对于一些推特程序——记住,这些程序中的每一个都不到140个字符长,并且做各种不同类型的事情。

Wolfram twitter -a- program在线收藏

所以为了庆祝推特程序,我们还有一套"代码卡片,每个都有一个推特程序:

我们的代码卡片的一部分,每一张都有一个不同的Wolfram语言tweetable程序

儿童计算思维

你知道,如果你看看这些推特程序,它们出奇地容易理解。你可以通过阅读单词来了解它们是如何工作的。

你可能会想,好吧,孩子们也能做到。事实上,这是真的。事实上,我认为这对编程来说是一个重要的时刻,同样的事情发生了,就像过去发生的视频编辑等事情一样:我们已经自动化了足够多的专业人员在学习编程方面真的没有孩子们的任何优势。

所以我现在非常热衷于的一件事就是用我们的语言来教更多的人计算思维。

很快我们就会有一个叫做Wolfram编程实验室的东西,你可以在网上免费使用它。这是一种对Wolfram语言的浸入式语言学习,在那里你可以看到许多Wolfram语言程序的小工作示例,你可以修改和运行。

Wolfram编程实验室
我认为它对教育来说是非常强大的。因为它不仅仅是教授编程:它会立即引入许多真实世界的东西,与孩子们正在学习的其他东西相结合,真正地教授计算思维方法。

我们来看几个例子。今天是圆周率日;让我们看看Pi项链:

Wolfram编程实验室笔记本:Pi数字项链

基本的想法是,这里有一小段代码,你可以运行它,看看它做什么,修改它。你可以说to show the details,它会告诉你发生了什么。等等。

也许我们可以试试另一个例子。让我们做一些更真实的事情,从一栋摩天大楼里,你能从哪里看到?

Wolfram编程实验室笔记本:摩天大楼的观点

这是帝国大厦的可视区域。我们可以继续改变很多参数,看看会发生什么,或者你可以往下看挑战,它要求你尝试做其他类型的相关计算。

Wolfram编程实验室笔记本:摩天大楼的观点:挑战

我希望很多人,不管是孩子还是其他人,都能从我们的探索中得到乐趣。我认为这对教育很有好处:一种数学的精确思维和写作之类的创造力的混合。顺便说一下,在编程实验室,我们可以观察人们正在尝试编写的程序,并在里面做各种各样的教育分析。

我可能会提到,对于不懂英语的人,我们将很快能够用许多其他语言注释任何Wolfram语言程序。

Wolfram语言代码的翻译注释

我认为,当更多的人学会使用Wolfram语言进行计算思考时,将会发生一些令人惊奇的事情。

自然语言作为输入

当然,许多数百万人已经每天都使用我们的技术。他们只是将纯粹的自然语言键入Wolfram | Alpha,或者向Siri说出被发送到Wolfram的Siri。

我想一个重大的突破就是能够使用我们非常精确的自然语言理解使用两个新型算法和我们的巨大的知识库

并利用我们所有的知识和计算能力,为人们询问的事情生成自动报告。无论是关于人口统计学的问题:

Wolfram|Alpha output for“austin vs SF的生活成本”

或关于飞机 - 这表明飞机目前开销互联网认为我的电脑在哪里:

Wolfram|Alpha output for“planes overhead”

比如基因组序列。它会去查那个特定的随机碱基对序列出现在人类基因组的某个地方:

Wolfram |用于“AAGCTAGCTAGCTCA”的Alpha输出

这些是我们可以在Wolfram|Alpha中做的一些事情。我们已经讲过了数千个不同的领域知识,不断地增加新的东西。

Wolfram | Alpha的例子

顺便说一下,现在有很多大型组织都有Wolfram的内部版本Alpha包括他们自己的数据以及我们的公共数据。这真的很好,因为所有类型的人都可以用自然语言进行“自动”查询,而无需去找他们的it部门。

你知道,能够使用自然语言也是Wolfram语言的核心。因为当你想提及现实世界中的某件事,比如城市例如,您无法从文档中找到它的名称。你只需要输入自然语言,然后得到精确的解释。

这正是你现在能做的。例如,我们可以输入如下内容:

只要输入“=纽约”

并得到:

Wolfram语言将其正确地解释为

它可以被理解为“纽约市”这个实体。我们可以问它的总体情况,它会告诉我们结果:

纽约市(城市)…(“人口”)

伟大的想法:符号编程

要做这个要花很多Wolfram语言工作——不仅仅是数千万行算法代码和tb级的数据,还有一些伟大的想法。

也许最大的想法是符号编程的想法,它从一开始就成为了Wolfram语言的核心。

基本要点如下:在Wolfram语言中,一切都是象征性的。它不需要有任何特定的值;它可以只是一件事。

如果我刚键入“x在大多数计算机语言中,他们会说:“救命,我不知道是什么。x是”。但是Wolfram语言只是说,好吧,xx; 这是象征性的”。

x

关键是,基本上任何东西都可以这样表示。如果我输入“Jupiter”,它只是一个象征性的东西:

木星(地球)…

或者,举个例子,如果我要在这里放一个图像,它只是一个象征性的东西:

木星的图片

我可以有一个滑块,一个用户界面元素-再说一次,这只是一个象征性的东西:

滑块[]

现在当你计算的时候,你可以用任何东西做任何事情。你可以用它来做数学x

因素(x ^ 10 - 1)

或者是木星的图像:

因素((木星)^ 10 - 1)

或与滑块:

因素(滑块[]^ 10 - 1)

之类的。

我花了很长时间,才真正理解符号编程的强大。每隔几年,我对它的理解就会多一点。

语言部署

很久以前我们就知道如何表示了项目象征性地,文档,接口,这样它们就会立刻变成可以计算的东西。最近的一个重大突破是理解如何不仅象征性地代表运营和内容,还包括它们的部署。

好吧,我得先解释一件事。我今天给你们展示的大部分都是用桌面版Wolfram语言,虽然它将从我们的知识库中获取信息等等。我们付出了很大的努力,还建了一个完整版的云语言

让我使用这个接口在那里,仅仅通过一个网络浏览器。可以说,我也会有同样的经历。我们可以通过网络浏览器在云中做所有这些事情。

Wolfram编程云:123^456

Wolfram编程云:Graphics3D[Sphere[]]

Wolfram编程云:Table[Rotate[

你知道,在我的40年的写作软件中,我不相信有没有像网络和云一样疯狂的发展环境。通过丛林来让我们带来大量的努力来获得我们想要的功能。我们现在很多。当然,对于那些刚刚的人来说,这是一个伟大的新闻使用我们已经建立的他们不需要自己穿越丛林,因为我们已经做到了。

你可以直接在云中使用Wolfram语言。这真的很有用。但是你也可以通过云来部署语言中的其他东西。

比如,cat图片在互联网上很流行,所以让我们部署一个cat应用程序。让我们定义一个表单,该表单有一个字段,该字段要求输入猫的品种,然后显示该品种的图片。然后,让我们将其部署到云上。

CloudDeploy[FormFunction[{ "CatBreed"},放大[#cat["Image"], 2] &, "PNG"]]" title="CloudDeploy[FormFunction[{"cat" -> "CatBreed"}, Magnify[#cat["Image"], 2] &, "PNG"]]" width="589" height="45" class="alignnone size-full wp-image-9527">

现在我们得到一个带有URL的云对象。我们只需要去那里,拿到一张表格。这种形式有一个“智能域”,它可以理解自然语言——在这个特殊情况下,是描述猫的品种的语言。现在我们可以输入" siamese "它会返回并运行那个代码。有一张猫的图片。

输入一个猫品种的名字,得到这个品种的照片

我们可以让web应用更复杂一些。让我们在这里添加另一个字段。

CloudDeploy[FormFunction[{ "CatBreed", "angle" -> Restricted["Number", {0,360}]}, Rotate[放大[#cat["Image"], 2], #angle Degree] &, "PNG"]]" title="CloudDeploy[FormFunction[{"cat" -> "CatBreed", "angle" -> Restricted["Number", {0, 360}]}, Rotate[Magnify[#cat["Image"], 2], #angle Degree] &, "PNG"]]" width="591" height="67" class="alignnone size-full wp-image-9525">

再次,我们部署到云,现在有一只猫在一个角度:

曼克斯猫在70度角

好的。这就是我们制作网页应用的方法,我们也可以将其部署到手机等等。如果需要的话,我们也可以创建一个API。让我们使用同一段代码。实际上,最简单的事情就是编辑这段代码,把它从表单变成API:

CloudDeploy[apiffunction [{ "CatBreed", "angle" -> Restricted["Number", {0,360}]}, Rotate[放大[#cat["Image"], 2], #angle Degree] &, "PNG"]]" title="CloudDeploy[APIFunction[{"cat" -> "CatBreed", "angle" -> Restricted["Number", {0, 360}]}, Rotate[Magnify[#cat["Image"], 2], #angle Degree] &, "PNG"]]" width="591" height="67" class="alignnone size-full wp-image-9523">

现在我们有一个API我们可以填入参数;我们可以说" cat=manx ", " angle=300 "现在我们可以运行它,在一个角度上有另一只猫。

在部署的API中,以300度角操纵cat

这是我们刚刚创建的一个API,可以被云中的任何人使用。我们可以在任何地方调用这个API——一个网站,一个程序,等等。实际上,我们可以自动生成代码从各种其他语言调用它——比如说在Java内部。

EmbedCode[%,“Java”)
所以实际上你可以将Wolfram语言的功能整合到你正在用任何语言做的任何项目中。

在这种特殊情况下,您正在我们的云中调用代码。我应该提到的是,你也可以用其他方法来设置。你可以拥有一个私有云。您可以在计算机上安装Wolfram引擎的一个版本。您甚至可以将Wolfram引擎放在一个库中,该库可以显式链接到您编写的程序中。

所有这些都适用于移动平台。你可以在手机上部署应用;如果你愿意,甚至可以为Android提供一个完整的APK文件。

所有这些软件工程都有很多深度。Wolfram语言能够简化和自动化这么多内容,这是非常奇妙的。

编程的自动化

你知道,我可以近距离地看到自动化的故事我们公司每一天。我们有所有这些项目——所有这些我们正在建造的东西,大量的东西——你可能会认为我们需要成千上万的人来做。但你看,我们一直在自动化,然后自动化我们的自动化等等25年现在。所以我们仍然只有一个只有700人的小私人公司和大量的自动化设备。

当我们自动化一些事情时——比如,一种网络开发项目——曾经非常痛苦,需要几个月的时间,突然变得非常容易,只需要一天。从管理的角度来看,这很好地改变了你尝试的创新水平。

让我给你们举几个星期前的例子。我们在讨论为圆周率日做些什么.我们觉得挂一个会很有趣网站人们可以在这里输入他们的生日,然后找出这些日期在圆周率的数字中出现的位置,然后据此制作一件很酷的t恤。

好吧,很明显这不是一个对企业至关重要的活动。但如果这很容易,为什么不去做呢?用我们的自动化技术,很容易。下面是创建这个网站的代码:

mypiday.com代码笔记本

它不是特别长。在这里它会部署到云上,在那里它会调用Zazzle API,等等。让我给你看看实际的网站那是在那里制作的:

mypiday.com网站

你可以用某种格式输入你的生日,然后它就会尝试在圆周率的数字中找到那个生日。好了;它找到了我的生日,在那个数字位置,有一个定制的图像用圆周率显示我,让我去买一件t恤,上面有这个。

myypiday.com结果页面,以PI的数字显示任何输入的生日(在本例中是我的生日)

实际上,没有一个程序员参与到这个项目中来。凑巧的是,这是我们的艺术总监刚刚完成的,并在几天前上线,在圆周率日之前,已经愉快地为世界各地的圆周率爱好者提供了成千上万的定制t恤设计。

大型项目

有趣的是,了解Wolfram语言中如何发生大规模的代码开发。有一个基于Eclipse的IDE,我们很快就会发布一系列与Git的集成,我们在内部使用这些集成。但有一件事与其他语言非常不同,那就是人们倾向于在笔记本上写代码。

笔记本可以包含代码的整个故事

他们可以把代码的整个故事写在那里,用文本和图形之类的东西写在那里。如果愿意,他们可以使用笔记本进行结构化测试;有一个测试笔记本在它中有各种测试,我们可以运行等:

一个单元测试笔记本

他们也可以使用笔记本来制作可计算文档的模板,在那里你可以直接嵌入符号Wolfram语言代码,这些代码将被执行来制作静态或交互式文档,你可以作为报告交付等等。

顺便说一下,关于这个生态系统的一个真正好的事情是,如果你看到一个完成的结果——比如说一个信息图表——有一个标准的方法来包含一种“计算回连接”,它可以直接返回到制作图表的笔记本上。所以你可以看到它背后的一切,并且开始能够自己使用这些数据。这对研究数据发布或数据新闻很有用。

物联网

好了,说到数据,几周前我们启动了我们的数据下降

Wolfram数据滴

这个想法是让任何东西,尤其是连接设备-很容易地将数据放入我们的云,然后立即使它有意义,并可访问的Wolfram语言无处不在。

比如,我有一个小装置,它可以测量一些东西,实际上,我想这个特殊的装置只能测量光线水平;种无聊。

一种测量光电平的电子仪器

但在任何情况下,它都是通过wifi连接到我们的云。它测量的所有东西都进入我们的数据传输,在这里databin对应于那个设备。

本= Databin [3 mfto -_m”)

我们用的是世界飞镖联合会-Wolfram数据框架用于说明设备的原始数字的含义。现在我们可以做各种各样的计算。

它还没有收集到很多数据,但我们可以继续,把收集到的数据绘制成图:

DateListPlot(本)

这是那个设备看到的光的水平,我想它就在那里,灯被打开了然后它是一个固定的光的水平不好意思,不是很令人兴奋。我们可以做一个数据的直方图,同样,在这个特定的情况下,它会很无聊。

直方图(本)

你知道,我们从我们的知识库中收集了所有这些关于世界的数据,并将其整合到我们的语言中。现在,通过Data Drop,您可以集成来自任何设备的数据。我们有一个完整的库存不同种类的设备这是我们过去几年一直在做的。

Wolfram连接设备项目

一旦将数据放入data Drop中,就可以在使用Wolfram语言的任何地方使用它。像在Wolfram | Alpha。或Siri。之类的。

非常关键的一点是,Wolfram语言能够在一个标准方式,因为这意味着你可以立即进行计算,组合数据,等等。我不得不说,只是能够sort“扔数据”到Wolfram数据删除是非常方便的。

就像我们把数据从我的圆周率日网站进入一个数据库。这意味着,举例来说,这只是一行代码,看看世界上哪里有人对圆周率感兴趣,从中生成圆周率T恤等等。

地理信息[{Red, Point[Databin[ "Albers", GeoRange -> Full, ImageSize -> 800]" title="GeoGraphics[{Red, Point[Databin["3HPtHzvi"]["GeoLocations"]]}, GeoProjection -> "Albers", GeoRange -> Full, ImageSize -> 800]" width="620" height="355" class="alignnone size-full wp-image-9484">

你们中的一些人可能知道我一直是个人分析.事实上,让我有点惊讶的是,我认为我是那个收集了更多关于自己的数据的人。比如这里有一个点,代表我在过去四分之一世纪发出的每一封邮件。

我在过去的四分之一世纪发布了电子邮件

但是现在,有了Data Drop,我开始积累更多的数据。我想我已经有两位数的数据了。比如这是我在圆周率日的心率数据。我认为在那里有一个峰值世纪时刻

DateListPlot[Databin[


机器学习

那么,有了这些数据,我们该怎么做呢?在Wolfram语言中,我们得到了所有这些可视化分析能力。我们的目标之一就是做到最好数据科学自动——不需要数据科学家花时间去做。我们一直在研究的一个领域就是机器学习

让我们说你想在白天或黑夜对照片分类。好的,所以在这里我有一系列微小的训练图片,对应于白天或夜晚的场景,我只是在Wolfram语言中有一个小功能,分类,它将构建一个分类器来确定一张图片是白天的还是晚上的:

daynight = classification[{(分类集)}]

这就是分类器。现在我可以把这个分类器应用到一组图片上,现在它会告诉我,根据这个分类器,这些图片是白天还是晚上。

[{(6个图像)}]

我们会自动计算出要用什么类型的机器学习,并进行设置,这样你就有了一个可以使用的分类器,或者可以放到一个应用程序中,或者调用一个API,等等,所以它只是一个函数来做这个。

我们也有很多内置的分类器;各种各样的事情。让我给你们展示一个新东西,它刚刚被整合到一起,那就是图像识别。我要过一种危险的生活,试着做一个关于一些新技术的现场演示。

我让某人去沃尔玛买了一堆随机的东西,试图进行图像识别。所以这可能会非常可怕。让我们看看这里发生了什么。首先,让我们把它设置好,这样我就可以实际拍摄一些图像。好啊我要给它一个更好的机会,不要让它有太时髦的背景。

好的。让我们尝试一个香蕉。让我们尝试捕获香蕉,让我们看看如果我说的话会发生什么ImageIdentify在我们的语言…

/ / ImageIdentify(香蕉)

好的!这很好!

好吧。让我们试一试命运,并尝试一些其他的事情。这是什么?看起来像是玩具塑料三角龙。让我们看看系统是怎么想的。这里可能会变得很糟糕。

/ / ImageIdentify(三角龙)

哦。它说它是山羊!好吧,从那个奇怪的角度,我想我能理解它是怎么想的。

好,我们再试一件事。

(非洲紫罗兰)// ImageIdentify

哦,哇!好的!花盆上的标签也写着同样的话!我当然不知道。这是很酷。

这种方法在大多数情况下都非常有效。对我来说最有趣的是当它犯错误的时候,就像三角龙的错误一样,非常像人类。我是说,这些都是人可能会犯的错误。

事实上,我认为这里正在发生的事情非常令人兴奋。你知道,35年前,我想弄清楚类似大脑的东西,我在研究神经网络等等,我做了各种各样的计算机实验。我最终简化了我所研究的基本规则——结果不是神经网络,而是一种叫做元胞自动机,这是可能最简单的程序。

挖掘计算宇宙

发现如果你在所有这些程序的计算宇宙中观察,你会看到一大堆可能的行为。这里有一个细胞自动机的例子。每一个都是不同的程序显示不同的行为。

一组细胞自动机

即使程序非常简单,也可能存在非常复杂的行为。举个例子;我们可以看看它是怎么做的:

一个复杂的元胞自动机

这个发现引导我去开发一个完整的新科学我写了大的书大约多年前。

一种新的科学:这本书和它的章节

这就有了应用程序到处.例如,在过去的十年中我们很清楚地看到使用程序建模的想法已经战胜了主导精确科学约300年的想法,即使用数学方程建模的想法。

同时我们也很清楚地看到我们发现新技术的程度矿业“这个简单程序的计算世界。知道了某个目标后,我们可能会对一万亿个程序进行抽样,以找到一个适合我们特定目的的程序。

可以从细胞自动机的计算宇宙中挖掘出很多东西

这个目的可能是艺术创作,或者它可能在做一些新的图像处理或新的自然语言理解算法,或其他什么。

最后,类人脑

好吧,好的,所以有很多我们可以用简单的程序建模和建立。但人们经常说以某种方式大脑必须特别;它必须做的更多。

回到35年前,我可以让神经网络做一些吸引器或分类器,但我不能让它们做任何非常有趣的事情。这些年来,我并没有完全相信神经网络之类的应用。

但就在最近,一些门槛已经通过了。而且,就像我展示的图像标识符使用了与35年前几乎相同的想法——通过一堆好的工程调整,也许还与细胞自动机有关。但令人惊讶的是,仅仅是用今天的技术做一些显而易见的事情,就能成功。

我无法预测这一切何时发生。但现在再看,有点令人震惊。我们现在能够使用数以百万计的神经元,数以千万计的训练图像和数以万亿计的等量神经元放电。尽管工程细节几乎像鸟类和飞机一样不同,但其数量级与我们人类学习识别图像时的数量级几乎相同。

对我来说,这是人工智能缺失的一环。现在有太多的事情我们可以做得比人类更好,使用电脑。我的意思是,如果你把一个Wolfram|Alpha放到一个图灵测试机器人中,你就能立刻判断出它不是人类,因为它知道的太多,计算的也太多。

但是这些任务等类似图像识别,我们从未与计算机做过。但现在我们可以。而且,顺便说一下,人们认为这将在60年工作的方式是它的工作方式;我们直到现在我们才没有技术看到它。

那么,这是否意味着我们现在应该在所有事情上都使用神经网络?嗯,没有。事情是这样的:有一些任务,比如图像识别,每个人都根据他们在周围世界看到的东西,有效地学会了自己去做。

语言作为符号表征

但这不是人类所做的一切。还有另一个非常重要的事情,对我们的物种来说几乎是独一无二的。我们有语言。我们有一种象征性地互动的方式,让我们接受一个人获得的知识,并将其广播给其他人。这就是我们如何建立我们的文明。

那么,我们如何让计算机也使用这个想法呢?他们必须有一种能够代表世界的语言,并且能够进行计算。很方便的是,这正是Wolfram语言想要做的,这也是我在过去30年左右一直在做的事情。

你知道,所有这些抽象的计算都是可以完成的。在计算的世界里给细胞自动机做个样本。但问题是,它与我们的人类世界,与我们人类所知道或关心的东西有什么关系?

人类试图将事物归结为:用语言和语言结构象征性地描述世界。我们看到了外面的世界,我们想出了描述事物的词汇。我们有一个像“鸟”这样的词,它抽象地指一大堆鸟类的东西。到目前为止,英语中大概有三万个常用词汇,它们是我们描述世界的原材料。

嗯,把它和Wolfram语言. 在英语中,几千年来,我们一直在不断进化,以确定我们所拥有的可能是方便的,但往往是不连贯的语言结构。用Wolfram的语言来说,我们,特别是我,多年来一直在努力工作,尽可能保持一切的一致性和连贯性。现在我们已经有5000个左右了“核心词”或功能,还有很多其他的词描述特定的实体

在发展语言的过程中,我一直在做的明确的事情有点像在英语中含蓄地发生的事情。我一直在研究所有这些计算的东西和过程,并试图理解其中哪些是足够普遍的,值得为它们命名。

你知道,这种对象征性表示的想法似乎对人类理性思维对非常重要。看到一种语言的结构如何影响人们如何思考事物,它真的很有趣。我们在人类的自然语言中看到了一点点,但计算机语言的效果似乎更大。对我作为一种语言设计师,看到当人们开始真正了解Wolfram语言时,看到思维的模式是令人着迷的。

有些人可能会说,“我们到底为什么要使用计算机语言?”为什么不用人类的自然语言呢?”嗯,首先,计算机需要一些东西来互相交谈。但我在Wolfram语言中努力工作的一件事是,确保它不仅对计算机,而且对人类来说,易于理解——就像计算机和人类之间的一座桥梁。

更重要的是,事实证明,人类的自然语言在进化过程中,并不擅长表达一些东西。想想程序吧。有一些程序,是的,可以很容易地用一小段英语来表示,但很多程序真的很难用英语表述。但是它们在Wolfram语言中非常干净。

所以我认为我们两者都需要。有些东西用英语说更容易,有些用Wolfram语言说更容易。


后语言概念

回到图像识别。这是一个真正的任务,从那里的所有东西,在这里是在视觉世界,并找到如何使它符号化,如何用文字抽象地描述事物。

现在,事情是这样的:在神经网络内部,正在发生的一件事是它在暗中进行区分,实际上是将事物分类。在网络的早期,这些类别与我们在人类视觉处理的早期阶段使用的类别非常相似,而且我们实际上有相当不错的词来形容它们:“圆的”,“尖的”,等等。

但很快就有一些类别被含蓄地使用了,我们没有词语来形容。有趣的是,在历史的发展过程中,我们的文明确实逐渐发展出了新的事物词汇。就像在过去的几十年里,我们开始讨论“分形模式”。但在那之前,这些树状结构并没有被特别地识别出来,因为我们没有专门的词来形容它们。

所以我们的机器将会发现很多我们的文明还没有发现的类别。我开始给这些东西起一个相当自命不凡的名字:“后语言涌现概念”,简称PLECs。我认为我们可以在Wolfram语言中为这样的事情创建一个元框架。但我认为PLECs是我们的计算机开始真正扩展传统人类世界观的一部分。

顺便说一下,在我们谈到plec之前,人类已经完全理解了一些概念。你看,在Wolfram语言中,我们有世界上许多事物的表示,我们可以将人们询问Wolfram|Alpha的绝大多数事物转化为精确的符号形式。但我们仍然不能把随意的人类对话变成某种象征性的东西。

那么我们该怎么做呢?我认为我们必须把它分解成一些“语义原语”:基本结构。有些,比如事实陈述,我们在Wolfram语言中已经有了。还有一些,比如心理陈述,比如“我想”或“我想”,我们不做。

古代历史

这是一件有趣的事情。我最近一直在设计这种符号语言。当然,人们以前也尝试过这样做。但事实上,这种技术的发展已经有很长一段时间了。我是说,1200年代的时候,有个家伙叫雷蒙Llull开始研究这个的人;在17世纪,人们喜欢戈特弗里德莱布尼兹约翰·威尔金斯

看看这些人用他们的“哲学语言”或其他东西得出了什么,是非常有趣的。当然,他们从来没有像我们今天这样的实现基础。但是他们对本体论的范畴有很多理解。看看他们所写的精华,在历史的进程中什么是相同的,什么是改变的。我是说,他们所有的科技产品当然都过时了。但他们关于人类状况的大部分研究仍然和当时一样有效,尽管他们确实比我们今天更关注死亡率。

今天一个有趣的变化是,我们真的需要把几乎像人一样的内部状态归因于机器。尤其是因为,这些日常对话的早期应用将是我们为人们与消费设备和汽车等进行对话而构建的东西。

我可以谈论这里非常实用的技术 - 现在的技术实际上是在下周开始的,以便制作我们所说的PLI或可编程语言接口。但是,让我们更多地谈论大局,以及关于未来。

在我看来,纵观历史,我们一直在使用技术来自动化我们做的越来越多的事情。人类定义目标,然后技术的工作就是尽可能地自动实现这些目标。

我们试图用Wolfram语言做的很多事情实际上是给人们提供一个描述目标的好方法。然后,我们的工作就是进行计算——或者进行外部API请求或其他操作——以实现这些目标。


人工智能系统会做什么?

因此,在任何可能的人工智能目标的计算定义中,我们都离实现它们非常近——实际上,在许多领域,我们已经远远超越了人类智能。

但重点是:想象一下我们桌子上有一个盒子,它能做人类能做的所有智能事情。问题是,盒子选择做什么?它必须以某种方式被赋予目标或目的。关键是没有绝对的目标和目的。任何一个人都可能会说:“生活的目的就是去做。X“。但我们知道这一点是什么都不做。

目的最终被社会、历史和文明所定义。今天人们做的或想做的许多事情,在300年前是绝对无法想象的。看到科技进步、我们对世界的描述——通过模因和文字等等——与人类目的的进化之间复杂的相互作用是很有趣的。

在我看来,技术的道路似乎相当清晰。人类目标的进化远没有那么清晰。

我的意思是,在技术方面,越来越多的我们自己做的事情,我们将能够外包给机器。我们已经外包了很多机械思维,比如做数学。我们正在外包很多内存方面的东西,很快也会外包很多判断力方面的东西。

人们可能会说,“好吧,我们永远不会把创造力外包出去。”事实上,有些方面是比较容易外包的:我们可以从中获得很多灵感音乐艺术或者只是通过观察计算的世界,这只是一个时间问题,我们可以自动地将这些东西与人类世界的知识和判断结合起来。

你知道,过去我们对科技的很多使用都是“按需”的。但我们将会看到越来越多的先发制人的应用——我们的技术预测我们想做什么,然后提出建议。

当人们谈论机器接管时,我觉得很有趣;这是我认为会发生的情景。这就像在汽车上安装GPS:大多数人,像我一样,只是按照GPS告诉他们的去做。同样的,当有东西说,你知道,“菜单上挑选食物”,或“跟那个人在人群中”,大部分时间我们就做机器告诉我们部分因为机器基本上是能够找到一个比我们更多。

当机器在整个社会中集体行动,有效地在软件中实现政治哲学家理论上谈论过的所有东西时,情况会变得复杂。但即使是在个人层面,理解目标结构也是非常复杂的。

是的,机器可以帮助我们“做自己,但做得更好”,放大和简化我们想做的事情和我们想走的方向。

不朽和超越

你知道,在今天的世界上,我们有很多稀缺资源。世界上许多地方的资源比过去少得多,但有些资源仍然稀缺。最值得注意的可能是时间。我们的生命是有限的,这是人类动机和目的很多方面的关键部分。

当我们实现有效的人类不朽时,这无疑将是人类历史上最大的间断。顺便说一句,我绝对相信我们会实现这一目标。我只希望在冷冻学等方面取得更多进展,让我们这一代人更有可能实现这一目标。

但目前尚不完全清楚永生的效果如何。我认为有几种途径;在实践中,这两者可能会结合起来。首先,我们设法对足够多的生物进行逆向工程,使我们在生物上无限期地运行。这可能很容易,但我担心这就像试图让一个服务器永远运行复杂的软件一样——对于这一点,我们绝对没有理论框架,而且很有可能会遇到无法确定的暂停问题和类似的事情。

第二条永生之路实际上是上传到某种设计好的数字系统。这可能是逐渐发生的。首先,我们会有直接连接到我们大脑的数字系统,然后这些系统会使用技术——也许和ImageIdentify开始从我们的大脑和经验中学习,接受越来越多的“认知负荷”,直到最终我们得到与大脑反应完全相同的东西。

一旦我们掌握了这些知识,我们所处理的东西就会进化得非常快,不受物理和化学的直接限制,例如,它可以探索计算宇宙的不同部分——不可避免地抽样部分,这些部分与我们人类目前所理解的相去甚远。

万亿个灵魂的盒子

那么,好的,最终状态是什么?我经常想象“一万亿灵魂的盒子”是我们文明的终极宝库。一开始我们可能会想,“哇,这将是一件令人印象深刻的事情,里面有所有的智慧、意识和知识等等。”但恐怕我不这么认为。

你看,从我的基础科学中发现的一件事就是我称之为计算等价原理这一理论实际上表明,超过某个较低的阈值后,所有系统所做计算的复杂性都是相同的。这就意味着,在这一万亿灵魂的盒子里,不会有什么抽象的惊人之处。它只是在同宇宙中很多系统一样的水平上进行计算。

也许这就是为什么我们看不到外星智慧:因为从一个完整的复杂的文明中产生的事物与仅仅发生在物质世界中的事物在抽象上没有什么不同。

现在,当然,我们可以自豪的是,我们的一万亿灵魂的盒子是特别的,因为它来自我们,有着我们详细的历史。但会发生有趣的事情吗?嗯,要定义“有趣”,我们需要一种目的感,这样事情就会变得非常循环,这是一个复杂的哲学讨论。

追溯到2015年

我已经远远谈不上2015年的实际问题了。按照我喜欢的工作方式,理解这些基本问题对于现在在构建技术时不犯错误非常重要,因为这就是我发现一个人可以构建最好的技术的方式。现在我对Wolfram语言所达到的程度感到非常兴奋。

我认为我们已经定义了一个支持计算思维的新技术水平,我认为它将让人们很快地做一些非常有趣的事情——从算法的想法到完成的应用程序或新公司或任何东西。的Wolfram云它周围的东西现在还在测试阶段,但你肯定可以试试看-我希望你会。这真的很容易开始——尽管,这并不奇怪,因为确实有新的想法,确实有东西要学如果你真的想充分利用这项技术。

这大概就是我现在要说的了。我希望我已经能够传达一些我们现在正在进行的令人兴奋的事情,以及一些我认为在计算思维和围绕它的技术中正在出现的新事物。所以,非常感谢。

7评论

  1. 斯蒂芬,我很惊讶你没有简单地提到树莓派2B平台。在这台4核1Gb机器上约10倍的性能提升是运行Mathematica的真正游戏规则改变者。

  2. 非常有趣的斯蒂芬·!很多我关心的,但我无法进一步发展的事情,都是通过你的思维方式来解决的。
    为了形成这些思维,我开始自学,首先是用经典的科学方法、理性思维和像理查德·费曼这样的世界一流教师。我在你的工作中发现了这与我之前更关心的哲学问题之间的联系。我的意思是,你用一种非常理性和科学的方式来处理老问题。
    对于人文学科的人来说,数学只是描述自然世界的一种方式,这并不是什么新鲜事,而许多“理科人士”并不理解这一点。

  3. 伟大的概述-只是一个微小的压倒性..

    汉斯
  4. 斯蒂芬,我发现这是一个有趣的是作为一个天才数学家,你忽视了你未来的大局中“无数无限”的概念。正如你所知,PI是无数的不合理数量中的非理性。人类理解“无数无限”的概念(因为他们的性质原则上是无数的,而机器本质上是有限的。这种哲学差异为创造力的人类开辟了一个巨大的优势,例如确定的是,肯定地知道,在数量pi中找到你的生日的申请将为过去和未来的所有年龄段的每个人都能为每个人都有工作。机器只能验证有限数量的情况。达尔文的自然选择定理的现代定义包括两部分:(1)进化存在,(2)生存驱动的进化。通过指出“生存”是表示没有方向的一个点的标量实体,可以轻易地反驳达尔文的自然选择定理。它是一个零尺寸点 - 要么存活,我们用数字“1”代表它,或者它会分配“0”)。虽然,“驾驶”你需要一个方向。你从点“a”到点“b”。 So for Survival to be able to drive, it would have to be at least one dimensional to have a direction. This contradiction disproves Darwin’s theorem of natural selection. A machine would not be able to generate abstract proofs like this.

  5. 我在这篇关于Wolfram编程云的文章中测试了一些新技术示例。
    我想知道ImageIdentify[]用什么样的图像特征识别出苹果的标志是人类?

    In:=ImageIdentify[Import]http://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Apple_Computer_Logo_rainbow.svg/2000px-Apple_Computer_Logo_rainbow.svg.png"]]

    Out:= Home sapiens sapiens(现代人)

    一步
  6. 没有删减的字典能否被分析成一个联立方程组,左边=右边?词类是编程语言的组成部分:名词是变量;动词是操作符——比+和*更长的选项列表;形容词和副词作为系数' = is = ..探索这个类比,将其作为一种方法,使Wolfram语言成为一种更紧凑、更强大的工具,用于用英语散文编码的人类知识进行计算,这可能是有趣的:

    是否有一个(严格地)基本英语单词的子集,所有其他定义都可以从这个子集中派生出来?

    或者“政治动词”分析:是否存在一组可能源自谷歌News的基本术语,其中可以表示、存储、索引和检索所有政治知识以进行显示和分析?

    据我所知,韦伯斯特大学词典因其严谨而受到哲学家们的青睐。也许——从另一个方向来分析——这是一个符号对等的系统,其严密性可以改进?

  7. 您的演讲已于2015年9月21日上传至Youtube
    https://www.youtube.com/watch?v=4OMBSGBHlzk
    我喜欢看它,因为我读了这个博客帖子。

    计算宇宙的运行方式太神奇了

    约翰•贝茨
Baidu