【问题标题】:Difficult reinforcement learning query困难的强化学习查询
【发布时间】:2019-07-25 09:33:48
【问题描述】:

我正在努力弄清楚我想如何做到这一点,所以我希望这里有人可以提供一些指导。

场景 - 我有一个 10 个字符的字符串,我们称之为 DNA,由以下字符组成:

F
-
+
[
]
X

例如DNA = ['F', 'F', '+', '+', '-', '[', 'X', '-', ']', '-']

现在这些 DNA 字符串被转换为物理表示,从中我可以获得 fitnessreward 值。因此,此场景的 RL 流程图如下所示:

附:最大适应度未知或指定。

第 1 步:获取随机 DNA 字符串

第 2 步:计算适应度

第 3 步:获取另一个随机 DNA 字符串

第 4 步:计算适应度

第 5 步:计算梯度并查看向上的方向

第 6 步:训练 ML 算法以生成越来越好的 DNA 字符串,直到适应度不再增加

为了清楚起见,最好的 DNA 字符串,即返回最高适应度的字符串,现在我的目的是:
['F', 'X', 'X', 'X', 'X', 'F', 'X', 'X', 'X', 'X']

我如何训练机器学习算法来学习并输出这个 DNA 字符串?

我正试图围绕 Policy Gradient 方法展开思考,但我对 ML 算法的输入是什么?没有像 OpenAI Gym 示例中那样的状态。

编辑: 最终目标 - 学习生成更高适应度值 DNA 字符串的算法。这必须在没有任何人工监督的情况下发生,即不是监督学习而是强化学习。

类似于遗传算法,将进化出越来越好的 DNA 字符串

【问题讨论】:

  • 实验的最终目标是什么?您想生成具有更好适应度值的 DNA 字符串吗?
  • 是的。网络必须了解 DNA 和适应度之间的关系,然后根据适应度函数生成最优 DNA 字符串。
  • 据我了解您的问题,没有输入。您只需要黑盒来生成具有更高适应度值的 DNA 字符串。如果我错了,请纠正我。如果您想训练一个模型来学习将给定字符串变异为具有更高适应度函数的另一个字符串,那么这个问题就会变得有趣。请添加有关您要解决的确切问题的更多信息。
  • @nsidn98 更好吗?

标签: reinforcement-learning policy-gradient-descent


【解决方案1】:

假设问题是将一个给定的字符串变异成另一个具有更高适应度值的字符串,马尔可夫决策过程可以建模为:

  • 初始状态:随机 DNA 字符串。
  • 动作:变异成另一个字符串,它与原始字符串相似,但(理想情况下)具有更高的适应度值。
  • State:代理生成的字符串
  • 完成信号:当剧集开始时原始随机字符串中超过 5 个(可以设置为任何值)字符发生变化时。
  • 奖励: fitness(next_state) - fitness(state) + similarity(state,next_state)fitness(next_state) - fitness(state)

您可以从 Q-learning 开始,使用维度为:10 的离散动作,每个动作有 6 个选择:(F, -, +, [, ], X)

【讨论】:

  • 我曾想过将 10 个字符串中的每个字符位置设为“状态”以实现 Q-learning。我会试试的,谢谢。
猜你喜欢
  • 2021-02-17
  • 2013-12-06
  • 2018-11-05
  • 2019-04-16
  • 2016-10-24
  • 2022-09-28
  • 2019-01-18
  • 2021-06-26
  • 2020-06-30
相关资源
最近更新 更多