当前位置: 首页 > news >正文

大模型学习基础(六) 强化学习(Reinforcement Learning,RL)初步1.3

前篇文章提到,为了评估actor结合s所做的action是否为好的动作(有利于reward积累)而引入了优势函数A,在不同情况下优势函数的定义不同。优势函数可以由人为来进行设定,然后评估action的好坏,但如果每一笔数据都需要人类来评定分数,效率显然太低,所以需要引入critic(评估)模型,来进行对action的评价。critic模型的一种主要形式是价值函数V(s)。

下面的图片直接用总得分G和优势函数相等,而G的得分需要完成所有的a之后才能累计得出,在这种情况下训练critic就需要做完全部的动作aciton;另一种情况,critic模型要做的是在看到第一个action a1之后,就能推断出之后所有的action所累积的分数是多少,也即推断出总得分A,A实际上是G的一个估计量。

训练critic的方式有两种

一、蒙特卡洛算法

actor执行一个action,将后续所有action的reward累计,得到G。以(s,G)对作为数据集来训练critic,如果是on-policy的方法来训练,那么只有当actor执行完一组action后才能得到一组训练critic的数据。

二、时序差分算法

如果critic只能在actor执行完所有的action后才能得到数据G用于训练,效率是十分低下的,我们希望actor在做完当前action之后就可以得到critic的训练数据。actor在s1下进行a1得到r1,并且产生了新的s2;而V(s1)近似于G1,V(s2)近似于G2;由于actor并没有进行完所有的action,所以G1和G2的具体值都是不知道的,但我们知道G1和G2之间是有关系的,G1=nG2+r1,所以G1-nG2=r1,所以V(s1)-nV(s2)应该近似于r1。我们可以用(s1,a1,r1,s2)来训练critic。

下面给出一个例子来分别通过两种方法进行V的预测。

设定,进行八轮训练。得到的V(Sb)的平均值是3/4,试计算V(Sa)的值。

如果使用蒙特卡洛思想,那么V(Sa)的值应该等于G(Sa),即在环境Sa下采取动作后,后续所有reward的累计,即0+0=0。此时我们希望critic的输出V(Sa)是0。

如果使用时序查分思想,那么V(Sa)的值不仅取决于G(Sa),还取决于G(Sb),G(Sa)-G(Sb)应该等于r=0,所以V(Sa)的值也应该是0。

现在我们得到了用于评估状态价值函数的critic模型,接下来要将其运用在actor的训练中。

给定环境s1,actor做出动作a1,得到回报r1,产生新的环境s2,然后继续进行a2……循环此过程,最后累积的汇报为G1’,而用于评估该动作a的优势函数A定义为G1’-b;b为偏置,b的值就是我们通过critic模型在评估环境s1以后得到的价值函数V(s1)。可以看出,V(s1)代表的是在s1状态下,执行一系列动作以后得到的reward的累计的平均值;而G1’表示的是在状态s1采取动作a1之后再执行一系列动作以后得到的reward的累计值,G1’的值是有随机性的,因为actor在执行a1后的动作并不一定是固定的,所以用G1’-V(s1)实际上是用动作的平均优势值对单个动作的优势值进行了标准化,从而衡量单个动作的好坏。

http://www.cnnetsun.cn/news/134028.html

相关文章:

  • 储能辅助火电机组二次调频控制策略及容量优化配置研究Simulink实现
  • I2C与SPI
  • 配电网中的拥塞管理Congestion Management in Distribution Networks
  • 中华人民共和国劳动合同法
  • Kotaemon HTTPS 部署教程:SSL证书配置全流程
  • 【dz-956】基于单片机的公交车系统
  • SECS/GEM通信实战指南:Python实现半导体设备智能监控系统
  • Chrome测试版本128.0.6613.137:跨平台自动化测试的终极解决方案
  • CMA/CNAS软件测评机构:【Gatling数据库性能关联测试JDBC连接和SQL执行时间监控】
  • 微信自动化助手:零成本Windows部署全攻略
  • PCB激光钻孔:CO₂激光VS紫外激光,谁更胜一筹?
  • 数据质量革命:Great Expectations如何重塑企业数据治理格局
  • AI如何帮你快速解决SQL Server连接问题
  • torch.matmul性能优化:比传统方法快10倍的技巧
  • OpenModScan 完全指南:掌握工业自动化调试的必备利器
  • 深度学习压缩技术实战:CompressAI框架的5大核心应用场景
  • 10分钟快速上手:Android离线语音识别的终极解决方案
  • 高效PLC通信框架:S7NetPlus实用开发指南
  • 如何快速上手Semantic UI Calendar:终极前端日期选择器指南
  • 电商平台如何用Kafka工具实现实时订单处理
  • Rustup深度解析:告别版本管理烦恼的终极指南
  • FlyFish:企业级数据可视化的低代码革命
  • RobotGo事件监听:构建智能GUI自动化系统的核心技术
  • 超实用教程:Mikan Project带你轻松玩转动漫资源管理
  • Ubuntu输入法实战:打造个性化中文输入环境
  • 3大核心技巧:充分发挥Windows终端扩展能力
  • 零基础学编程:二维数组的5个简单练习
  • Jupyter AI深度应用:重新定义数据科学工作流的智能化转型
  • 基于鸿蒙的在线学习系统的设计与实现外文翻译
  • 基于回归分析的武当山景点游客流量分析与预测+中期检查报告