热门标签 | 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


推荐阅读
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 由二叉树到贪心算法
    二叉树很重要树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。单就面试而言,在 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • Django 使用slug field时遇到的问题 ... [详细]
  • Django Token 认证详解与 HTTP 401、403 状态码的区别
    本文详细介绍了如何在 Django 中配置和使用 Token 认证,并解释了 HTTP 401 和 HTTP 403 状态码的区别。通过具体的代码示例,帮助开发者理解认证机制及权限控制。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • HDU 2871 内存管理问题(线段树优化)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2871。本题涉及内存管理操作,包括重置、申请、释放和查询内存块。通过使用线段树进行高效管理和维护。 ... [详细]
  • 本文介绍了如何在iOS应用中自定义导航栏按钮,包括使用普通按钮和图片生成导航条专用按钮的方法。同时,探讨了在不同版本的iOS系统中实现多按钮布局的技术方案。 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
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社区 版权所有