强化学习_演员-裁判方法

演员-裁判方法 Actor-Critic

演员-评论家(Actor-Critic)方法,这是一种结合了基于价值(Value-Based)和基于策略(Policy-Based)的强化学习方法。这种方法使用两个神经网络:一个用于策略(演员),另一个用于价值函数(评论家)。

1. 演员-评论家方法概述

1.1 价值网络和策略网络
  • 价值网络(Critic):估计给定状态-动作对的预期回报,即动作价值函数 Q(s,a)。
  • 策略网络(Actor):直接输出在给定状态下采取各个动作的概率。
1.2 状态价值函数近似
  • 状态价值函数 V(s) 可以通过策略网络和价值网络来近似:

    image-20250319144740937

    其中,θ 是策略网络的参数,w 是价值网络的参数

2. 网络结构

2.1 策略网络(Actor)
  • 输入:状态 s(例如游戏的屏幕截图)。
  • 输出:动作的概率分布。
  • 使用Softmax激活函数确保输出的概率和为1。
2.2 价值网络(Critic)
  • 输入:状态 s 和动作 a
  • 输出:近似的动作价值(标量)。

3. 训练神经网络

3.1 更新参数
  • 目标是更新策略网络和价值网络的参数,使得状态价值函数 V(s;θ,w) 最大化。
3.2 更新策略网络
  • 使用策略梯度方法更新策略网络,以增加状态价值。
  • 评论家(价值网络)提供对演员(策略网络)的监督。
3.3 更新价值网络
  • 使用时序差分(TD)学习更新价值网络,以更好地估计回报。
  • 评论家的判断变得更加准确,监督完全来自奖励。

4. 算法步骤

4.1 观察和动作
  1. 观察状态 st
  2. 根据策略网络 π(⋅∣st;θt) 随机采样动作 at
4.2 执行和观察
  1. 执行动作 at,环境提供新状态 s(t+1) 和奖励 rt
  2. 根据策略网络随机采样 a(t+1)(但不执行)。(只是我们假想的动作)
4.3 评估和计算
  1. 评估价值网络:image-20250319145012424
  2. 计算TD误差:image-20250319145030684
4.4 微分和更新
  1. 对价值网络进行微分:image-20250319145049577
  2. 更新价值网络:image-20250319145106528
  3. 对策略网络进行微分:image-20250319145116761
  4. 更新策略网络:image-20250319145125713

5. 总结

5.1 演员和评论家的角色
  • 训练期间
    • 智能体由策略网络(演员)控制:atπ(⋅∣st;θ)。
    • 价值网络(评论家)提供对演员的监督。
  • 训练后
    • 智能体直接使用训练好的策略网络进行决策。
5.2 训练
  • 使用策略梯度更新策略网络(演员),以增加状态价值。
  • 使用TD学习更新价值网络(评论家),以更好地估计动作价值。
5.3 策略梯度与基线
  • 基线 b 用于减少策略梯度的方差,它应该是独立于 θa 的。
  • 一个好的基线可以是image-20250319145155994(TD目标)。
5.4 确定性策略梯度(DPG)
  • DPG是一种特殊的演员-评论家方法,其中策略网络是确定性的,输出是给定状态下的最佳动作。
  • 通过最大化价值函数 Q(s,a;w) 来训练策略网络。
这种方法在处理复杂环境和高维状态空间时特别有效,因为它利用了策略的直接建模和价值函数的指导。
@startuml 申诉对象(AppealBean)生命周期状态图 ' 老版本语法:用[*]表初始,end表终止,状态用state,转换用→ [*] --> DRAFT : 领队创建申诉(触发事件:点击"新建申诉") note on transition : 动作:初始化appealId、记录createTime state DRAFT { DRAFT --> DRAFT : 领队修改草稿(触发事件:编辑内容/附件) note on transition : 动作:更新appealContent、attachUrls、updateTime DRAFT --> PENDING : 领队提交正式申诉(触发事件:选择"正式提交") note on transition : 动作:1.设置status=PENDING\n2.发送通知给项目裁判长\n3.记录submitTime DRAFT --> [*] : 领队删除草稿(触发事件:点击"删除草稿") note on transition : 动作:从数据库删除该申诉记录 } state PENDING { PENDING --> PENDING_RULING : 裁判长提交说明(触发事件:点击"提交说明") note on transition : 动作:1.设置status=PENDING_RULING\n2.发送通知给总裁判长\n3.记录explainSubmitTime PENDING --> DRAFT : 裁判长退回申诉(触发事件:点击"退回补充") note on transition : 动作:1.设置status=DRAFT\n2.添加退回备注\n3.通知领队补充材料 } state PENDING_RULING { PENDING_RULING --> RULED_MAINTAIN : 总裁判长裁定维持(触发事件:选择"维持原结果") note on transition : 动作:1.设置status=RULED_MAINTAIN\n2.记录rulingResult、rulingReason\n3.通知领队+裁判长 PENDING_RULING --> RULED_ADJUST : 总裁判长裁定调整(触发事件:选择"调整结果") note on transition : 动作:1.设置status=RULED_ADJUST\n2.记录newScore、newRank\n3.触发成绩调整流程\n4.通知相关方 PENDING_RULING --> PENDING : 总裁判长退回说明(触发事件:点击"退回说明") note on transition : 动作:1.设置status=PENDING\n2.添加退回理由\n3.通知裁判长补充说明 } RULED_MAINTAIN --> ARCHIVED : 系统归档(触发事件:项目结束7天后) note on transition : 动作:设置status=ARCHIVED,标记为历史数据 RULED_ADJUST --> ARCHIVED : 系统归档(触发事件:项目结束7天后) note on transition : 动作:设置status=ARCHIVED,关联调整记录 ARCHIVED --> end : 数据永久存储(触发事件:超过保存周期) @enduml 这段代码有问题吗
10-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值