深度强化学习程序中的故障:一种分类体系与检测方法
软件工程
2021-11-30 v3 机器学习
摘要
工业界与学术界对在各个领域采用深度学习(DL)解决现实问题的需求日益增长。深度强化学习(DRL)是将 DL 应用于强化学习(RL)领域的产物。与任何软件系统一样,DRL 应用也会因其程序中的故障而失效。本文首次尝试对 DRL 程序中出现的故障进行分类。我们手动分析了使用知名 DRL 框架(OpenAI Gym、Dopamine、Keras-rl、Tensorforce)开发的 761 个 DRL 程序制品(来自 Stack Overflow 帖子和 GitHub issues),并识别出开发者/用户报告的故障。我们通过多轮讨论对识别出的故障进行标注与分类。所得分类体系通过一项有 19 名开发者/研究者参与的在线调查进行了验证。为实现 DRL 程序中故障的自动检测,我们定义了 DRL 程序的元模型,并开发了 DRLinter——一种利用静态分析与图变换的基于模型的故障检测方法。DRLinter 的执行流程包括解析 DRL 程序以生成符合我们元模型的模型,并在该模型上应用检测规则以识别故障出现。DRLinter 的有效性使用 15 个合成 DRL 程序进行评估,我们在其中注入了从所分析分类体系制品中观察到的故障。结果表明,DRLinter 能成功检测所有合成故障程序中的故障。
引用
@article{arxiv.2101.00135,
title = {Faults in Deep Reinforcement Learning Programs: A Taxonomy and A Detection Approach},
author = {Amin Nikanjam and Mohammad Mehdi Morovati and Foutse Khomh and Houssem Ben Braiek},
journal= {arXiv preprint arXiv:2101.00135},
year = {2021}
}