First visit and every visit MC

今天写RL中的MC算法的时候,卡在了First visit和Every visit这两种算法的区别上。一直没搞懂什么意思

 这里因为有多个episode,每一个episode中使用第一次出现的Q(S,A)当做这个episode中的Q值,对多个episode中出现的Q(S,A)求和,然后分母是有多少个episode含有这个pair(S,A)

下面附上转载的代码:

        updated_values = {}
        ### PUT YOUR CODE HERE ###
        state_action_pairs = list(zip(obses, actions))
        g = 0
        for t in range(len(obses)-1, -1, -1):
            g = self.gamma * g + rewards[t]
            pair = state_action_pairs[t]
            if pair not in self.sa_counts:
                self.sa_counts[pair] = 1
            else:
                self.sa_counts[pair] += 1
            if pair not in state_action_pairs[:t]:  # 在前t个timestep内第一次出现: the first occurrence of (s, a)
                updated_values[pair] = g            # append G to Return (S_t,A_t)
                # Q(S_t,A_t) <- average(Return(S_t,A_t))
                self.q_table[pair] = (self.q_table[pair] * (self.sa_counts[pair] - 1) + g) / self.sa_counts[pair]
        return updated_values

注意,这一行代码:

self.q_table[pair] = (self.q_table[pair] * (self.sa_counts[pair] - 1) + g) / self.sa_counts[pair]

其实就等价于求和取平均值:因为我们是先求出Q的平均值,再统计次数。在第二次更新的时候,这个(self.sa_counts[pair] - 1) * self.q_table[pair]其实就是求和。然后我们再加上在当前episode中的Q(S, A),再取平均值,就完成了逻辑上的闭环

不得不感叹这几行代码写的真优雅

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 《Head First HTML and CSS》是一本适合初学者的入门书籍,书中通过图文并茂的方式,让读者很容易理解HTML和CSS的知识点,同时也很好的展示了网页的结构与样式的关联。书中同时也提供了很多小练习,在这些练习中让读者亲手去实现代码,从而对知识点进行加深理解。此外,本书注重实践,通过介绍实际项目中的案例,让读者能够学以致用,更好的提升自己的技能。总之,《Head First HTML and CSS》是一本很好的入门教程,可以帮助初学者快速掌握基础知识,进而深入学习Web开发。 ### 回答2: 《Head First HTML and CSS》是一本非常好的入门教程,它通过生动有趣的方式向读者介绍了HTML和CSS的基本知识。该书由许多图表、图片和实例组成,使读者能够轻松理解和运用所学到的知识。此书适合初学者,无论你是否有编程知识,都可以通过这本书学习HTML和CSS。 该书首先介绍了HTML的基本结构,包括标签、属性、元素和文档类型等内容。然后,它详细介绍了如何使用CSS控制网页的样式和布局。此外,该书还介绍了响应式设计和移动优先策略等现代化的Web设计方法。 读完该书,你将学会如何构建基本的网页,并掌握CSS布局和样式的基本技能。此外,你还将了解如何开发现代化的网站,包括响应式设计、移动优先策略和HTML5等内容。总之,这是一本极具学习价值的书籍,强烈推荐给任何想要学习HTML和CSS的初学者。 ### 回答3: 《Head First HTML and CSS》是一本适合初学者的前端开发书籍,该书通过具体的例子和图形化的内容描述了HTML和CSS的基本知识和实践应用。书中包含了HTML元素、标签、属性、CSS样式、布局等知识。同时,该书也提供了一些实用的技巧和工具,让读者能够更好地理解和应用HTML和CSS。 相较于其他的编程书籍,《Head First HTML and CSS》采用了更加生动形象的讲解方式,通过图形化的演示和趣味性的例子来帮助读者更好地理解和应用所学知识。该书也注重实践操作,每章后都提供了实践任务和练习,帮助读者在实际应用中巩固所学内容。 同时,该书也适合其他需要了解HTML和CSS的人,比如网站设计师、市场营销人员、网站编辑等。由于内容简明易懂,读者可以很快上手并在实际工作中得到实际的收益。 总的来说,如果你是一位初学者或者希望进一步了解HTML和CSS的人,那么《Head First HTML and CSS》绝对是一本值得一读的好书,无论是对你的技能提升还是对工作效率的提升都将有所助益。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值