热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LearningtoPaintwithModel-basedDeepReinforcementLearning

本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。

Learning to Paint with Model-based Deep Reinforcement Learning

  • Abstract
  • Introduction
  • Related work
  • Painting Agent
    • Overview
    • The Model
    • Learning
      • Model-based DDPG
        • 原始的DDPG
        • 基于模型的DDPG
    • 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

在这里插入图片描述

  • State and Transition Function:状态空间由agent可以观察到的环境中的所有可能的信息构成。我们将状态定义为三个部分:画布,目标图像和步骤编号。
    在这里插入图片描述
    转移函数st+1=trans(st;at)s_{t + 1} = trans(st; at)st+1=trans(st;at)给出状态之间的转移过程,该过程通过在当前画布上绘制笔画来实现。

  • Action:动作空间是agent可以执行的一组操作。 一个动作ata_{t}at是一组参数,用于控制在步骤ttt绘制的笔画的位置,形状,颜色和透明度。We define the behavior of an agent as a policy function ΠΠΠ that maps states to deterministic actions
    在这里插入图片描述
    agent观察状态sts_{t}st然后给出下一个笔画的笔画参数ata_{t}at。The state evolutes based on the transition function
    在这里插入图片描述

  • Reward:奖励功能用于评估policy做出的动作。 选择合适的度量来测量画布和目标图像之间的差异对于训练绘画agent至关重要。 奖励的设计如下:
    在这里插入图片描述
    为了确保最终画布类似于目标图像,应该最大化上述累积奖励,因为要保证损失越来越小。即最大化累计奖励Reward:
    在这里插入图片描述


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


推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 如何从BAM文件绘制ATAC-seq插入片段长度分布图?
    在ATAC-seq数据处理中,插入片段长度的分布图是一个重要的质量控制指标,它能反映出核小体的周期性排列。本文将详细介绍如何从BAM文件中提取并绘制这些数据。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 微软等企业捐赠首批AI有声读物,助力视障人士
    12月2日,微软联合鹿音苑文化传播公司及150多名志愿者,共同捐赠了首批由人工智能生成的有声内容,旨在为视障人士提供更多文化资源。 ... [详细]
  • 深入解析RelativeLayout、LinearLayout与FrameLayout的性能差异
    本文详细分析了FrameLayout和LinearLayout的性能对比,通过具体的测量数据和源码解析,探讨了不同布局在不同场景下的性能表现。 ... [详细]
  • PHP函数的工作原理与性能分析
    在编程语言中,函数是最基本的组成单元。本文将探讨PHP函数的特点、调用机制以及性能表现,并通过实际测试给出优化建议。 ... [详细]
  • 自动驾驶中的9种传感器融合算法
    来源丨AI修炼之路在自动驾驶汽车中,传感器融合是融合来自多个传感器数据的过程。该步骤在机器人技术中是强制性的,因为它提供了更高的可靠性、冗余性以及最终的 ... [详细]
  • LeetCode 实战:寻找三数之和为零的组合
    给定一个包含 n 个整数的数组,判断该数组中是否存在三个元素 a、b、c,使得 a + b + c = 0。找出所有满足条件且不重复的三元组。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
author-avatar
拍友2502911223
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有