• Q-Learning笔记


    emmmmm,被迫强化学习
    强化学习的思想其实很好理解啦,通过不断和环境交互,来修正agent的行为,得到agent在不同state下应该采取什么action,来得到最大化的收益。
    这里强推一下这个知乎博主
    https://www.zhihu.com/column/c_1215667894253830144
    真的是用大白话把我给讲懂了,搜别的动不动上来这个公式那个理论的,真的是一脸懵逼。。。。。。(理解流程之后你去看那些公式发现其实也没那么难懂)
    先看一下Q-Learning的算法流程,然后一一解释,这里借用一下莫凡python的流程图:
    在这里插入图片描述

    首先要说的是你要有一个基础化的Q表的,否则你毛都没有,agent怎么给你下一状态s’的指导意见呢,是吧,这一步说明对应第一行Initialize
    然后episode我搜了一下是step的集合,即从游戏开始到游戏结束的每一步集合,s是游戏的初始状态
    下面是要说的就是off-policy和on-policy的问题了
    关于这两者的定义,我是参考了这一篇文章:
    在这里插入图片描述

    所谓的off-policy和on-policy的区别其实就是生成数据和为了保证收益最大更新Q表阶段所采取的策略是否一致,以Q-Learning为例,你玩游戏的时候当然选的action是已经训练好的Q(s,a)里面值最大的那个是吧,这个叫做目标策略

    目标策略(target policy):智能体要学习的策略
    
    • 1

    但是我们说了初期的Q-表是随机给的,他需要很多轮去训练,去收敛,于是要求我们在take-action的时候遍历某一个状态下所有可能的动作,于是这个就叫做

    行为策略(behavior policy):智能体与环境交互的策略,即用于生成行为的策略
    
    • 1

    当这两者一致的时候就是on-policy,不一致就是off-policy
    现在来考虑,在训练的时候,智能体选取的是eplison-greedy策略,即我有一定概率选取现在在我q表里action值最大的那个动作,但是不一定,我也可以选其他动作,那么包括后续过程包括状态和动作都会不一样,这样就实现了不同动作探索的可能性
    通过不断地玩,Q表会不断收敛,到了玩的时候就会根据Q-table在目标策略下进行游戏,以获得较大的收益。
    所以Q-Learning是一个off-policy算法,因为这两个阶段的policy完全不同

  • 相关阅读:
    Python Prim 算法 生成迷宫
    基于Spring Cloud创建弹性微服务
    Qt之语言家的简单使用(二)(使用注意事项)
    RocketMQ源码阅读(十)消息消费-—消息队列负载均衡
    R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化分组箱图、使用bgcolor函数自定义指定可视化图像的背景色
    测试/开发程序员有8大好处,自我实现和自我超越......
    详解GaussDB(DWS) 资源监控
    这有几个常见的电脑故障解决方法,需要的朋友快来
    图片添加边框和文字怎么弄?图片编辑在线教学
    今日准备注销CSDN专栏
  • 原文地址:https://blog.csdn.net/qq_41696858/article/details/125470196