迭代策略评估(决定论)

本文介绍了强化学习中的迭代策略评估,重点在于贝尔曼方程在决定论环境中的应用。在决定论环境中,每个行为必然导致特定的状态,而在概率论中,行为可能导致多个状态。通过贝尔曼方程迭代更新状态价值,当价值函数的差值小于阈值时停止迭代。讨论了如何从决定论扩展到概率论,以适应更复杂的行为和环境变化。
摘要由CSDN通过智能技术生成

决定论指的是,agent在某个状态做出一个行为必定到达另一个状态。
如果从100楼高的地方,跳楼,百分之百死掉,这是决定论。
如果是概率论,则做出一个行为可以能有不同的状态,比如假设有一头熊追我,如果我装睡(action),熊可能不吃我,也可能吃我。

迭代策略评估的核心是通过贝尔曼方程更新当前状态的价值,再用新的价值与旧的价值比较,也就是做差值,如果这个差的绝对值小于一个门槛(人为设置),就说明价值函数找到了。

为什么是这样?简单点说是靠贝尔曼方程的迭代。本质上是加权求平均值,可以理解为,平均值是一样的,迭代到最后数据已收集足够,平均值已经准确了,再迭代也不会变,或者变动很小,这个时候就没有必要迭代下去了,浪费时间。

# 初始化各个状态的价值。除终止状态外必为0外,可以设成随机。
    V = {}
    for s in grid.all_states():
        V[s] = 0

# 开始循环
    while True:
# 用来存储差值。
        biggest_difference = 0
        for s in g.all_states():
            if not g.is_terminal(s):
                old_v = V[s]
                new_v = 0
                for a in ACTION_SPACE:
                    for s2 in g.all_states():
                        action_prob = 1 if policy.get(s) == a else 0
                        r = rewards.get((s,a,s2),0)
#贝尔曼方程更新价值
                        new_v = action_prob*trans_probs.get((s,a,s2),0)*(r+gamma*V[s2])

                V[s] = new_v
# 求差值
                der = np.abs(new_v-old_v)


求得了价值函数,还只考虑了决定论。还需要考虑行为可能到达不同的状态的情况,也就是 概率论.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值