教你怎么用“Excel”搞定一个生成网络

Posted chuangye95

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教你怎么用“Excel”搞定一个生成网络相关的知识,希望对你有一定的参考价值。

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

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

 

技术分享图片

 

 

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

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

到底怎么玩?

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

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

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

 

技术分享图片

 

 

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

面部特征的连续变化

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

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

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

 

技术分享图片

 

 

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

 

技术分享图片

 

 

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

 

技术分享图片

 

 

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

提取“金发”属性

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

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

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

 

技术分享图片

 

 

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

 

技术分享图片

 

 

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

 

技术分享图片

 

 

其他基本操作

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

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

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

 

技术分享图片

 

 

用表格理解网络模型空间

潜在变量

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

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

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

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

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

 

技术分享图片

 

 

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

 

技术分享图片

 

 

属性向量

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

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

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

 

技术分享图片

 

 

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

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

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

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

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

推理

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

 

技术分享图片

 

 

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

创建可调节人脸

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

 

技术分享图片

 

 

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

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

以上是关于教你怎么用“Excel”搞定一个生成网络的主要内容,如果未能解决你的问题,请参考以下文章

ZooKeeper的十二连问,一篇文章教你搞定计算机网络面试

手把手教你利用Python网络爬虫获取APP推广信息

XCode插件因为升级不能用了怎么办?几个步骤教你搞定

用Python控制Excel实现自动化办公,手把手教你

Java POI怎样判断导出的Excel数据是不是正确地保存到本地。考虑网络中断,客户不正确操作等因素。

三招教你查看WiFi是不是被盗用