论文部分内容阅读
作为机器学习中的一个主要分支,强化学习从智能体和环境之间的交互数据中学习最优控制策略。通过计算目标函数对策略参数的导数一直是解决强化学习问题的主流方向,近年来基于演化算法的强化学习算法不断涌现。相较于梯度算法,演化算法一方面不需要计算梯度,缩短了训练时间;另一方面演化算法能够很好的进行并行化,运行效率更高。演化算法虽然能在短时间内完成模型的训练,但是训练过程需要和环境交互的次数远远高于梯度强化学习算法。对于强化学习问题,与环境的交互是需要一定成本的,尤其是在现实问题上的应用,如强化学习应用于机器人操纵上,在训练一开始模型失败的可能性很高,很可能出现机器人损坏或者其他消耗。因此我们希望通过对强化学习算法的改进来减少智能体和环境的交互次数,或者在相同交互次数限制下得到更好的性能。本文的两个工作都基于负相关搜索思想,利用其在目标空间多个不同区域同时搜索的特性和在搜索行为层次上为演化提供的多样性来提升算法的性能。在论文的第一个工作中,我们将负相关搜索思想和自然演化策略算法相结合,提出了负相关自然演化策略算法NCNES。NCNES算法的基本设计基于自然演化策略算法框架,我们根据负相关搜索思想,设计了一个兼顾解质量和多样性的目标函数,并推导出目标函数的自然梯度。为了验证算法的性能,我们采用梯度强化学习算法A3C、PPO和演化强化学习算法CES作为对比算法,在街机游戏上进行了实验。结果表明,NCNES算法在Enduro、Freeway和Beam Rider三个游戏上表现出了有竞争力的性能,同时训练过程中性能更稳定。我们的第二个工作是基于合作式协同演化框架和负相关搜索算法的NCSCC算法。演化的参数量过大是影响演化算法性能的一个主要原因;在强化学习中,对于简单的街机游戏,如打砖块游戏,策略模型常用三层卷积神经网络和两层全连接层,网络的总参数量达到了百万级别,当采用演化算法来演化策略模型的参数时,参数量过多会带来“维数灾害”。针对这个问题,我们采用了合作式协同演化框架来对演化的参数进行分组,每次只针对一个分组进行优化,最后将所有分组的优化结果进行整合;同时修改合作式协同演化框架中对残缺解的评估方式,使之更适合负相关搜索算法。强化学习问题中存在的噪声会对搜索方向产生误导,并且影响精英策略的效果;所以在训练策略模型的过程中,我们采用多次评估的结果来作为适应度值。实验结果表明,我们提出的NCSCC算法有着不弱于梯度强化学习算法的性能,明显强于演化强化学习典型算法CES;同时相较于没有采用合作式协同演化框架的负相关搜索算法,NCSCC算法的表现更加优秀,证实了合作式协同演化框架对“维度灾难”有一定的缓解作用。