为了探究这些隐向量是如何编码动物形态特征的,在下图中,我们首先从两张非常不同的猪简笔画中获得隐向量,在这个例子中是猪的头(绿框中)和猪的整体(橙色框中)。我们希望了解我们的模型是如何学会重建猪的形象的,一种方法是在两个不同的隐向量之间进行差值,atv,并在每一步隐向量生成简笔画后进行可视化。如下图所示,我们可视化了猪头的素描是如何慢慢变成整头猪的。并展示了模型是如何理解猪这个概念的。我们可以看到隐向量控制了相对位置,原图的鼻子形成了头,而后又加入了身体和腿。
从一个训练猪简笔画的模型之中生成的隐空间插值。 那么,如果模型同时训练了多种动物会是什么样子?在下图中,我们生成了从猫头和整头猪输入而产生的隐向量差值素描。我们可以看到模型师如何将猫的脑袋慢慢变成整只猫,然后又变成一头猪的。就像儿童在学习绘画一样,我们的模型通过构建动物的头、腿、尾巴和身体来画出自己想要的动物。我们还可以看到,模型可以从猫头逐渐过渡到猪头。
隐空间差值生成的猫到猪处理过程可视化图,模型同时训练了猪和猫的概念。 以上这些插值示例表明隐向量确实对素描中的概念特征进行了编码。那么,我们现在是否可以让模型加入原图中没有画出的特征,比如为一个猫头的素描加上身体?
使用隐向量算法探索学习抽象概念之间的联系。 确实,我们发现简笔画绘制类比对于训练猫和猪的模型是可能的。例如,我们可以从整个猪的隐向量减去被编码的猪头的隐向量,得到一个表征身体概念的向量。把这一区别加到猫头的隐向量之中得到一个完整的猫(即,猫头+身体=整个猫)。这些简笔画类比允许我们探索模型组织其隐空间以在生成简笔画的复制中表征不同概念的方式。 创新性应用 除了这一工作的研究部分,我们也对 sketch-rnn 的创新性应用深感激动。例如,即使在最简单的应用案例中,图案设计者也可使用 sketch-rnn 生成大量相似却又独一无二的设计用语纺织品或者墙纸印刷。
从单一输入简笔画(绿框和黄框之中的猫)生成的相似但又独特的猫。 正如之前看到的,用于训练画猪的模型可被用来绘制像猪一样的卡车,如果输入一个卡车的简笔画。我们可以将这一结果扩展到应用,以帮助创作型设计者处理抽象设计,从而更好地与目标受众产生共鸣。 例如,在下图中,我们往训练绘制猫的模型之中输入 4 个不同椅子的简笔画,得到了 4 只像椅子一样的猫。我们可以再进一步把之前提及的插值方法(interpolation methodology)包含进来,探索像椅子一样的猫的隐空间,并生成大量的设计以供选择。
探索被生成的椅子猫(chair-cat)的隐空间。 对不同对象之间隐空间的探索可间接使创作型设计者找到有趣的交叉点以及不同绘画之间的关系。
探索每个物体的被生成简笔画的隐空间。从左到右从上到下的隐空间插值(interpolation)。 我们可以使用 sketch-rnn 解码器模块作为独立模型(standalone model),并训练它预测不完整简笔画的不同补画方式。通过为未完成作品提供可选择的建议,这一技术可应用于协助艺术家进行创作。下图中,我们描绘了不同的不完整简笔画(红色),并且让模型以不同的可能方式补全这些简笔画。
这个从不完整的简笔画(图中垂线左侧)开始,并据此生成不同的完整作品。 (责任编辑:本港台直播) |