前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Q-learning 的本质是在干什么?

Q-learning 的本质是在干什么?

作者头像
杨熹
发布2020-03-20 11:26:29
4730
发布2020-03-20 11:26:29
举报
文章被收录于专栏:杨熹的专栏杨熹的专栏

Q-learning 是要让 agent 通过不断地玩游戏,从环境给予的奖励反馈中学习到给定state下的最优 action。

在 Gym 里的 Taxi 环境中,有个奖励表格 P,例如第 328 个状态的奖励 p 为 :

env.P[328]

{0: [(1.0, 428, -1, False)],

1: [(1.0, 228, -1, False)],

2: [(1.0, 348, -1, False)],

3: [(1.0, 328, -1, False)],

4: [(1.0, 328, -10, False)],

5: [(1.0, 328, -10, False)]}

0-5 表示agent 此时可以采取(south, north, east, west, pickup, dropoff) 这些action

probability 是指采取各个action的概率,这里都是 1

接着是 nextstate 是指在当前state采取每个action后会到达的新状态

然后是每个action的reward ,在这个state上,四个方向的奖励是 -1,pick up和drop off的奖励是-10,如果这个state是正确的目的地,那么drop off 的奖励是20。

最后一列代表 done,当把乘客成功放到目的地后,done 就变成true,此时这一轮的游戏也结束了。

agent 在当前 state 下采取一个 action,根据 P 得到一个奖励,进而计算出一个 Q-value 来记忆这个 action 是否是有利的,它也是衡量这对 state action 组合的质量的指标,比如一个state上有个乘客,那么此时pickup的Q值应该比dropoff和north,east,west,south的要大。

Q-values 最开始可以初始化成任意值,随着 agent 不断探索环境,通过在各个state上执行不同的 action,会获得不同的奖励,并且不断地更新 Q 值。

Q-values 的更新可以有多种算法,最经典的是 Q-learning:

公式的含义是给旧的 Q-value 加个权重 (1−α),再加上新学到的值,这个新学到的值包括在当前state采取当前action的奖励,加上下一个状态next state上最大reward的discounted 值。这个公式既考虑到当前的最优策略,也考虑到下一步的最优策略,最终会驱动agent找到全局整体的最优策略。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档