查看原文
其他

如何创造自己的二次元老婆

阳羡 豆皮范儿 2022-11-01

Hello,大家好,这里是「豆皮范儿」,今天给大家带来了《如何创造自己的二次元老婆》的内容。

前面我们分享了人工神经网络、蚁群算法和遗传算法,这次我们来研究一些刺激的,那就是如何用人工智能创造自己的二次元老婆。

书中自有颜如玉!

要生成二次元老婆,常用的技术有 生成对抗网络 GAN、变分自编码器 VAE 和 扩散模型 DM 等,接下来我们来进行初步的学习。

(所有图片均来自网络,不代表实际 AI 结果)

生成对抗网络 GAN

生成对抗网络(Generative adversarial network, GAN)分为两个网络,生成器 Generator 和判别器 Discriminator。简而言之,生成器用于生成老婆,判别器用于判断老婆好不好看,好看则鼓励生成器多画点长这样的老婆,不好看则让生成器少画点这样的老婆。同时,由于操千曲而后晓声,观千剑而后识器,随着看的老婆多了,判别器的审美也会提高,就不会随便来一张图就喊老婆了。

但是这样会存在冷启动的问题,就是在刚开始的时候,生成器不知道该画出怎样的老婆,判别器也不知道怎样的老婆才好看。同时,熟悉绘画的朋友们应该知道,正儿八经画一张图片需要不少的时间,对于计算机来说也是如此。

为了解决不知道怎么画老婆和画老婆很慢这两个问题,我们可以引入“分层法”这个思想,就是把老婆分为线稿和上色两步,生成器先画个线稿,问判别器,嘿兄弟你觉得怎么样,判别器要是觉得太棒了兄弟我喜欢,生成器就会完成上色这一步,不然就画下一份线稿。这样我们就省下了上色的成本,间接降低了冷启动的时间。

当然我们可以继续对分层法使用分层法,这时候给它个新名称叫“迭代法”。除了按照线稿和上色进行分层,我们也可以按照分辨率、精细程度、噪点数量等进行灵活划分。

不过,生成对抗网络也存在难以解决的模式崩溃(Mode Collapse)问题,即生成的图片非常容易形成一致的风格,不够多元化,非常容易看腻。为了更加的多元化,我们需要模型具有一定的普适性,因此我们来尝试一下变分自编码器。

变分自编码器 VAE

变分自编码器(Variational Auto Encoder, VAE)分为编码器 Encoder 和解码器 Decoder 两个网络,使原始老婆经过编码器,再经过解码器得到新老婆,比对两个老婆的差异点,借此来训练这两个网络。

有同学说,这不是绕了一圈又回来了吗。我知道你很急,但你先别急。首先训练好后的解码器是可以独立使用的,这样我们只需要给出老婆的描述信息即可生成全新的老婆,比如:

念完咒语,嘭的一身,新老婆就出现了,简直就像魔法吟唱一样好玩有趣。经常上网的同学发现了,Novel AI 就提供了类似的玩法。

这还不是最好玩的,配合编码器使用,可以进行任意图像的娘化。比如文章开头的图片,平时龇牙咧嘴的高数课本这时候都变得眉清目秀了起来,可谓是书中自有颜如玉。

再给大家看一组互联网上流传的图片,砍人的刘华强都变可爱了哈哈。

不过变分自编码器还是有其局限性的,传统思路生成的图像偏糊,棱角不够分明。

为了使图像更清晰,我们当然可以把输出结果再过一次类似于 waifu2x 这样的 AI,通过 卷积神经网络 CNN 的技术提高图像的分辨率,去除多余的噪点,从而使老婆更加高清。

但是,现在我们可以使用 扩散模型 一步到位。

扩散模型 DM

扩散模型(Diffusion Modal, DM)的思路非常简单粗暴,变分自编码器不就是不能解决老婆糊的问题吗,那我把模糊老婆和清晰老婆分别作为神经网络的输入输出不就行了。而且数据集也非常好找,我找个清晰老婆,给她打个码不就是模糊老婆了吗,顺便还解决了生成对抗网络因为带标签的数据集难找而导致的冷启动问题。

以变分自编码器的角度看,扩散模型同样也可以分为编码器和解码器。编码器负责把老婆打码,通常会使用高斯模糊,因为高斯模糊是服从正态分布的,能够保留更多的图像细节。编码器非常简单,和变分自编码器的编码器不同,它并不是神经网络。而解码器可以是多层的神经网络,每一层的输出是更加清晰的老婆。

为了保障生成图像的清晰度,Novel AI 的娘化功能就是使用 Diffusion Model 功能做的。娘化功能的本质是先把原图经过扩散模型的编码器,也就是高斯模糊一下,然后把这一团马赛克经过解码器,也就是一层层的人工神经网络,最后能得到一份清晰的老婆。

拿我们最爱的坤坤举例,Novel AI 交出了如下的答卷:

非常的可爱,非常的高清啊!

结语

相信大家已经学会如果使用人工智能生成老婆了,AI 在手,老婆不愁,哈哈。

最后使用一张图复习下本次的学习结果。

参考资料

  1. Novel AI 官网 https://novelai.net/

  2. GAN生成图像综述 https://zhuanlan.zhihu.com/p/62746494

  3. 【学习笔记】生成模型——变分自编码器 http://www.gwylab.com/note-vae.html

  4. waifu2x https://github.com/nagadomi/waifu2x

  5. What are Diffusion Models? https://lilianweng.github.io/posts/2021-07-11-diffusion-models/

  6. NovelAI Improvements on Stable Diffusion https://blog.novelai.net/novelai-improvements-on-stable-diffusion-e10d38db82ac



加入/联系我们

迎关注,公众号后台留言

The     End

如果你章对有帮助,有启发,我想请你帮我2个小忙:

1、点个「在看」,让更多的人也能看到这篇文章内容;

2关注公众豆皮范儿」,公众号后台回复「加群」 加入我们一起学习;

关注公号的福利持续更新,公众号后送学习资料:

1、豆皮范回复「vis」,可以获取更多可视化免费学习资料。

2、豆皮范儿后台回复「webgl」,还可以获取webgl免费学习资料。

3、豆皮范儿后台回复「算法」,还可获取算法的学习资料。

4、豆皮范儿后台回复「招聘」,获各种内推



点个赞,证明你还爱我


内推字节跳动,加入我们,点击➡️阅读原文

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存