Learning to Paint with Model-based Deep Reinforcement Learning
- Abstract
- Introduction
- Related work
- Painting Agent
- Overview
- The Model
- Learning
- Action Bundle
- WGAN Reward
- Network Architectures
- Stroked-based Renderer
- Neural Renderer
- Stroke Design
- Training
- Ablation Studies(对比实验的结果)
- Model-based vs. Model-free DDPG
- Rewards
- Stroke Number and Action Bundle
- Conclusion
- 论文地址
Abstract
通过结合神经渲染器和基于模型的深度强化学习(DRL),教机器像人类画家一样画画。agent可以产生笔画的坐标点、半径、透明度、颜色值等。
Introduction
本文定义了人工智能绘画,agent可以按顺序在画布上绘制笔画,以生成类似于给定目标图像的绘画。
agent绘制纹理丰富的图像存在三个挑战:
- 首先,要像人一样绘画,需要agent具有将给定目标图像在空间上分解为笔画,然后以正确顺序将它们画在画布上的能力。agent需要可视地解析目标图像,了解画布的当前状态,并制定有关未来笔画的预见计划。为了解决此问题,一种常见的方法是在每个步骤中为笔画分解提供有监督的损失。这种方法在计算上是消耗非常大的。同样,纹理丰富的图像绘画通常需要数百次笔画才能生成与目标图像相似的绘画,这比涂鸦,素描或字符书写要高数十倍。为了处理这样的长期计划任务,强化学习(RL)是一个不错的选择,因为RL的目的是使整个绘画过程的累积奖励最大化,而不是使每个步骤的监督损失最小化。这使agent具有远见卓识,计划笔画分解和大量步骤的绘画。此外,本文采用对抗训练策略来训练绘画agent。该策略已成功用于像素级图像生成任务,并且还可以帮助agent进行绘制;
- 第二,细微的笔画参数空间(包括笔画位置和颜色)对于绘画至关重要。先前的工作将笔画参数空间设计为离散的,并且每个参数只有有限的选择数量,这不再适用于纹理丰富的绘画。由于大多数RL算法处理细粒度参数空间的能力较弱(例如 深度Q网络(DQN)和策略梯度(PG)),因此在连续空间上定义笔画参数提出了巨大挑战。相反,深度确定性策略梯度(DDPG)设计用于处理连续的动作空间,使用DDPG训练的agent已经显示出微妙的控制性能。本文在方法中采用DDPG,以使agent具有绘画能力;
- 第三,高效的绘画模拟器对于agent的性能至关重要,尤其是在画布上绘画数百个笔划的情况下。大多数工作通过与模拟的绘画环境进行交互来绘画。这种方法既费时又不灵活。取而代之的是,本文使用神经网络(NN)训练端到端渲染器,该渲染器将笔画参数直接映射到笔画。渲染器可以实现各种笔画设计。 而且,渲染器是可以与DDPG巧妙地组合在一起的差分模型,是一种基于模型的DRL算法,极大地提高了原始DDPG的性能。
强化学习(RL)旨在最大化整个绘画过程的累积回报,而不是最小化每一步的监督损失,这使得agent有先见之明计划笔画分解和大规模步骤绘画。此外,本文采取对抗训练策略来训练绘画agent。这种策略成功地用于像素级图像生成任务,也有助于agent绘制。
使用神经网络(NN)来训练端到端渲染器,该渲染器直接将笔画参数映射到笔画。渲染器可以实现各种笔画设计。此外,渲染器是差分,可以与DDPG巧妙地结合作为一种基于模型的DRL算法,这极大地提高了原始DDPG的性能。
总而言之,本文的贡献如下:
- 本文使用基于模型的DRL算法解决绘画任务,允许agent按顺序将目标图像分解为数百个笔触,以生成类似于目标图像的绘画;
- 神经渲染器用于高效绘画,并且还与各种笔划设计兼容。 此外,神经渲染器有助于本文提出的基于模型的DDPG;
- 本文所提出的绘画agent可以很好地处理多种类型的目标图像,包括数字,门牌号,肖像和自然场景图像。
Related work
基于笔画的渲染(SBR)是一种通过放置离散元素(例如笔画或点画)来创建非真实感图像的自动方法,这与本文提出的任务类似。大多数基于笔划的渲染算法会贪婪地专注于每个步骤或需要用户交互。
与本文的agent类似,SPIRAL是经过对抗训练的RL agent,能重建图像的高级结构。StrokeNet结合了可区分的渲染器和递归神经网络(RNN)来训练agent进行绘画,但是无法在彩色图像上进行泛化。这些方法不足以处理这项复杂的任务,并且需要大量的计算资源。Doodle-SDQ训练agent以DQN模拟人类涂鸦。先前,Sketch-RNN使用顺序数据集在草图中获得良好的结果。Artist Agent探索使用RL自动生成单个笔画。
这些算法是无模型的,这意味着agent仅需要根据来自环境的样本来最大化期望的回报。对于某些任务,agent可以通过做出预测来更好地了解环境。另一种有效的方法是建立一个生成神经网络模型。 Gu等人探索使用基于模型的方法来加速DQN。
Painting Agent
Overview
绘画agent的目标是首先用笔画表示分解给定的目标图像,然后在画布上绘制笔画以形成绘画。 为了模仿人类的绘画过程,agent被设计成基于观察画布的当前状态和目标图像来预测下一个笔画。 更重要的是,为了使agent获得一次预测一个合适的笔画的能力,即笔画与先前的笔画和未来的笔画很好地兼容,它需要精心设计反馈机制。 本文假设反馈应该是完成一笔绘画后获得的奖励,并且agent在完成所有笔画之后追求最大化累积奖励。 本文给出了图2中整体架构的图表。
(a)在每一步,the policy (aka actor)都会根据画布和目标图像给出一组笔画参数。 渲染器跟据这一组笔画参数在画布上渲染笔画。(b)在学习期间,the evaluator (aka critic)根据目标图像和渲染的画布评估动作。 在本文的实现中,policy,evaluator和渲染器都是使用神经网络实现。
The Model
Learning
在本节中,将介绍如何使用精心设计的基于模型的DDPG训练agent。
在原始的DDPG中,Critic需要学习隐式建模环境。在基于模型的DDPG中,通过神经渲染器对环境进行了显式建模,这有助于训练高效的代理。
Model-based DDPG
本文首先描述原始的DDPG,然后引入基于模型的DDPG来有效地训练agent。按照定义,绘画任务中的动作空间是连续的,具有高维度。将动作空间离散化以适应某些DRL方法(例如DQN和PG),将失去笔画表示的精度,并且需要手动结构设计中的大量工作来应对离散空间中参数组合的爆炸式增长。DPG被提出使用确定性策略来解决由高维连续动作空间引起的困难。此外,提出了将DPG与NN相结合的DDPG,以增强其在许多控制任务中的性能。
原始的DDPG
在原始DDPG中,有两个网络:the actor Π(s)Π(s)Π(s) and critic Q(s;a)Q(s; a)Q(s;a)。
我们无法使用原始DDPG来训练一名表现出色的绘画agent,因为该agent很难在学习过程中很好地建模由任何类型的真实世界图像组成的复杂环境。(为什么不能?因为实验结果不好吗?文章中这里解释得不是很清楚)
基于模型的DDPG
本文将DDPG与可以基于环境访问渐变的actor称为基于模型的DDPG。使用基于模型的DDPG进行agent的优化与使用原始DDPG进行的优化不同。
Critic仍然预测该状态的预期奖励,但不再包括当前动作引起的奖励。
Action Bundle
跳帧是许多RL任务的强大参数。该agent只能观察环境,并且每k帧执行一次操作,而不是一帧。该技巧使agent具有更好的能力来学习在时间上更远的状态和动作之间的关联。受此技巧的启发,我们使actor每一步输出了k个笔画的参数。渲染器将同时渲染k个笔画,以大大加快绘画过程。实验发现每次增加五个笔画效果最好。值得注意的是,为了保持一致性,我们将奖励折扣系数从γγγ修改为γkγ^kγk。
WGAN Reward
GAN已被广泛用作迁移学习,文本模型和图像恢复中的特定损失函数,因为它具有测量生成数据和目标数据之间分布距离的强大能力。Wasserstein 生成对抗损失函数 (WGAN Loss)。我们需要度量画布和目标图的相似度以给出奖励函数,我们发现 WGAN Loss 是一种比欧几里得距离更好的度量,使得最后画出来的图细节更丰富。
Network Architectures
由于现实世界图像的高度可变性和高度复杂性,我们使用类似于ResNet-18的残差结构作为actor和critic中的特征提取器。actor与批处理归一化(BN)配合良好,但BN不能显着加快critic训练的速度。本文对critic使用WN和Translated ReLU(TReLU)来稳定训练。另外,本文使用CoordConv作为actor和critic的第一层。对于判别器,本文使用与PatchGAN类似的网络结构。本文在判别器中也使用了WN和Translated ReLU(TReLU)。在原始DDPG论文之后,本文使用了软目标网络,这意味着为actor和critic创建一个副本,并通过让他们缓慢地跟踪学习的网络来更新其参数。即分online network和target network。下图是网络结构图:
Stroked-based Renderer
Neural Renderer
使用神经网络生成笔画有两个优点:
- 首先,神经渲染器可以灵活地生成任何类型的笔画,并且比手工制作笔画模拟器更有效。
- 其次,神经渲染器是可微分的,可以很好地为原始DDPG建模环境,从而提高agent的性能。
具体地,向神经渲染器馈送一组笔画参数,然后输出渲染的笔画图像S。使用图形渲染器程序随机生成训练样本。 神经渲染器可以通过监督学习快速训练并在GPU上运行。 因此,本文获得了一个可区分且快速运行的环境。一些简单的几何渲染可以在没有神经网络的情况下完成,也可以给出渐变。 但神经网络可以帮助本文省略繁琐的公式计算。神经渲染器网络由几个完全连接的层和卷积层组成。 采用Sub-pixel来增加网络中笔画的分辨率。
Stroke Design
Training
Ablation Studies(对比实验的结果)
在本节中,主要研究组件或技巧(包括基于模型的DDPG,Action Bundle和WGAN奖励)如何影响agent的性能。为简单起见,本部分仅在CelebA上进行实验。
Model-based vs. Model-free DDPG
本文探索了与原始DDPG相比,基于模型的DDPG有多少优势。众所周知,原始的DDPG只能以隐式方式对环境进行建模,并具有对环境的观察和回报。此外,高维动作空间还限制了无模型方法在绘画任务中使用。为了进一步探索无模型方法的功能,我们采用了受PatchGAN启发的方法来改进原始DDPG。本文先将图像分成小块,然后再将这些小块放入critic中,然后使用小块级别的奖励来优化critic。本文将此方法称为PatchQ。 通过在训练中提供更多的监督信号,PatchQ可以提高采样效率并提高agent的性能。
本文在图7(a)中显示了使用不同算法训练的agent的性能。基于模型的DDPG优于原始DDPG和带有PatchQ的DDPG。尽管与基于模型的DDPG相比性能不佳,但具有PatchQ的DDPG却在性能上大大优于原始DDPG。
Rewards
Stroke Number and Action Bundle
绘画的笔画数对于最终的绘画效果至关重要,特别是对于纹理丰富的图像而言。本文训练可以绘制100、200、400和1000笔画的agent,损失曲线如图7(c)所示。据观察,更大的笔画数有助于更好的绘画效果。因为更多的笔画有助于重建画中的细节。
Action Bundle是加快绘画过程的技巧。除此之外,我们还将探讨Action Bundle如何影响agent的性能。本文在图7(b)中显示了Action Bundle的几种设置的损耗曲线。根据损失曲线,每次增加5个笔画的可以获得最佳的效果。
Conclusion
论文地址
Learning to Paint with Model-based Deep Reinforcement Learning