1

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

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

F
-
+
[
]
X

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

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

PS 最大适应度未知或指定。

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

第 2 步:计算适应度

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

第 4 步:计算适应度

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

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

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

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

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

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

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

4

1 回答 1

2

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

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

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

于 2019-07-26T08:45:55.407 回答