问题标签 [markov-decision-process]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 为什么我的马尔可夫链从语料库中产生相同的句子?
我在python中使用markovify markov链生成器,当使用那里给出的示例代码时,它为我产生了很多重复的句子,我不知道为什么。
代码如下:
这给了我以下输出:
testtekst.txt 采用 ANSI 编码,具有以下语料库:
罗纳尔多在马德拉出生和长大,他的高级俱乐部生涯开始于葡萄牙体育,之后于 2003 年与曼联签约,年仅 18 岁,在他的第一个赛季就赢得了足总杯冠军。他还将在 23 岁时连续赢得三个英超联赛冠军,冠军联赛和 FIFA 俱乐部世界杯,他赢得了他的第一个金球奖。罗纳尔多在 2009 年以 9400 万欧元(8000 万英镑)的价格加盟皇家马德里时,成为当时最昂贵的足协转会对象,在那里他赢得了 15 个奖杯,包括两个西甲冠军、两个国王杯冠军和四次冠军联赛,并成为俱乐部历史上的最佳射手。他还三度获得金球奖亚军,仅次于莱昂内尔·梅西(他认为的职业对手),并在 2013 年和 2014 年连续赢得金球奖,2016 年和 2017 年又一次。2018 年,他以 1 亿欧元(8800 万英镑)的初始转会费加盟尤文图斯,这是意大利俱乐部最昂贵的转会,也是 30 岁以上球员最昂贵的转会。在 2021 年重返曼联之前,他赢得了两个意甲冠军、两个意大利超级杯和一个意大利杯冠军。2003 年,年仅 18 岁的罗纳尔多在葡萄牙完成了他的国家队处子秀,此后出场超过 180 次,使他成为葡萄牙最出色的球员。 - 封顶的球员。他在国际水平上打进了 100 多个进球,也是该国历史上的最佳射手。他参加了 11 场主要赛事并取得进球,他在 2004 年欧洲杯上打进了他的第一个国际进球,并帮助葡萄牙队打进了决赛。2008年7月担任国家队队长。2015年,罗纳尔多被葡萄牙足协评为有史以来最好的葡萄牙球员。次年,他带领葡萄牙队在 2016 年欧洲杯上获得了他们的第一个大满贯赛事冠军头衔,并获得了该赛事第二高射手的银靴奖。他还带领他们在 2019 年首届欧洲国家联赛中夺冠,随后获得了 2020 年欧洲杯最佳射手金靴奖。作为世界上最有市场和最著名的运动员之一,罗纳尔多被福布斯评为世界收入最高的运动员。 2016 年和 2017 年,以及 2016 年至 2019 年被 ESPN 评为世界上最著名的运动员。《时代》杂志将他列入了 2014 年全球 100 位最具影响力人物的名单。他是第一位足球运动员和第三位在其职业生涯中收入 10 亿美元的运动员。职业。次年,他带领葡萄牙队在 2016 年欧洲杯上获得了他们的第一个大满贯赛事冠军头衔,并获得了该赛事第二高射手的银靴奖。他还带领他们在 2019 年首届欧洲国家联赛中夺冠,随后获得了 2020 年欧洲杯最佳射手金靴奖。作为世界上最有市场和最著名的运动员之一,罗纳尔多被福布斯评为世界收入最高的运动员。 2016 年和 2017 年,以及 2016 年至 2019 年被 ESPN 评为世界上最著名的运动员。《时代》杂志将他列入了 2014 年全球 100 位最具影响力人物的名单。他是第一位足球运动员和第三位在其职业生涯中收入 10 亿美元的运动员。职业。次年,他带领葡萄牙队在 2016 年欧洲杯上获得了他们的第一个大满贯赛事冠军头衔,并获得了该赛事第二高射手的银靴奖。他还带领他们在 2019 年首届欧洲国家联赛中夺冠,随后获得了 2020 年欧洲杯最佳射手金靴奖。作为世界上最有市场和最著名的运动员之一,罗纳尔多被福布斯评为世界收入最高的运动员。 2016 年和 2017 年,以及 2016 年至 2019 年被 ESPN 评为世界上最著名的运动员。《时代》杂志将他列入了 2014 年全球 100 位最具影响力人物的名单。他是第一位足球运动员和第三位在其职业生涯中收入 10 亿美元的运动员。职业。
正如您在输出中看到的那样 - 打印了几个相同的句子,我不知道为什么。默认状态大小应为 2。
python - 我应该如何使用 Q 学习(没有任何强化学习包)对赌徒问题进行编码?
我想用 MDP(马尔可夫决策过程)来解决赌徒的问题。
赌徒的问题:赌徒有机会对一系列掷硬币的结果下注。如果硬币正面朝上,他赢的钱与他在该掷硬币上的赌注一样多;如果是反面,他将失去赌注。游戏结束时,赌徒达到他的目标 κ 美元获胜,或者因为钱用完而失败。在每次翻转时,赌徒必须决定下注多少(整数)美元。正面的概率是 p,反面的概率是 1 - p。
我使用完全随机的基础策略实现了无模型 Q 学习方法。但是代码没有像我希望的那样工作,我不知道为什么。感谢您的任何建议。:)
reinforcement-learning - MDP的整形定理
我需要帮助来理解 MDP 的整形定理。这是相关论文:https ://people.eecs.berkeley.edu/~pabbeel/cs287-fa09/readings/NgHaradaRussell-shaping-ICML1999.pdf它基本上说马尔可夫决策过程对状态之间的转换具有一定的奖励功能并且动作 R(s, a, s') 与不同的马尔可夫决策过程具有相同的最优策略,其奖励定义为 R'(s, a, s') = R(s, a, s') + gamma* f(s') - f(s),其中 gamma 是时间贴现率。
我理解证明,但它似乎是一个微不足道的情况,当所有状态和动作的 R(s, a, s') = 0 时,代理面临路径 A -> s -> B与 A -> r -> t -> B 相比。使用原始马尔可夫过程,我们得到两条路径的 EV 均为 0,因此两条路径都是最优的。但是随着我们得到的每个转换的潜力增加,第一个路径的 gamma^2*f(B)-f(A) 和第二个路径的 gamma^3*f(B) - f(A)。因此,如果 gamma < 1,并且 0 < f(B),f(A),则第二条路径不再是最优的。
我误解了这个定理,还是我犯了其他错误?