强化学习数学原理学习(六)

前言

这次是Actor-Critic

正文

Actor-Critic算法是一种经典的强化学习方法,结合了策略方法(Actor)和基于价值的方法(Critic)。通过同时学习一个策略和一个值函数,Actor-Critic在处理复杂环境中的连续动作空间时具有显著优势。以下是对Actor-Critic算法的详细介绍。

基本概念

  1. Actor(策略网络)

    • Actor负责执行策略,其任务是学会在给定状态下选择最优动作。具体地,它得到状态输入并输出动作的概率分布或具体的动作值。
    • 参数化的策略通常表示为:πθ​(a∣s),其中θ是策略的参数。
  2. Critic(价值网络)

    • Critic负责评估Actor的动作质量,基于当前策略评估状态-动作对的价值。它可以减小策略优化的方差。
    • 通常估计状态值函数Vw​(s)或动作值函数Qw​(s,a),其中w是价值网络的参数。

工作原理

Actor-Critic算法通过交替更新Actor和Critic来优化策略。其中Critic根据当前策略评估的值函数来指导Actor的更新。Critic负责计算优势(Advantage),用于更新Actor的策略。

数学原理

  1. 策略梯度更新(Policy Gradient Update)

    • Actor的更新方向由策略梯度定理确定,目的是最大化累积奖励:

    θ←θ+α∇θ​logπθ​(at​∣st​)A(st​,at​)

    • 其中A(st​,at​)=Q(st​,at​)−V(st​)是优势函数,用于减小方差。
  2. 状态值函数或动作值函数的更新

    • Critic通过最小化均方误差(Mean Squared Error, MSE)来加以训练:

    L(w)=E[(Rt+1​+γVw​(st+1​)−Vw​(st​))2]

    • 若维护的是动作值函数 Qw​(s,a),则使用TD误差:

    δt​=Rt+1​+γQw​(st+1​,at+1​)−Qw​(st​,at​)

    并更新:

    w←w+βδt​∇w​Qw​(st​,at​)

算法流程

  1. 初始化

    • 初始化Actor参数θ和Critic参数w。
  2. 循环执行直至收敛

    • 在环境中观察当前状态st​。
    • Actor根据策略πθ​选择动作at​。
    • 执行动作,观察奖励Rt+1​和新状态st+1​。
    • 使用Critic估计值函数并计算优势。
    • 更新Critic参数。
    • 更新Actor参数。
  3. 持续改进策略和价值函数

    • 直到策略收敛(表现达到期望)。

优势和应用

  • 优势

    • 减少策略梯度方法的方差,提高收敛速度。
    • 在复杂和连续动作空间中表现优异。
  • 应用场景

    • 适合处理那些传统值函数逼近算法难以处理的复杂环境,尤其是在决策路径非常长或问题规模过大时,例如机器人操作和游戏智能体。

实际应用算法

Basic Actor-Critic (QAC)

Basic Actor-Critic (QAC) 算法是强化学习中一种将策略优化与价值评估结合在一起的方法。它通过分开两个主要组件来加速学习:Actor,负责策略决策,和 Critic,负责为当前策略评估动作值。

Actor-Critic 角色
  1. Actor:

    • Actor相当于策略梯度方法中的策略部分,专注于策略的更新。基本上,该组件通过调整其参数 θ 来学习从状态 st​ 到动作 at​ 的映射。
    • 使用策略梯度的方法更新策略,通过最大化长期收益来更新策略参数。
  2. Critic:

    • Critic负责评估政策的表现,提供关于行动质量的反馈。QAC 中,Critic 通过估计动作值函数 qt​(st​,at​) 实现这一点。
    • 它采用时序差分(Temporal Difference, TD)学习方法来更新其参数,减少策略梯度的方差,提高学习效率。
QAC 和 REINFORCE 之间的区别
  • QAC(Q Actor-Critic):

    • 使用 TD 学习方法来估计动作值函数,即通过每一步的增量改进来实时更新价值。
    • 优势在于能更快地响应和调整策略,因为其做出更新时每次只需查阅最近发生的状态和动作。
  • REINFORCE:

    • 采用的是蒙特卡洛方法来进行价值估计,通过观察完整的序列来更新策略。
    • 全局更新策略和高方差的问题,即需要完整的回合数据,更新结果可能显得更迟滞。
算法细节
  1. Critic 极大化值函数:

    • 通过仿照 Sarsa 算法的策略,Critic Learns 提供对分布策略的最佳估计:

      wt+1​=wt​+αw​[rt+1​+γq(st+1​,at+1​,wt​)−q(st​,at​,wt​)]∇w​q(st​,at​,wt​)

    • 更新意味着Critic微调参数以逐步完善值函数的预测。

  2. Actor 执行策略更新:

    • 如 REINFORCE,Actor 借助策略梯度(PolicyGradient)来优化策略:

      θt+1​=θt​+αθ​∇θ​lnπ(at​∣st​,θt​)qt​(st​,at​,wt+1​)

    • 使用 q 函数值作为更新权重,促使 Actor 在决策时倾向于那些经过评估更有效的方法。

一句话总结

QAC通过结合Actor的策略更新和Critic的价值更新,引入一种更高效的强化学习机制,使策略能够更快速和更准确地适应环境变化,非常适合于需要快速反馈和实时响应的复杂任务。

A2C (Advantage actor-critic)

Advantage Actor-Critic (A2C) 是一个基于策略优化和价值估计的强化学习算法,它将策略梯度方法(Actor部分)与状态值函数估计(Critic部分)结合起来。A2C 通过引入“优势函数”来改进 Actor 的策略学习,并通过使用同步环境来提高效率和稳定性。下面是对 A2C 算法的详细介绍:

A2C 算法的组成
  1. Actor(策略网络)

    • Actor 的工作是基于输入的状态 st​,输出动作的概率分布 πθ​(a∣st​)。这个网络决定应该选择哪个动作来最大化长期回报。
  2. Critic(价值网络)

    • Critic 评估 Actor 的策略表现,通过估计当前策略下状态的值函数Vw​(st​),提供关于策略好坏的反馈。Critic 通过观察即时奖励来进行策略评估。
  3. 优势函数(Advantage Function)

    • 优势函数 A(st​,at​) 用于减少策略梯度的方差,提高学习稳定性。它被定义为一个动作与该动作在当前状态下的平均效果之间的差距:

      A(st​,at​)=Q(st​,at​)−V(st​)

    • 其中Q(st​,at​) 是动作值,该函数未明确计算,但优势可以通过 TD 误差(Temporal Difference Error)来近似。

A2C 算法的核心步骤
  1. 初始化策略和价值网络参数

    • 初始化策略参数 θ 和价值参数 w。
  2. 在多个环境中收集样本

    • 并行运行 N 个副本环境。在这些环境中,通过策略选择动作,记录状态、动作、奖励的序列。
  3. 计算优势

    • 计算每个动作选择的优势函数。优势是折扣后的累积奖励减去当前状态值:

      A(st​,at​)=(Rt+1​+γVw​(st+1​))−Vw​(st​)

    • 通常通过 TD 误差简化计算:

      δt​=Rt+1​+γVw​(st+1​)−Vw​(st​)

  4. 更新 Critic(价值网络)

    • 使用批量更新的方式更新价值网络中的参数以最小化 TD 误差的均方误差(MSE):

      w←w+αw​δt​∇w​Vw​(st​)

  5. 更新 Actor(策略网络)

    • 使用策略梯度更新策略网络参数,最小化优势函数的负值:

      θ←θ+αθ​∇θ​logπθ​(at​∣st​)δt​

A2C 的优势和特点
  • 同步更新:在 A3C 中,环境是异步运行的,而 A2C 则将多环境同步,合并成一个批次进行更新。这种方法使得算法更加稳定和高效,并容易实现。

  • 降低方差:通过使用优势函数,A2C 大大降低了策略梯度估计的方差,同时保持了策略的期望不变。

  • 适应性:A2C 能够快速响应环境变化和学习不同策略的需求,是处理具有大量连续状态和动作空间问题的有效工具。

尾声

本来还有个dpg,但是差不多,不写了

强化学习是一种机器学习方法,其核心思想是通过不断试错并接收环境反馈(奖励或惩罚),让智能体学习如何做出最优决策。以下是强化学习的一些关键数学原理: 1. **状态空间** (State Space): 表示智能体可能处于的所有情况或环境的状态集合,通常表示为集合S。 2. **动作空间** (Action Space): 智能体可以采取的一系列操作,每个操作对应于一个可能的结果,通常记为A。 3. **状态转移函数** (Transition Function): P(s', r | s, a),描述了在给定当前状态s和动作a后,到达下一个状态s'的概率以及获得的即时回报r。 4. **奖励函数** (Reward Function): R(s, a, s'),给出了从状态s执行动作a转移到状态s'后的奖励值。 5. **策略** (Policy): π(a | s),是一个概率分布,定义了在给定状态下选择动作的概率,即π(a) = Pr(a | s)。 6. **价值函数** (Value Function): - **状态值函数** (State Value): V(π, s), 表示遵循策略π在初始状态s下的长期期望累计奖励。 - **动作值函数** (Action Value): Q(π, s, a), 表示在状态s执行动作a后,按照策略π的长期期望奖励。 7. **优化目标** (Optimization Objective): 在强化学习中,通常目标是找到一个最优策略π*,使得长期期望累积奖励最大化,即V*(s) 或 Q*(s, a)。 8. **动态规划** (Dynamic Programming): 如Q-learning算法就是基于贝尔曼方程(Bellman Equation)来迭代逼近最优解的过程。 9. **探索与利用** (Exploration vs. Exploitation): 智能体需要在探索未知动作获取更多信息和尝试新策略(探索)和利用已知最有效动作以获得最大回报(利用)之间权衡。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值