gpt4 book ai didi

deterministic - 用马尔可夫逻辑避免确定性

转载 作者:行者123 更新时间:2023-12-04 07:04:05 26 4
gpt4 key购买 nike

我今天刚刚开始阅读更多关于马尔可夫链生成器的内容,并且对构建它的整个过程非常感兴趣。根据我的理解, future 状态取决于过去状态到现在的统计数据。
示例:

Hello World. Hello Dolly. Hello World.

"World" follows "Hello" ~66% of the time in that source.


如果总是这样,那么您如何避免每次输出相同的结果?统计出现不会随着静态字符串而改变,所以我假设不会生成任何变体是否正确,除非以某种方式修改源数据?
考虑到统计值,我怎么能从静态源中获得变化,同时又允许一些灵活性?使用上面的示例,当“Dolly”仅在 33% 的时间内跟随“Hello”时,我如何让我的生成器跟随“Hello”和“Dolly”?
我想我要问的是,我如何根据当前选择后单词的统计存在来确定下一个选择的概率?那样的话,“多莉”出现了 33% 的时间,而“世界”出现了 66% 的时间——或者我完全迷失在这里?

最佳答案

您使用随机数生成器来选择要走的路径。您必须保存每个状态(实际上是 N 个先前项目的历史)以及该状态的概率。然后你选择一个随机数并根据它决定你转换到的下一个状态是什么。

在您的示例中,您有一个 N 为 1 的马尔可夫链,您将拥有一个看起来像这样的链结构:

<start> -> Hello : 1.0

Hello -> World. : 0.66666
Hello -> Dolly. : 0.33333

Dolly. -> Hello : 1.0

World. -> <end> : 0.5
World. -> Hello : 0.5

如果您当前的状态是 Hello,那么您下一个可能的状态是 World。和多莉.. 生成一个介于 0 和 1 之间的随机数并选择 World。如果小于 0.666666,则选择 Dolly。

使用 N=2 马尔可夫链,您可以通过该输入获得几乎确定性的行为:
<start> <start> -> <start> Hello : 1.0

<start> Hello -> Hello World. : 1.0

Hello World. -> World. Hello : 0.5
Hello World. -> World. <end> : 0.5

World. Hello -> Hello Dolly. : 1.0

Hello Dolly. -> Dolly. Hello : 1.0

Dolly. Hello -> Hello World. : 1.0

关于deterministic - 用马尔可夫逻辑避免确定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1381607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com