• 强化学习代码实战(3) --- 寻找真我


    前言

          本文内容来自于南京大学郭宪老师在博文视点学院录制的视频,课程仅9元地址,配套书籍为深入浅出强化学习 编程实战 郭宪地址

    正文

          我们发现多臂赌博机执行一个动作之后,无论是选择摇臂1,摇臂2,还是摇臂3之后都会返回原来的状态,也就是说它的状态并没有改变,而右边的寻金币游戏,从1到2,智能体执行动作之后位置(状态)发生了变化,而强化学习就是寻找当前状态下最优的动作,或者说不同状态下最优动作合集(策略)。

    从下图右可以看出,P和R都和s,a有关系,无模型就是因为缺P和R。

         

           实际应用中,对于游戏一般用截取的图像信息作为s,但通常不能只用一帧图像作为s,比如说在大小球的游戏中,一帧图像,无法判断小球移动方向和球速,最起码要两帧,在实际应用中,为了提高精确度,一般用四帧图像作为s。AlphaGo中用过去八手双方棋局作为状态。

     动作的定义

    策略的定义:策略就是给定状态s时,动作集上的分布,比方说,找金币,智能体在状态5时,采用确定性策略,此时向西走概率为1,向其他方向为0,为改状态下的动作概率分布。

    值函数定义:就是在策略Π下,智能体从状态s出发,用采用策略Π的累计回报的期望,简单理解,从状态s出发,不同的选择函数(策略,该策略是动作选择策略),会选择不同的动作,转移到不同的状态,最后会找到很多条路径(s,a),选则累计回报最大的路径。

    值函数和行为值函数的区别:值函数只和s有关,行为值函数和s,a相关。但两者都是对策略Π的度量。

    我们看一下寻找梦中的他游戏的环境设置,

    状态空间:对下图进行10×10的网格划分也就是说会有100个不同的状态空间,所以最多会遍历100步,

    动作空间:有上下左右四个选择

    状态转移概率:此处主要说一下,鸳鸯在碰到障碍物时,不会移动到障碍物位置,而是继续保持原本状态,同样在即将出界时,也是保持原本状态。比方说,向东连续走两个格,第三个格有障碍物,不会移动到障碍物位置,而是保持原本位置不变。

    立即回报:碰到障碍物时回报为-1,找到他时回报为1,正常移动回报为0

    策略表示:使用了词典函数(待理解)

    值函数:设置了10×10的矩阵,对应一百个表格(属于表格型强化学习)

    环境渲染用到了pygame包,使用时共三个步骤

    1.获取当前图片所在目录

    2.获取图片文件名

    3.下载图片,并转换成surface对象

    最后要继续使用pygame绘制窗口

    1.display.set_mode:绘制窗口幕布

    2.blit:图片显示在窗口中

    3.display.update:幕布更新函数

    代码可从视频链接自取

    参考文献

    1.深入浅出强化学习 编程实战 郭宪

    2. 博文视点学院

  • 相关阅读:
    程序员崩溃瞬间
    什么是闭包
    PG维护笔记
    2022-08-05:以下go语言代码输出什么?A:65, string;B:A, string;C:65, int;D:报错。
    宝宝洗衣机买什么样的好?诚意推荐四款实力超群的婴儿洗衣机
    记录一次centos7增加crontab定时任务
    基于SpringBoot+Druid实现多数据源:注解+编程式
    计算机网路学习-time_wait过多
    Qt 序列化函数和反序列化函数
    Qt图形视图、动画框架
  • 原文地址:https://blog.csdn.net/weixin_48878618/article/details/134018887