强化学习是像 Bob Ross 这样的绘画的正确选择吗?

机器算法验证 强化学习 生成模型
2022-03-18 23:49:20

我的工作场所有一个为期 2 周的代码挑战,其中涉及生成一种算法,以尽可能接近地重现 100 个样本 Bob Ross 的画作,并给出一些限制:

  • “绘画”作为 JSON 文件提交,其中包含背景颜色和一系列“笔触”。
  • 笔触具有起点、终点、半径和颜色。
  • 每幅画的笔画限制为 500 笔。
  • 所有 100 幅参考画都具有完全相同的尺寸和纵横比:450x337。

示例 Bob Ross 原创。

服务器“绘制”每个提交,然后与参考绘制进行每像素差异。提交的绘画中的每个像素都根据它与源像素值的相似程度在标量 0-1 范围内进行评分,并且绘画的分数是所有像素分数的平均值。运行比赛的人已经发布了可以在 MacOS / Linux 的命令行上运行的绘画和评分图像库。

我觉得这个问题应该适合 ML,因为我们有一种机制可以对算法尝试的每次尝试进行细粒度评分。生成和评分一幅画只需要大约 200 毫秒。不幸的是,我基本上只是一个 ML 狂热分子(我听了很多播客)并且不知道我应该如何建模这个问题。

让算法进行 500 次完全随机的笔画,然后对输出进行分级,这将花费很长时间才能收敛到有用的东西上。我考虑将笔画的颜色空间限制为每幅画中最常见的 64 种颜色(通过在开始绘画之前运行直方图),并限制算法的画笔大小选择。

作为记录,只需提交一张最常见颜色的实心图像,我就获得了 65% 的分数。目前获胜的算法大多只是将绘画转换为网格,并将每个扇区的平均颜色点放在每个扇区的顶部。

2个回答

我建议为此搜索使用遗传算法 (GA) 或其他全局优化器,因为当您将绘画“构建”成更复杂的状态时,您的顺序得分可能不是最佳指南。

有几个类似谜题的例子,比如用圆圈建造蒙娜丽莎,这里有一个同样问题的最新例子,带有代码示例

GA 方法基本上由 100 组随机生成的笔画组成,您可以对这些笔画进行评分并评估最佳选项。然后,您从总体中选择,偏爱得分最高的解决方案(有很多选择,例如仅从最高分数中挑选,到使用有利于最高分数的偏态分布)。创建成对的解决方案并通过从第一个父母那里获取一些部分和从第二个父母那里获取一些部分来“培育”它们。添加一点随机噪音作为“突变”。当你做的足够多以创建第二代时,重复整个过程。有很多变化。

RL也应该有效,但您可能有一项艰巨的任务是创建一个策略或价值函数,该函数可以学习从笔划动作和当前状态到最终策略或价值的映射。不过从理论上讲,这绝对是可行的。状态是当前图像。该动作是下一个笔划的选择。奖励是分数的提高,并且可能应该对每个动作进行评估(但可以每 10 次、每 50 次或什至仅在结束时进行一次 - 更长的延迟将更多地挑战 RL,但可能允许更快的迭代)。大多数 RL 算法,例如 Q-learning,应该能够应对避免“死胡同”的结果,即早期的好分数是错误的线索,需要修改。

我不知道,但很想看看 GA 还是 RL 更有效地解决了这个问题。. . 我的直觉是GA将是要走的路。

我认为您对 RL 对这项任务的怀疑是有根据的。但是已经有一些研究建立神经网络来重现画家的风格。这项工作利用了卷积神经网络的力量。

艺术风格的神经算法” Leon A. Gatys、Alexander S. Ecker、Matthias Bethge

在美术,尤其是绘画中,人类已经掌握了通过在图像的内容和风格之间构成复杂的相互作用来创造独特视觉体验的技能。到目前为止,这个过程的算法基础是未知的,并且不存在具有类似能力的人工系统。然而,在视觉感知的其他关键领域,例如物体和面部识别,最近被称为深度神经网络的一类受生物启发的视觉模型证明了接近人类的性能。1、2 这里我们介绍了一个基于深度神经网络的人工系统创造高感知质量的艺术图像。该系统使用神经表示来分离和重组任意图像的内容和风格,为艺术图像的创建提供神经算法。而且,