强化学习-如何处理数量近似的各种动作

时间:2018-09-24 22:20:30

标签: machine-learning neural-network lstm rnn reinforcement-learning

我是强化学习的新手,但我正在尝试在此任务中使用RL:

以书面形式给出函数定义,例如在C中具有1到10s的输入参数(仅数字参数-整数,浮点数等)和函数主体(表示为具有数据依赖性的抽象语法树/抽象决策树-内部变量值如何变化)想要近似这些输入参数的值,例如执行某个决策块。为此,我想到了带有LSTM细胞的递归网络。

现在,要实现这一点,我将遍历树中通往该块的一条路径,并注意该路径中的任何数据更改和决策块。这些步骤会影响我的参数输入预测-如果我希望执行某个决策块,应在输入参数中插入/更改哪些值。

操作:更改功能的一个选定输入参数的值,或者单独更改所有输入参数的值(在数学上有所不同的操作)。执行动作后,移至树中的下一个节点。

奖励:我距离使用给定的输入参数值执行给定的决策块(因此满足条件)有多近。

目标:在代码中满足一个条件并由此执行一个决策块(例如,是否满足if条件)。

状态:具有数据相关性的AST / ADT中的当前位置。

假设我已经有了一种评估方法,那么在给定当前参数输入值的情况下,距离执行所需的决策块还有多远,我遇到了两个问题:

我如何处理RL中不同数量的功能输入参数?如果要更改其值以使其更接近所需的决策块的执行,则给定动作的数量会随为给定函数定义的参数数量而变化。

如果我确实选择了一个参数,那么使用RL进行数字近似的最佳方法是什么?在函数体中可能发生许多非常复杂的数学运算,因此应该定义对数,求幂,除法,乘法等操作,还是有可能只是对当前值进行加/减的更好方法?

如果您在我对“行为”,“奖励”,“目标”或“状态”的定义中发现任何错误,请纠正我,因为我仍然是该领域的重要学习者。

谢谢您的回答。

1 个答案:

答案 0 :(得分:1)

如果在LSTM中表示输入和输出长度的变化。可以使用编码器LSTM解码器