本文主要是介绍论文笔记 | MathDQN: Solving Arithmetric Word Problems via Deep Reinforcement Learning,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介
Lei Wang 和 Dongxiang Zhang团队在AAAI18上发表的文章,使用了DQN来解决MWP(Math Word Problem)问题。
Motivation
在将问题表达成一个表达式树的时候,有一种方法是枚举所有的操作数,组成树的叶子节点。这种方法所需的搜索空间很大,虽然有一些剪枝的算法可以运用,但仍不能满足需求。
在实践中,可以发现Deep Q-netwrok能够处理搜索空间很大的问题。比如:游戏场景。
所以本文想要用deep Q-network来解决math word problem。
MathDQN框架
步骤为:
- 首先提取问题文本中的相关操作数
- 对操作数根据表达式树的构造顺序进行排列
- 每一个迭代,选择两个操作数,将它们的上下文相关的向量表示作为当前state
- 将state向量输入两层的前馈神经网络,得出当前的两个操作数的最近公共祖先的操作符
- 对于groundtruth的操作符,如果一致则给出正向反馈,否则给出负反馈。
对应强化学习的要素:
- state:当前状态用两个操作数的上下文向量来表示
- action:指两个操作数的最近公共祖先的操作符
- reward:操作符正确,则给出奖励;否则惩罚。
优缺点分析
strong points:
- 第一次使用强化学习来解决MWP问题,设计了合理地状态空间、动作空间和奖励函数。
- motivation很好,利用了DQN解决搜索空间大的问题。
weak points:
- 文中使用的数据集规模较小,三个数据集中都包含少于1000个题目。17年发表的文章DNS中提供的较大规模数据集Math23K已经被广泛使用,但这里没有用到。【是否能适用于大规模数据,需要根据代码进一步确定。】
这篇关于论文笔记 | MathDQN: Solving Arithmetric Word Problems via Deep Reinforcement Learning的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!