来源:Distill
编译:weakish
编者按:本周一,Google Brain的Shan Carter和YC Research的Michael Nielsen发表了一篇讨论AI(人工智能)和IA(智能增强)关系的长文。当前有一种传统观点认为AI将全面超越人类,另一种传统观点则认为随着AI的发展,人类将对自己进行“硬件层面”的修改,例如通过神经接口或者模拟大脑改造自己。Carter和Nielsen提出了第三种观点,AI将在“软件层面”增强人类的智能,改变人类的思维方式,拓展人类创造性的范围。
电脑用来做什么?
从历史上看,这个问题的不同答案——也就是不同的计算愿景——帮助启发和确立了人类最终创建的计算系统。想想早期的电子计算机。世界上第一台通用电子计算机ENIAC为美国军方计算炮兵火力表。其他早期的计算机也被用来解决数值问题,例如模拟核爆炸,预测天气和规划火箭的运动。机器以批处理模式运行,使用粗糙的输入输出设备,没有任何实时交互。这是将计算机作为数字运算机器的愿景,用于加速那些以前需要一个人类团队耗时数周、数月甚至更长时间才能完成的运算。
20世纪50年代,一个不同的愿景开始发展了。1962年,Douglas Engelbart提出计算机可以成为增强人类智能的方式1,意味着这一愿景凝结了。在这一视角下,计算机不再是主要解决数字运算问题的工具。相反,它们是实时交互系统,具有丰富的输入输出,人类可以使用它们来支持和扩展自己解决问题的过程。这种智能增强(IA)的愿景深刻影响了其他许多人,包括Xerox PARC的Alan Kay这样的研究人员,Apple的Steve Jobs这样的企业家,并导向了许多现代计算系统的关键想法。它同时深刻影响了数字艺术和音乐,以及交互设计、数据可视化、计算创造和人机交互等领域。
IA的研究经常与人工智能(AI)的研究竞争:资金、有天赋的研究人员的兴趣。尽管这两个领域之间一直存在重叠,但是IA一般关注构建人机共同协作的系统,而AI则关注将智力任务完全外包给机器。特别地,AI问题通常以匹配或超越人类表现为框架:在国际象棋或围棋上击败人类;学习识别言语和图像,学习翻译语言,想在这些方面做得和人类一样好;等等。
本文描述了一个刚刚涌现出来的新领域,IA和IA的综合。我们提议使用人工智能增强(AIA)这个术语来命名这个领域:使用AI系统来帮助开发智能增强的新方法。这个新领域引入了一些重要的、新的基础性问题,一些不属于任何一个亲本领域的问题。我们相信,AIA的原理和系统将与现有的大多数系统全然不同。
我们的文章首先调研了最近的一些技术成果,这些成果隐含了人工智能增强的技术。这包括生成式界面(generative interfaces),即可用于探索和可视化生成式机器学习模型的界面。这样的界面开发了一种生成式模型的制图学,即人类从生成式模型中探索和建构意义的方式,并将这些模型“所知”纳入他们的创造性工作。
我们的文章不仅仅是一份技术成果调研。我们相信,现在是识别这一新兴领域一些基础性的综合问题的好时机。这些新工具能在多大程度上激活创造力?能用它们生成真正令人惊讶的新颖创意吗?还是说,只能生成一些陈旧的想法,这些想法只是基于对现有想法的微不足道的重新组合?这样的系统可以用来开发基础性的新接口原语吗?这些新原语将如何改变和扩展人类的思维方式?
使用生成式模型来创造有意义的创意操作
我们来看一个机器学习模型使得新型接口成为可能的例子。为了理解这个界面,你可以想象自己是一个字体设计师,正在创建一个新字体。(我们会很过分地不顾字体和字型的区别。向任何可能正在阅读本文的字体设计师致歉。)草绘一些初步的设计后,你想试下粗体、斜体和长体这样的变体。让我们来看看一个从初始设计中生成和探索变体的工具。结果的质量是相当粗糙的,稍后将解释具体原因,请多多包涵。
当然,浓淡(重量)、斜度和宽度只是字体变化的三种方式。想象一下,用户不用创建专门的工具,相反,仅仅通过选择现有字体的示例,就可以构建自己的工具。例如,假设你想改变字体的衬线程度。那么,你可以从一个候选框中选取5到10个无衬线字体,将它们拖曳到左侧的框内。接着选择5到10个衬线字体,将它们拖曳到右侧的框内。当你这样做的时候,浏览器上运行的一个机器学习模型将自动从这些例子中推断出该如何将初始字体往衬线或无衬线的方向调整:
事实上,我们使用同样的技术来构建前文中调整加粗、斜度和宽度的工具。我们使用了以下的示例:
为了构建这些工具,我们使用了生成式模型(generative model)。 我们具体使用的是James Wexler训练的模型。要理解生成式模型,考虑字体的先验描述看起来需要大量的数据。例如,如果字体有64x64个像素,那么我们预计需要64x64=4096个参数来描述单个字形。但是我们可以使用生成式模型来找到更简单的描述。
我们通过构建一个神经网络来完成这个任务,这个神经网络需要一些输入变量(数量不大),这些输入被称为潜变量(latent variables),并产生整个字形作为输出。我们使用的具体模型有40个潜在的空间维度,将其映射到4096维空间可以描述字形中所有的像素。换句话说,这个想法是将一个低维空间映射到一个高维空间:
我们使用的生成式模型是一种被称为变分自动编码器(VAE)2的神经网络。就我们的目的而言,生成式模型的细节并没有那么重要。重要的是,通过改变作为输入的潜变量,我们可以得到不同的字体作为输出。所以潜变量的一个选择会给出一个字体,而另一个选择会给出另一个不同的字体:
你可以将潜变量看成一种紧凑、高层的字体表示形式。神经网络接受这种高层表示并将其转换为全像素数据。仅仅40个数字就可以刻画一个字形表面上的复杂性(原本需要4096个变量),真是了不起。
我们使用的生成式模型从一个包含5万字的训练集中学习,这个训练集由Bernhardsson从开放的web上搜集而成。在训练期间,网络的权重和偏置得到了调整,从而使网络能够从训练集中输出任何期望字体的精确的近似值,只要对潜变量进行适当的选择即可。从某种意义上说,该模型正在学习一个所有训练字体的高度压缩表示。
实际上,这个模型并不仅仅重现训练字体。它也可以推广,生成训练中未见的字体。通过强制寻找训练样例的紧凑描述,神经网络学习了一个抽象、高层的字体模型。这个高层模型使得它可以推广训练中已见的样例,以产生逼真的字体。
理想情况下,一个良好的生成式模型将处理相对较少的训练样例,并基于这些处理推广至包含所有可能的人类可读字体的空间。也就是说,对于任何可以想见的字体——无论是现有的,还是也许在未来才想象到的——都可以找到与该字体完全对应的潜变量。当然,我们使用的模型远远没有达到这个理想——一个特别糟糕的失败是由模型生成的许多字体省略了大写字母“Q”的尾部(你可以在上文提到的例子中看到这一点)。不过,对理想的生成式模型能做到的事情有个印象还是有用的。
这样的生成式模型有些类似科学理论。科学理论常常极大地简化了看起来复杂的现象的描述,将大量的变量减少到很少一些变量,从这些变量可以推断出系统许多方面的行为。并且,好的科学理论有时能使我们推广发现新现象。
我们以普通的物体为例。普通物体有物理学家所说的相(phase)——也许是液态,也许是固态,也许是气态,或者也许是一种更为奇异的东西,比如超导体或玻色-爱因斯坦凝聚态。初看起来这样的系统极其复杂,也许涉及到1023或者更多的分子。但是热力学和统计力学定律使我们能够找到一个更简单的描述,把复杂度降低到几个变量(温度、压力等)。这些变量涵盖了系统的许多行为。此外,有时基于这些理论我们可以推广预测预期之外的新相态。例如,1924年,物理学家使用热力学和统计力学预测了一个著名的新相态,玻色-爱因斯坦凝聚态,其中所有原子都束聚于一个单一的量子态,导致令人惊讶的宏观量子干涉效应。我们稍后讨论创造性和生成式模型时,会继续这一预测能力的话题。
回到生成式模型的基本细节,我们如何使用这样的模型来制作类似于前文所示的基于样例进行推理的工具呢?我们来考虑一下加粗工具的情况。在这种情况下,我们接受用户指定的粗体字体的所有潜向量的平均值,和所有用户指定的非粗体字体的平均值。接着我们计算这两个平均向量之差:
我们将这个向量称为加粗向量。为了使某些给定字体更浓,我们只需将一些加粗向量加到相应的潜向量中,结果的加粗程度通过调整加上的加粗向量的数量来控制:(实践中有时使用稍微不同的程序。在一些生成式模型中,潜向量需要满足一些约束——例如,它们可能全部具有相同的长度。在这种情况下,就像我们的模型一样,我们必须使用复杂一些的“加法”操作,以确保长度保持不变。但从概念上来说,将这些操作视为加上加粗向量是正确的。)
这一技术是由Larsen等人3提出的,加粗向量之类的向量有时称为属性向量(attribute vectors)。我们前面展示的所有工具都是基于这一想法实现的。也就是说,我们使用字体样例来加粗向量、斜度向量、长体向量和用户定义的衬线向量。界面由此提供了探索这四个方向上的潜空间的方式。
我们展示的工具有许多缺陷。考虑下面的例子,我们从正中间的一个字形例子开始,增加或者减少加粗(分别对应右侧和左侧):
审视下左侧和右侧的字形,我们看到许多不幸的人工产物。特别是最右边的那个字形,边缘开始变得粗糙,衬线开始消失。更好的生成式模型可以减少这样的人工产物。这是一个很好的长期研究计划,提出了许多有趣的问题。不过,即使就我们现有的模型而言,使用生成式模型也有一些明显的好处。
要理解这些好处,可以想想一种幼稚的调节加粗的方法,这种方法仅仅通过在字形的边缘添加一些额外的像素的方式来让字体更粗。虽然这种加粗方式可能与非专家对字体设计的思考方式相匹配,但是专家可以做更有技术含量的事情。下面我们展示了这个幼稚的加粗程序的结果与Georgia和Helvetica字体实际使用的粗体:
正如你所见,无论是在有衬线的情况下,还是在无衬线的情况下,幼稚的加粗程序都产生了很不一样的结果。例如,在Georgia字体中,左侧的笔划只是略微加粗,右侧的笔划则明显加粗了,但只加粗了一侧。在这两种字体中,加粗不会改变字体的高度,而幼稚方法却改变了高度。
如这些例子所示,精良的粗体不是一个加粗字体的琐碎过程。字体设计专家具备许多加粗字体的启发,从以前的试验中推断而得的启发,仔细研究历史样例的启发。传统程序刻画这些启发涉及巨大的工作量。使用生成式模型的好处是,它会自动学习许多这样的启发。
例如,一个幼稚的加粗工具会迅速填充字母A上半部分包围的负空间。字体工具不会这么做。相反,它不怕麻烦地保留了包围的负空间,为此下移A中间的一横,同时加粗内部笔划的速度也要比外部笔划慢得多。这一原则在上面的例子中很明显(特别是Helvetica),字体工具的操作中也可以看到这一点:
在字体的加粗过程中,下移A当中的一横以保留包围的负空间
高度不变
即使非标准字体也能正确加粗
保留包围的负空间的启发并非推理而来。但是,许多专业字体都这么做了。如果你仔细查看了上面的示例,会很容易看出原因:它提高了清晰度。在训练过程中,我们的生成式模型自动从所见的例子中推断出了这一原则。然后,我们的加粗界面将其提供给了用户。
事实上,该模型刻画了许多其他的启发。例如,在上面的例子中,字体的高度基本上保持不变,这是专业字体设计的常规。同样,不仅仅单纯加粗字体,而是应用了生成式模型所推断出的更微妙的启发。这样的启发可用于创建具有用户未曾想到的属性的字体。因此,该工具扩展了普通人探索有意义字体空间的能力。
字体工具是一种认知技术的例子。特别是,它包含的原始操作可以被内化为用户思维方式的一部分。在这方面它类似于一个程序,比如Photoshop、电子表格、3D图形程序。每一个都提供了一套新颖的界面原语,这些原语可以被用户内化为他们思维的新基本元素。这种内化新原语的行为是智能增强领域许多工作的基础。
在字体工具展示的想法可以扩展到其他领域。使用相同的界面,我们可以使用一个生成式模型,基于表情、性别和发色等属性来操作人脸图像,基于长度和语气来操作句子,基于化学性质来操作分子:
Sampling Generative Networks. T. White. 2016.
取自《傲慢与偏见》的句子。灵感来自Writing with the Machine. R. Sloan. Eyeo. 2017.
取自Gómez-Bombarelli等著Automatic chemical design using a data-driven continuous representation of molecules一书
这样的生成式界面提供了一种生成式模型的制图学,一种人类使用生成式模型来探索和创造意义的方法。
我们在前文中看到,字体模型会自动推断出字体设计的相对深入的原理,并供用户使用。虽然能够推断出这样深入的原理非常好,但是有时候这样的模型会推断出其他错误或者令人不快的东西。例如,White指出,在某些脸部模型上增加笑容向量不仅会让脸上的笑容更多,还会让脸更女性化。为什么?因为在训练数据中,女性比男性更爱笑。所以这些模型可能不仅学习了有关这个世界的深入的事实,也可能内化偏见或错误信念。一旦知道了这些偏差,经常可以更正。但要找到这些偏差需要对模型进行仔细的审计,而且我们目前还不清楚如何确保这些审计穷尽了偏差。
更宽泛地说,我们可以问为什么属性向量有效,何时有效,何时无效?目前,我们对这些问题的答案所知甚少。
为了让需要接受任意初始字体的属性向量有效,我们可以通过在隐空间这加上同一向量构建相应的粗体。然而,我们可以推理得到,没有理由使用一个单一的常量向量进行位移会有效。我们可能需要进行许多不同的位移。例如,用于加粗衬线字体和无衬线字体的启发有很大不同,因此看起来会涉及到非常不同的位移:
当然,我们可以干点比使用一个常量属性向量更复杂的事。给定一对字体样例(非粗体, 粗体),我们可以训练一个机器学习算法,将表示非粗体版本的潜向量作为输入,并输出粗体版本的潜向量。通过额外的字体重量的训练数据,机器学习算法可以学习生成任意重量的字体。属性向量只是一个极度简单的进行这类操作的方法。
基于这些原因,属性向量似乎不太可能继续作为操作高级特征的方法。在接下来的几年里,会发展出更好的方法。然而,我们仍然可以期望接口提供大致类似于上面所描述的操作,允许访问高层概念,甚至用户定义的概念。该接口模式不依赖于属性向量这样的技术细节。
领取专属 10元无门槛券
私享最新 技术干货