【发布时间】:2018-09-24 22:20:30
【问题描述】:
我是强化学习的新手,但我正在尝试在此任务中使用 RL:
给定一个书面的函数定义,例如在具有 1 到 10 个输入参数的 C 中(仅数字参数 - 整数、浮点数等)和函数体(表示为具有数据依赖性的抽象语法树/抽象决策树 - 内部变量值如何变化)我想近似这些输入参数的值,例如执行某个决策块。为此,我想到了一个带有 LSTM 单元的循环网络。
现在,为了实现这一点,我将遍历树中的一条路径通向块,并记下路径中的任何数据更改和决策块。这些步骤会影响我的参数输入预测——如果我希望执行某个决策块,要在输入参数中插入/更改哪些值。
操作:更改函数的一个选定输入参数的值或单独更改所有输入参数的值(使用不同的数学运算)。动作执行后,移动到树中的下一个节点。
奖励:在给定的输入参数值下,我离执行给定的决策块(从而满足条件)有多接近。
目标:满足代码中的条件并执行决策块(例如,满足 if 条件)。
状态: AST/ADT 中的当前位置与数据依赖关系。
假设我已经有了一种评估方法,在给定当前参数输入值的情况下,我离执行所需的决策块还有多远,我遇到了两个问题:
如何处理 RL 中不同数量的函数输入参数?如果我想将它们的值更改为更接近所需决策块的执行,则给定操作的数量会随着为给定函数定义的参数数量而变化。
如果我已经选择了一个参数,那么使用 RL 进行数字逼近的最佳方法是什么?在函数体中可能会发生许多非常复杂的数学运算,因此是否应该将动作定义为对数、求幂、除法、乘法等,或者是否有更好的方法,可能只是从当前值中加/减?
如果您发现我对行动、奖励、目标或状态的定义有任何错误,请纠正我,因为我在这个领域仍然是一个很大的学习者。
感谢您的回答。
【问题讨论】:
-
这个问题不属于 StackOverflow。
标签: machine-learning neural-network lstm rnn reinforcement-learning