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

作者: 不会停的蜗牛 | 来源:发表于2020-03-04 23:57 被阅读0次

    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找到全局整体的最优策略。

    相关文章

      网友评论

        本文标题:Q-learning 的本质是在干什么?

        本文链接:https://www.haomeiwen.com/subject/cxmglhtx.html