打字猴:1.70025598e+09
1700255980 16世纪的威尼斯人安德里亚·帕拉迪诺(Andrea Palladino)是西方历史上最具影响力的建筑师之一。在漫长而光辉的职业生涯里,他至少为16个威尼斯最富有的家族设计过豪宅,修建过30座乡间别墅,还设计过数座教堂。帕拉迪诺的平面设计图总是风格迥异,每张设计图之间有着天差地别。他设计的建筑在建筑面积、户型、朝向以及房间布局上都不尽相同。
1700255981
1700255982 即便如此,这些房子依旧带有帕拉迪诺独特的风格烙印,虽然多数人可能说不清这种烙印究竟是什么。20多年前,艺术史学家乔治·赫西(George Hersey)与计算机专家理查德·弗里德曼(Richard Freedman)试图通过合作研究解释这种独特的风格,寻找隐藏在帕拉迪诺平面设计图中的秘密。他们的想法是,如果帕拉迪诺的设计图背后当真有特定的规律,那么我们肯定能用相应的算法模拟一张帕拉迪诺风格的设计图。
1700255983
1700255984 为了提取出帕拉迪诺风格的必要元素,赫西和弗里德曼分析了数十座帕拉迪诺式别墅的结构:房间的朝向、墙壁的布局、相邻房间的长度是否有特定的比例等。最后,他们成功了。两人设计的计算机程序最终成功创造了一张帕拉迪诺风格的平面设计图。设计图里所有的细节都和已有的帕拉迪诺式建筑不同,无论是面积、朝向,还是房间布局,但是明眼人都能一眼认出这张新设计图里充斥着帕拉迪诺风格。
1700255985
1700255986 这个程序的算法在设计平面图时,会先勾出建筑的轮廓,这个轮廓往往呈矩形,然后算法会再用垂直或者水平的线贯穿矩形——这些直线代表墙壁,在建筑里分隔出不同的房间。一条直线可以把房子分隔成两个部分,而两条平行的直线则可以把房子分隔成三个部分,以此类推。每个房间继而以相同的方式被分隔,小房间再以这种方式继续分隔……直到房间的大小符合进一步设计的需要。对一个矩形用相互平行的垂直或水平线进行多次分割,每次用一条或多条直线,我们几乎可以绘制出无限多样的平面设计图。
1700255987
1700255988 帕拉迪诺的设计风格既不是刻意做作也不是随意而为,也没有听起来那么复杂高深。举例来说,如果一个房间被一条直线分隔成两个小房间,通常两个小房间的面积相同,或者其中一个是另一个的两倍大。而如果这个房间被两条平行线分割,通常中间的房间是两侧房间的两倍大。只要掌握这两点和其他几条规律并灵活运用,就算是计算机也可以模拟出这种最富盛名的文艺复兴时期的建筑风格。
1700255989
1700255990 自然界刻板的组合方式当然和计算机模拟帕拉迪诺风格的过程不完全相同。蛋白质是由更小的氨基酸组合而成的产物,而帕拉迪诺式建筑则是分割矩形建筑的结果。不过两者的共同点更值得关注:不管是蛋白质还是建筑学,都是用有限的基本元素和更有限的组织原则创造出种类庞杂的新产物。如果这个规律在工业革命前就已经存在于建筑学中,那么我们有理由推测,它也极有可能存在于工业革命之后的工程技术领域。
1700255991
1700255992 YaMoR就是一个很好的例子,它代表的领域正是现代数字技术。
1700255993
1700255994 控制机器人的电脑芯片上嵌有无数个晶体管,集成电路上的晶体管是一个只能对电压有无做出两种反应的简单电子元件:“0”代表没有电压,关闭开关;“1”则代表有电压,打开开关。所有的晶体管协同合作,对一串输入的数据流进行处理之后,再以一连串“0”和“1”的形式输出。每个晶体管相当于一个位,或者也叫二进制位。晶体管只有开和关两种状态,它们是计算机理解所有信息的基础。数学家对计算机工作原理的描述更精确,他们将计算机的工作状态描述为函数值的计算,即电路获得一个输入,经过演算和处理获得一个输出。电路演算所使用的函数,其名称出自英国数学家兼哲学家乔治·布尔(George Boole)1854年的著作《思维规律的研究》。布尔创立的学术分支是科学上一个巨大的进步,而世人口中的布尔函数,早已经成为现代计算机科学的核心。
1700255995
1700255996 布尔函数中最简单的逻辑之一是与(AND)函数,你的每次搜索几乎都离不开这个函数。举个例子,如果你想找某首乐曲的电子版散页乐谱,譬如莫扎特的《魔笛》(Magic Flute),搜索引擎会检索所有标题中含有“莫扎特”的曲谱,对于每个标题,返还的结果要么为“是”,要么为“否”,用一个位来表示也就是“1”或者“0”。接着,引擎对“魔”字也会进行相同的处理。于是,就每个标题而言,两个关键词分别有两种返还结果,组合之后一共有4种不同的可能情况。数字编码的0-1阵列可以用数学家们习惯的方式书写,来替代布尔函数的函数值,这种写法被称为真值表。与函数的真值表写法如图7-1中a表所示,对于函数的每个输入,两个关键的检索结果分别在表格的左侧沿着纵向标出,表格右侧则是4个最终的返还值,也就是函数的输出,还是用“1”和“0”的形式标记。最终得到的4种结果中只有一种返还值为“是”——只有当先前两个输出的结果均为“是”,才算作《魔笛》检索的一个可能值。
1700255997
1700255998 如果你想要找标题中有“莫扎特”或者“魔”(或者兼有两者)的曲谱,搜索引擎需要运行另一个布尔函数:或(OR)函数。或函数和与函数的数据输入过程相同,都是检索所有含有“莫扎特”和“魔”的标题,但是它们判定的规则却不同。在或的逻辑里,只要输入数据的两个结果有一个为“是”,那么最终的输出结果就为“是”(如图7-1b)。所以,或函数的输出中不仅会有《魔笛》,还将有莫扎特的其他626支曲目,此外还有桑塔纳(Santana)的《黑魔女》(Black Magic Woman),史蒂维·旺达(Stevie Wonder)的《如果这就是魔法》(If It’s Magic)等。布尔函数中还有一个更简单的逻辑函数,非(NOT)函数(如图7-1c)。非函数将输出所有返还值为“否”的结果,在这里,它可以帮你找到所有标题中不包含关键词“莫扎特”的曲谱。
1700255999
1700256000
1700256001
1700256002
1700256003 图7-1 真值表
1700256004
1700256005 与、或、非以及很多其他独特的布尔函数,比如XOR、XNOR、NAND以及NOR,帮助我们把自然语言中复杂的问题翻译成一串计算机能够理解的二进制数字。不仅如此,二进制数字与十进制一样,能够进行加减乘除运算。无论一台计算机有多么高端复杂,它的集成电路都在执行最基本的算数运算和简单的布尔函数,比如与函数。只需要两个最简单的数字,0和1,加上布尔函数,数字计算机就能够识别图片、对数据进行加密、发送语音邮件或是预测下周二的天气。如此看来,算数存在的意义远远不止是小学的数学考试而已。
1700256006
1700256007 布尔函数另一个非凡的特征是简单函数能够通过叠加组成复杂函数,在叠加的过程中,一个函数的输出可以作为下一个函数的输入。这就像一个乘法运算(4×3)可以用一个加法运算来代替:(4+4+4)。不仅如此,虽然理论上可以有无数种布尔函数,但每一种布尔函数都不过是与、或和非三个简单函数组合叠加的结果。这对于计算机来说非常重要,因为在集成电路中,晶体管往往通过串联形成计算单元以执行不同的布尔逻辑函数,这些晶体管单元因此被称为逻辑门。
1700256008
1700256009 图7-2中展示了几种简单的逻辑门,芯片设计师用这些示意图来代表与、或和非逻辑门。每个逻辑门的左侧都有一条或者两条直线代表输入,对应一个或者两个位。而右侧的一条直线则代表唯一的输出。图7-3中数个门电路被连接到一起以完成最简单的算数:计算两个二进制数字的相加之和——如此简单的运算已经需要6个逻辑门,而每一个逻辑门中包含了多个晶体管。现代计算机能够加减乘除的极限当然已经远远不止64位,涉及的逻辑门数量也往往达到了百万级。
1700256010
1700256011
1700256012
1700256013
1700256014 图7-2 逻辑门
1700256015
1700256016
1700256017
1700256018
1700256019 图7-3 计算二进制加法的电路
1700256020
1700256021 大多数集成电路在出厂前就会完成硬件连接,而像YaMoR这样的机器人则配备了可编程硬件,它们的芯片中某些逻辑门电路能够被修改,例如把某个与门电路改成或门电路。此外,不同逻辑门之间的组合方式也可以发生改变。有些可编程芯片甚至能在进行运算的同时修改逻辑门。逻辑门数量达到百万级别的电脑芯片已经不是小孩子手里的玩具了,而是灵活强大的计算引擎,它能帮助计算机学习许多人类才知道的东西。通过对自身硬件的修改,自主机器人不仅能移动,还能学会避开低洼的坑洞和其他陷阱。
1700256022
1700256023 如果你觉得上面这些听起来很熟悉,那是因为这与生物进化中一次改变一个分子的过程十分类似。可编程的逻辑门电路相当于可变的基因型,而不同的算法则相当于不同的表现型。和进化类似,计算机学习的过程需要不断试错。在这个过程中,良好的表现会受到激励和加强,而不好的行为则会受到惩罚和削弱。当然机器人受到的惩罚往往不会像进化那么严厉。如果未来某一天你拥有的某个机器人高尔夫打得不太好,它大可以多多练习它的站姿、握杆或者甩杆技巧,而不是直接被淘汰。
1700256024
1700256025 另外,这种学习方式也不需要遗弃原有的知识。比如在学习高尔夫的前后,即便你脑中与坐、走、跑、跳等动作有关的神经环路逐渐发生改变,你依旧能够执行这些动作。逻辑门与生物进化的共同点还不止于此:逻辑门电路之间的连接属于通用连接,因为逻辑门的输出可以被任何其他逻辑门的输入所识别,就像蛋白质中标准化的肽键。只是对于蛋白质而言,肽键的合成、断裂和修饰要简单得多,而生产一块能够随意修改的标准化电路则要经过精心设计且耗费大量的人力。
1700256026
1700256027 标准化连接和少数几个基本逻辑门这两个条件已经足以打造出一款能够击败人类国际象棋冠军、从数百万页书中找出特定的一页或者“打印”3D物体的电脑芯片了。现实生活中的可编程芯片会让人联想到大自然的进化能力,如果有一座数字电路图书馆,里面收录了逻辑门电路所有可能的组合方式,那么它的组织形式会不会和自然图书馆一样?这个问题的答案将告诉我们,生物进化的曲速引擎是否有适用于工程技术发展的改装版本。
1700256028
1700256029 卡蒂克·拉曼(Karthik Raman)为我们找到了答案。拉曼毕业于印度最顶尖的大学之一印度理工学院,他选择了我的实验室继续博士后研究。而拉曼可不是空手而来的,他带着他对于科学的极度狂热,面对失败毫不气馁的毅力以及分析复杂数据的鬼才天赋,跨进了我的实验室。当我提出让他研究可编程电路图书馆时,他二话不说就扑到了这项研究上。
[ 上一页 ]  [ :1.70025598e+09 ]  [ 下一页 ]