使用卷积网络生成大图像的可行性

人工智能 神经网络 机器学习 深度学习 卷积神经网络
2021-10-18 07:17:18

在过去的几个月里,我一直在学习神经网络,并且正在考虑一些有趣的项目,以巩固我对这项技术的理解。

昨晚想到的一件事是一个系统,它可以拍摄电影海报的图像并预测电影的类型。我想我对执行此操作所需的内容有很好的理解(将数据集放在一起,对其进行扩充,下载在 imagenet 上训练的 convnet,在我的数据集上对其进行微调,然后从那里开始)。

我还认为最后将系统向后运行会很酷,这样我就可以输入诸如“恐怖”之类的类型并让系统生成恐怖电影海报。我预计这会很糟糕,因为我不是一个专家研究团队,但我认为我可以在它上面进行一些有趣的破解,即使它只会产生难以理解的结果。

这是我难以理解的:一方面,我所看到的所有其架构的卷积网络似乎都依赖于非常小的方形输入图像(大约 220 像素 x 220 像素 iirc)和电影海报是矩形的,并且生成的海报必须具有更大的尺寸才能让人类理解它。我看过一些研究人员使用卷积神经网络生成图像的论文示例,例如生成鸟和花图片的对抗系统,以及在给定扫描内部的摄像头馈送时生成接下来几帧视频的系统一个房间,但所有这些生成的图像似乎都是我一直在描述的小正方形。

另一方面,在过去一年左右的时间里,我看到了很多“深梦”图像,它们是由卷积网络生成的,尺寸远大于 ~220px × ~220px。

这是我的问题:我是否有可能构建我所描述的系统,该系统采用电影类型并输出大小如 400 像素 x 600 像素的电影海报?[我不是在问生成的海报是否有任何好处——我很好奇是否可以使用卷积神经网络来生成这种大小的图像。]

如果可能的话,考虑到这些系统似乎期望小的、方形的输入图像,这怎么可能呢?

2个回答

您识别图像的方式(图像 -> 类型)将与其他方式(类型 -> 图像)非常不同。对于前者,您对所涉及的内容是正确的。

对于后者,如果你想要大图像,那么 GAN 确实是要走的路。目前,我们可以生成的最大图像约为 220 x 220 像素,主要是由于 GPU 上的内存限制。使用矩形图像没有根本问题,只是碰巧我们使用正方形。您也可以使用相同的架构来训练矩形数据。

您看到的某些生成图像(例如来自 DeepDream 或 NeuralStyle)较大的原因是它不是 GAN。这两个都不是标准意义上的生成模型,即使它们在技术上确实“生成”图像。相反,他们只是通过在专门设计的损失函数上运行反向传播来修改现有图像。

TLDR:你的电影类型识别想法是合理的。对于一代,看看这样的事情(https://github.com/Newmu/dcgan_code),其中亚历克生成专辑封面而不是海报。如果您有足够的数据,它将做一些不明智的事情。

生成模型和判别模型之间存在根本区别,为了简化它,我们可以说

  • 给定S语义空间(低维)和

  • 给定A外观空间(高维空间,例如W×H图片)

判别器学习函数f(A)S生成器学习函数g(S)A

根据这种形式主义,我们可以说gf1一个简单的原因是f不可逆,因为它不是单射的,实际上 2 个不同的恐怖电影海报将被分配相同的标签“恐怖电影”(假设网络运行良好:))

所以你必须找到另一种方法来定义映射SA这种工作与生成模型有关

当然,GAN 在图像生成方面是最先进的,但从技术上讲,它们并不是唯一的选择,例如,您可以使用 VAE,因为解码器子网络是一个生成模型

然而,从实际的角度来看,预计 VAE 的结果不会那么好:你可能会得到像这样模糊的东西

VAE1

所以选择GAN,但要注意正确训练它们绝对不容易