位置: IT常识 - 正文

强化学习——Q-Learning算法原理

编辑:rootadmin
强化学习——Q-Learning算法原理 一、Q-Learning :异策略时序差分控制

推荐整理分享强化学习——Q-Learning算法原理,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

从决策方式来看,强化学习可以分为基于策略的方法(policy-based)和基于价值的方法(value-based)。基于策略的方法直接对策略进行优化,使制定的的策略能够获得最大的奖励。基于价值的强化学习方法中,智能体不需要制定显式的策略,它维护一个价值表格或价值函数,通过这个价值表格或价值函数来选取价值最大的动作。 Q-Learning 算法就是一种value-based的强化学习算法。

二、算法思想:

Q(s,a)是状态价值函数,表示在某一具体初始状态s和动作a的情况下,对未来收益的期望值。 Q-Learning算法维护一个Q-table,Q-table记录了不同状态下s(s∈S),采取不同动作a(a∈A)的所获得的Q值。

Q-tablea1a2a3…s1Q(s1,a1)Q(s1,a2)Q(s1,a3)s2Q(s2,a1)Q(s2,a2)Q(s2,a3)s3Q(s3,a1)Q(s3,a2)Q(s3,a3)…

探索环境之前,初始化Q-table,当agent与环境交互的过程中,算法利用贝尔曼方程(ballman equation)来迭代更新Q(s,a),每一轮结束后就生成了一个新的Q-table。agent不断与环境进行交互,不断更新这个表格,使其最终能收敛。最终,agent就能通过表格判断在某个转态s下采取什么动作,才能获得最大的Q值。

三、更新过程

更新方法: Q(st,at)←Q(st,at)+α[rt+1+γmax⁡aQ(st+1,a)−Q(st,at)]Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha [r_{t+1}+ \gamma \max_aQ(s_{t+1},a) - Q(s_t,a_t) ]Q(st​,at​)←Q(st​,at​)+α[rt+1​+γamax​Q(st+1​,a)−Q(st​,at​)]

Q(st,at){\color{Red} Q(s_t,a_t)}Q(st​,at​) 是在状态sts_tst​下采取动作ata_tat​的长期回报,是一个估计Q值

rt+1{\color{Red} r_{t+1}}rt+1​ 是在状态sts_tst​下执行动作ata_tat​得到的回报reward

强化学习——Q-Learning算法原理

max⁡aQ(st+1,a){\color{Red} \max_aQ(s_{t+1},a)}maxa​Q(st+1​,a) 指的是在状态st+1s_{t+1}st+1​下所获得的最大Q值,直接看Q-table,取它的最大化的值。γ\gammaγ是折扣因子,含义是看重近期收益,弱化远期收益,同时也保证Q函数收敛。

(rt+1+γmax⁡aQ(st+1,a){\color{Red} (r_{t+1}+ \gamma \max_aQ(s_{t+1},a)}(rt+1​+γmaxa​Q(st+1​,a) 即为目标值,就是时序差分目标,是Q(st,at)Q(s_t,a_t)Q(st​,at​) 想要逼近的目标。α\alphaα是学习率,衡量更新的幅度。

当目标值和估计值的差值趋于0的时候,Q(s,a)就不再继续变化,Q 表趋于稳定,说明得到了一个收敛的结果。这就是算法想要达到的效果。

注意:max⁡aQ(st+1,a){\color{Red} \max_aQ(s_{t+1},a)}maxa​Q(st+1​,a)所对应的动作不一定是下一步会执行的实际动作! 这里引出ε−greedy{\color{Red} \varepsilon-greedy}ε−greedy,即 ε−\varepsilon-ε−贪心算法。 在智能体探索过程中,执行的动作采用ε−greedy{\color{Red} \varepsilon-greedy}ε−greedy策略,是权衡exploitation-exploration(利用和探索)的超参数。

exploration:探索环境,通过尝试不同的动作来得到最佳策略(带来最大奖励的策略)exploitation:不去尝试新的动作,利用已知的可以带来很大奖励的动作。Q-Learning算法中,就是根据Q-table选择当前状态下能使Q值最大的动作。

在刚开始的时候,智能体不知道采取某个动作后会发生什么,所以只能通过试错去探索。利用是指直接采取已知的可以带来很好奖励的动作。这里面临一个权衡问题,即怎么通过牺牲一些短期的奖励来理解动作,从而学习到更好的策略。因此,提出ε−greedy\varepsilon-greedyε−greedy,ε\varepsilonε就是权衡这两方面的超参数。

这篇博客https://blog.csdn.net/zhm2229/article/details/99351831对这部分的理解讲的很好,在此引用一下:

做exploitation和exploration的目的是获得一种长期收益最高的策略,这个过程可能对short-term reward有损失。如果exploitation太多,那么模型比较容易陷入局部最优,但是exploration太多,模型收敛速度太慢。这就是exploitation-exploration权衡。

比如我们设ε\varepsilonε=0.9,随机化一个[0,1]的值,如果它小于ε\varepsilonε,则进行exploration,随机选择动作;如果它大于ε\varepsilonε,则进行exploitation,选择Q value最大的动作。 在训练过程中,ε\varepsilonε在刚开始的时候会被设得比较大,让agent充分探索,然后ε\varepsilonε逐步减少,agent会开始慢慢选择Q value最大的动作

三、伪代码

图源于:百度飞桨AlStudio

参考: [1] 王琦.强化学习教程[M] [2] https://blog.csdn.net/zhm2229/article/details/99351831

本文链接地址:https://www.jiuchutong.com/zhishi/299577.html 转载请保留说明!

上一篇:JSONP数据劫持漏洞(json解析漏洞)

下一篇:Vue3【Vue路由概念、项目引入路由、集成Vue路由 、编程式导航、带参数的动态路由匹配 、嵌套路由、重定向和别名、命名视图、不同的历史模式​】(十)-全面详解(学习总结---从入门到深化)(vue路由的理解)

  • 表格怎么把井号变数字(做表格单元格里面井号怎么变成数字)

    表格怎么把井号变数字(做表格单元格里面井号怎么变成数字)

  • 荣耀x10怎么显示电量百分比(荣耀x10怎么显示时间)

    荣耀x10怎么显示电量百分比(荣耀x10怎么显示时间)

  • 抖音如何让自己的视频没有水印(抖音如何让自己的喜欢隐藏)

    抖音如何让自己的视频没有水印(抖音如何让自己的喜欢隐藏)

  • 石墨烯导热原理(石墨烯导热系数高达5300)

    石墨烯导热原理(石墨烯导热系数高达5300)

  • 直播时有杂音滋滋滋(直播有杂音滋滋滋)

    直播时有杂音滋滋滋(直播有杂音滋滋滋)

  • Word为怎么在页脚里加一条直线(word文档怎么在一页里显示)

    Word为怎么在页脚里加一条直线(word文档怎么在一页里显示)

  • jsn-al00是华为什么型号(jsn-al00是华为什么型号手机)

    jsn-al00是华为什么型号(jsn-al00是华为什么型号手机)

  • 一个人可以有几个qq号(一个人可以有几个手机号)

    一个人可以有几个qq号(一个人可以有几个手机号)

  • 只买路由器能上网吗(只用路由器可以吗)

    只买路由器能上网吗(只用路由器可以吗)

  • 优酷电脑客户端为什么那么卡(优酷电脑客户端drm加密)

    优酷电脑客户端为什么那么卡(优酷电脑客户端drm加密)

  • 苹果电脑没有鼠标怎么右键(苹果电脑没有鼠标怎么操作)

    苹果电脑没有鼠标怎么右键(苹果电脑没有鼠标怎么操作)

  • 移动4g卡怎么升5g(移动4g如何升级5 g)

    移动4g卡怎么升5g(移动4g如何升级5 g)

  • 荣耀20pro顶部是红外线吗(荣耀20pro顶上的小孔是什么)

    荣耀20pro顶部是红外线吗(荣耀20pro顶上的小孔是什么)

  • 怎么判断打印机没墨了(怎么判断打印机与电脑连接)

    怎么判断打印机没墨了(怎么判断打印机与电脑连接)

  • 抖音直播大厅在哪(抖音页面直播)

    抖音直播大厅在哪(抖音页面直播)

  • 淘宝消息未读是被屏蔽了吗(淘宝信息未读啥意思)

    淘宝消息未读是被屏蔽了吗(淘宝信息未读啥意思)

  • 手机里的身份证照片怎么打印出来(手机里的身份证怎么打印)

    手机里的身份证照片怎么打印出来(手机里的身份证怎么打印)

  • iPhone11pro怎么连接无线耳机(iphone11pro怎么连接耳机)

    iPhone11pro怎么连接无线耳机(iphone11pro怎么连接耳机)

  • ios12.2发热严重(ios12.5.3发热)

    ios12.2发热严重(ios12.5.3发热)

  • 怎样办微信二维收钱码(微信办二维码怎么办)

    怎样办微信二维收钱码(微信办二维码怎么办)

  • 微信群发所有人怎么发(微信群发所有人怎么撤回)

    微信群发所有人怎么发(微信群发所有人怎么撤回)

  • xbox卸载有影响吗(xbox卸载后就可以玩lol了吗)

    xbox卸载有影响吗(xbox卸载后就可以玩lol了吗)

  • 快手怎么提取别人原声(快手怎么提取别人发的图片)

    快手怎么提取别人原声(快手怎么提取别人发的图片)

  • 织梦全站调用会员头像级别认证早上好(织梦如何使用)

    织梦全站调用会员头像级别认证早上好(织梦如何使用)

  • 每个月发工资扣个税扣的肉疼
  • 季度残保金如何申报
  • 发票密码区超出可以用吗
  • 稳岗补贴给谁
  • 专项申报的类别
  • 正常经营损失
  • 车间工人加班餐图片
  • 国有企业取得的土地收储款是否要上缴财政
  • 为安装设备所发生的差旅费入什么科目
  • 成本暂估跨年度要怎么处理?
  • 企业取暖费怎么做会计分录
  • 从原材料到库存商品的生产核算过程
  • 银行贷款利息是百分比还是千分比
  • 固定资产的清查由哪个部门负责
  • 显示已申报税额
  • 微信支付有优惠 系统异常
  • 小规模纳税人计提增值税
  • 工会经费申报表的应税项应该怎样填写
  • 进项票小于销项票怎么办
  • 本期金额怎么计算
  • 帮别人公司过账100万,再转30回给他
  • 公司向个人购买服务
  • 个人帮公司买东西怎么报销
  • 支付销售佣金如何做账
  • mac怎么连接蓝牙鼠标
  • win10家庭最新版本
  • u盘启动盘如何分区
  • 公司预交一年的养老保险
  • 股东退股资金如何返还
  • PHP Warning:PHP Startup: in Unknown on line 0解决办法
  • php怎么自学
  • 股票以公允价值计量
  • proxydriod
  • 中央公园纽约的历史背景
  • 分配水电费会计分录需要写税吗?
  • uniapp按钮
  • js怎么注册
  • setl指令
  • python中except用法
  • 销售折扣收货方法有哪些
  • 银行日记账跨月登记方法
  • 增值税的税目是什么意思
  • 工程施工会计科目是什么科目
  • 企业所得税里面的利润总额怎么算
  • 公司之间往来款需要交税吗
  • 银行会计核算方法的特点
  • 作废的增值税普通发票怎么处理
  • 房地产开发间接费用和开发费用的区别
  • mysql数据库中进入mysql库的命令
  • 缴纳上月应交未交税费
  • 废品收入该如何开票
  • 研发支出计入产品成本吗
  • 非独立核算的分公司可以开基本户吗
  • 公司是否可以投资股票
  • 发票报销可以跨月报销吗
  • 工程检测公司的账务处理流程
  • 期末结转之前会进行哪些工作
  • 物流到付如何做账务处理
  • 挂靠建筑公司预交的增值税如何做凭证?
  • 公司入账是什么意思
  • 水电费收据可以写一张上吗
  • mysql coalesce函数用法
  • mysql数据库主机一般填什么
  • 硬盘安装在哪里
  • win8更新win8.1
  • GrooveMonitor.exe是什么进程?GrooveMonitor.exe可以禁用卸载吗?
  • Win10预览版镜像
  • win7如何删除网络上的其它计算机
  • 轻松掌握瓷砖铺贴技术 pdf
  • excel怎么添加动态图
  • unity f
  • jsp生成uuid
  • awk 查找
  • JavaScript File API文件上传预览
  • jQuery Ajax Post 回调函数不执行问题的解决方法
  • js中alert怎么用
  • 吉林省工伤保险咨询电话
  • 住房公积金交纳的原则
  • 如何落实请示汇报
  • 契税维修基金交给谁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设