240 发简信
IP属地:北京
  • 博主的例子我觉得举得好,不像很多其他例子上来就是走格子。但是走格子游戏涉及到环境和智能体本身的设计。

    RL里面必然会提及智能体本身的行为,比如Q-learning 的伪算法当中必然会提及“从S中选择一个行为a,基于某种策略,例如贪婪算法”
    但是很多Q-learning 教程都将“选择行为”这个事情割裂开来,只讲 Q-learning 本身,至于怎么进行“选择”这个动作一般不涉及。

    所以如果不了解智能体的操作手段,看到这里要去实践就会很吃力。
    比如常见的用 gym 库来设计智能小车,如果你不知道怎么操纵小车,根本没办法进行下面的操作。

    博主的这个例子由于结构简单,不太需要了解智能体本身的操作,可以专注在q-learning 算法本身,这一点不错的。

    但是另一方面,博主的 Q-learning 公式有些问题。博主给出的应该是Q-learning的前身,不是Q-learning。比较重要的地方有两处遗漏,一处是学习率 alpha,它决定了算法是更注重当前利益还是长远利益;另一处是尾部的 - Q(s,a)

    完整公式:
    Q(s, a) <-- Q(s, a) + alpha * ( r + max{Q(S', a') | a'} - Q(s,a))
    也就是说,我要把 “当前效益r” 加上 “所有下一步状态行为的最大Q值” 并减去 “当前Q值”之后,还要乘上一个学习率,再加上当前 Q 值,才是最终更新值。

    用博主的算法,相当于 alpha = 1,这个时候运行次数足够多就能得到博主的 Q-table;如果 alpha = 0.1,得到的值就不一样了

    理解Q-learning,一篇文章就够了

    1、Q-learning例子 假设有这样的房间 如果将房间表示成点,然后用房间之间的连通关系表示成线,如下图所示: 这就是房间对应的图。我们首先将agent(机器人)处于任何...