excel短代码生成(不会编程没关系)

晓查 发自 凹非寺

量子位 报道 | 公众号 QbitAI

编程不是人人都会,但Excel电子表格就是当代白领的必备技能啊!如果用Excel实现图像生成,那岂不是。。。

最近还真有人发明了一种SpaceSheet工具,它就是简单的电子表格界面,即使你完全不会编写代码,也能借助它理解生成对抗网络(GAN)是如何制造图像的。

excel短代码生成(不会编程没关系)(1)

作者把它设计成了一个网页Demo,供用户直接访问:

https://vusd.github.io/spacesheet/

到底怎么玩?

SpaceSheet应用程序由两部分组成:

左侧是数据选择器,右侧是电子表格界面

以生成面部图像为例。在右侧的表格个中选中某个位置,再点击点击左侧的元素来选择人脸。

excel短代码生成(不会编程没关系)(2)

通过电子表格顶的按钮,可以对填入的人脸进行以下一系列操作。

面部特征的连续变化

通过线性插值(Linear interpolation,LERP),可以按一个值到另一个值的的“距离”,等间距地插入一些图片。

顶部操作栏中的LERP按钮使可以在电子表格中的选定单元格之间进行线性插值。

通过线性插值的方法,产生两张人脸之间的平滑过渡图像,可以帮助我们理解面部特征的连续过程:

excel短代码生成(不会编程没关系)(3)

它不仅支持一维插值,还只支持二维插值。指定四个顶点,可以形成一个插值的“矩阵”,展示4张面部图片之间的连续变化:

excel短代码生成(不会编程没关系)(4)

另外,除了在两个面部图像的“中点”插值,还能通过滑动条(SLIDER)调节偏移的量。

excel短代码生成(不会编程没关系)(5)

如果说前面的线性插值是离散的,那么滑动条就给我们提供了一种连续变化的图像。它与两张已知图像之间“差异”是人为可控的。

提取“金发”属性

这套应用程序还可以分离出人脸中的“属性向量”(Attribute Vectors),

何谓属性向量?以人的面部特征为例。

首先,选择一个黑发的人脸,再选择一个金发的人脸。对二者求差(MINUS),这个差值就是“金发”特征,于是我们获得了一个金发的属性向量

excel短代码生成(不会编程没关系)(6)

获得了这个属性向量后,我们就可以通过求和操作(SUM)给任何人加上金发了:

excel短代码生成(不会编程没关系)(7)

同样的,我们也可以给人减去(MINUS)属性向量,获得一个黑发的面部图像:

excel短代码生成(不会编程没关系)(8)

其他基本操作

除了以上几项操作外,我们还能对面部图像求“距离”、求“乘积”等。

面部图像明明是一张图片,为何能做加减法、求距离呢?

这就不得不提潜在空间,每张面部图像都是在这个空间中的一个个向量,我们当然可以对这些向量做四则运算。运算的结果是这个空间中的另一个向量,我们可以把它解码成一张图片。

excel短代码生成(不会编程没关系)(9)

用表格理解网络模型空间

潜在变量

面部图像组成的潜在空间是由生成神经网络生成的。

生成神经网络是一类机器学习算法,从一组训练数据中学习,并构建广义模型。 然后我们可以对这些模型进行采样,以生成新数据样本,其结果则是基于我们的训练数据。

这是通过在比原始数据本身参数更少的参数集上训练神经网络来实现的。 这样做,模型学习到了更紧凑的训练数据表征。这些表征被称为潜在变量。

从潜在空间采样的潜在变量可以被解码成可观察的数据样本。

举个例子,如果我们要设计一个红酒杯,由两个维度可以进行放大操作,让它变得更宽,或者更高。变大就可以理解为一个潜在变量。

excel短代码生成(不会编程没关系)(10)

我们可以在这个空间中探索,但是遇到更复杂的图像,比如人脸怎么办呢?SpaceSheet能直观地帮助我们理解变量在潜在空间中的连续变化。

excel短代码生成(不会编程没关系)(11)

属性向量

通过减法,可以从潜在变量中分离出特定属性。 通过减法求得的差被称为属性向量,并且可以应用于其他潜在变量,转移它的属性。

例如,通过计算笑脸图像的平均矢量并减去没有笑容的脸部图像的平均矢量,在脸部的潜在空间中构建“微笑矢量”。

然后可以将该向量添加到潜在变量中或从潜在变量中减去该向量以使它们或多或少地“笑脸”。

excel短代码生成(不会编程没关系)(12)

尽管提取属性向量被证明是有效的,但是它还会受到其他“相关属性”的影响,说明属性之间存在着强相关性。

例如,从上图中我们可以发现,“微笑矢量”的应用导致为人脸添加更多女性属性(女性更爱微笑?)。

SpaceSheet就是让用户在这个空间中执行计算,在电子表格里实时显示,使用户能够立即观察到操作结果并采取相应措施。

利用这套功能强大的电子表格界面,能够帮助设计者在潜在空间内进行设计实验。即使非专业人士也能简单上手。

对于面部图像这样更复杂的空间,SpaceSheet还有一些“高级玩法”更有助于我们理解生成网络的工作过程。

推理

在线性插值是在两个变量之间插入一个变量。如果在两个变量之外,按照线性的方式外推,我们就能够推理出面部图片演化的方向。

excel短代码生成(不会编程没关系)(13)

以上表格图像中,左上、右上、左下三张人脸图像都是从左侧数据库中选取,在选中它们后选择“LERP”,就可以得出右下角人脸图像。这张图是根据前3张图推理得出的。

创建可调节人脸

用户还能根据已有图像,创建一个可调节图像,它与已知图像的“差异”是认为可控的。

excel短代码生成(不会编程没关系)(14)

如上图,MOD单元格中有一个“控制杆”,使用户能够围绕给定的潜在变量进行调整,以获得类似的潜在变量。

二者的差异程度可以通过控制杆与单元格中心的角度和距离来控制,想怎么变就怎么变。

更多数据集

除了字体和人脸之外,网站上还提供颜色Word2VecMNIST手写数据集供选择。

研究生导师网络

SpaceSheet的实现离不开作者自创的“神经网络”——研究生导师网络

excel短代码生成(不会编程没关系)(15)

作者的神经网络——“研究生导师网络”

Tom White新西兰惠灵顿大学设计学院的一名高级讲师, 他目前的研究重点是神经网络与设计师合作的创造潜力。

这套工具是由他和他的研究生Bryan Loh组成的“神经网络”共同完成的:

把随机idea输入给“生成器”研究生,然后把研究生的idea结果输入给“判别器”导师,再确定研究成果是否可以发表。

传送门

项目地址:

https://vusd.github.io/spacesheet/

GitLab地址:

https://gitlab.com/bryanlohjy/spacesheets-mdi-eval

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页