强化学习(四)—— Actor-Critic

在这里插入图片描述

1. 网络结构

  • 状态价值函数:
    V π ( s t ) = ∑ a Q π ( s t , a ) ⋅ π ( a ∣ s t ) V_\pi(s_t)=\sum_aQ_\pi(s_t,a)\cdot\pi(a|s_t) Vπ(st)=aQπ(st,a)π(ast)

  • 通过策略网络近似策略函数:
    π ( a ∣ s ) ≈ π ( a ∣ s ; θ ) \pi(a|s)\approx\pi(a|s;\theta) π(as)π(as;θ)
    在这里插入图片描述

  • 通过价值网络近似动作价值函数:
    q ( s , a ; W ) ≈ Q ( s , a ) q(s,a;W)\approx Q(s,a) q(s,a;W)Q(s,a)
    在这里插入图片描述

  • 神经网络近似后的状态价值函数:
    V ( s ; θ , W ) = ∑ a q ( s , a ; W ) ∗ π ( a ∣ s ; θ ) V(s;\theta ,W)=\sum_aq(s,a;W)*\pi(a|s;\theta) V(s;θ,W)=aq(s,a;W)π(as;θ)

  • 通过对策略网络不断更新以增加状态价值函数值。

  • 通过对价值网络不断更新来更好的预测所获得的回报。

2. 网络函数

Policy Network

  • 通过策略网络近似策略函数
    π ( a ∣ s t ) ≈ π ( a ∣ s t ; θ ) π(a|s_t)≈π(a|s_t;\theta) π(ast)π(ast;θ)
  • 状态价值函数及其近似
    V π ( s t ) = ∑ a π ( a ∣ s t ) Q π ( s t , a ) V_π(s_t)=\sum_aπ(a|s_t)Q_π(s_t,a) Vπ(st)=aπ(ast)Qπ(st,a)
    V ( s t ; θ ) = ∑ a π ( a ∣ s t ; θ ) ⋅ Q π ( s t , a ) V(s_t;\theta)=\sum_aπ(a|s_t;\theta)·Q_π(s_t,a) V(st;θ)=aπ(ast;θ)Qπ(st,a)
  • 策略学习最大化的目标函数
    J ( θ ) = E S [ V ( S ; θ ) ] J(\theta)=E_S[V(S;\theta)] J(θ)=ES[V(S;θ)]
  • 依据策略梯度上升进行
    θ ← θ + β ⋅ ∂ V ( s ; θ ) ∂ θ \theta\gets\theta+\beta·\frac{\partial V(s;\theta)}{\partial \theta} θ
### 策略迭代、值迭代与Actor-Critic方法的区别和联系 #### 定义与基本概念 策略迭代(Policy Iteration)是一种通过交替执行策略评估(Policy Evaluation)和策略改进(Policy Improvement)来优化策略的方法。其核心在于显式地维护并更新一个策略函数π(s)[^1]。 值迭代(Value Iteration)则跳过了显式的策略表示,直接通过对状态价值函数V(s)的更新逐步逼近最优解。它利用贝尔曼最优方程进行动态规划求解。 Actor-Critic方法属于强化学习中的另一大类算法,结合了基于策略的方法(Actor)和基于价值的方法(Critic)。其中,“Actor”负责生成行为策略π(a|s),而“Critic”用于估计该策略的价值函数V(s)或动作-价值函数Q(s,a)[^2]。 --- #### 差异分析 ##### 更新方式 - **策略迭代**依赖于完整的策略评估过程,在每次迭代中计算精确的状态价值函数后再进行策略改进。 - **值迭代**省去了单独的策略评估阶段,而是通过反复应用贝尔曼最优方程直接调整状态价值函数直至收敛。 - **Actor-Critic**采用样本驱动的方式在线更新参数,无需等待整个环境模型完全建模即可完成训练。具体来说,Actor部分通常使用梯度上升法最大化期望回报;Critic部分可以估算当前策略下的价值或者优势函数作为反馈信号。 ##### 数据需求 - 策略迭代和值迭代都假设能够访问到马尔可夫决策过程(Markov Decision Process, MDP)的具体结构,即已知转移概率P以及奖励R。 - Actor-Critic不需要确切知道MDP细节,仅需观察交互产生的轨迹数据就能工作,因此更适合处理复杂高维甚至连续空间的任务场景。 ##### 收敛速度与稳定性 - 策略迭代由于每步都会重新计算新的最佳策略,理论上具有较快的收敛速率但可能面临较高的时间开销。 - 值迭代简化了流程从而提升了效率但也可能导致某些情况下无法快速找到全局最优方案。 - 对于Actor-Critic而言,虽然引入随机性和近似误差可能会降低理论上的稳定程度,但在实际应用尤其是深度强化学习领域却展现了强大的灵活性与表现力。 --- #### 联系探讨 尽管三者的实现机制存在显著差异,它们之间仍然存在着紧密关联: - 都围绕着解决同一个目标——寻找使累积折扣奖励最大化的最优控制法则展开研究; - 可视为不同维度上探索同一问题解决方案的结果体现形式各异而已; - 特别是在现代深度强化学习框架下,许多先进算法实际上综合运用了上述各类技术特点加以改良创新,比如Deep Deterministic Policy Gradient (DDPG), Proximal Policy Optimization(PPO)等均不同程度融合了value-based critic component 和policy gradient based actor mechanism 的设计理念. 以下是几种典型组合模式的例子说明: 1. Advantage Actor Critic(A2C): 使用advantage function代替原始q-value estimation提供更精准评判依据给actor learning process. 2. Trust Region Policy Optimization(TRPO)/Proximal Policy Optimization(PPO): 这些方法进一步约束了policy update step size防止过大幅度改变破坏已有成果积累. --- ```python import numpy as np def policy_iteration(env): """ 实现简单版离散型环境下的策略迭代 """ V = np.zeros(env.nS) pi = np.random.choice(env.nA, size=env.nS) while True: # 策略评估 delta = 0 for s in range(env.nS): v = sum([p * (r + gamma * V[s_]) for p, s_, r, _ in env.P[s][pi[s]]]) delta = max(delta, abs(V[s]-v)) V[s] = v if delta < theta: break # 策略提升 policy_stable = True for s in range(env.nS): old_action = pi[s] q_values = [sum([p*(r + gamma*V[s_]) for p,s_,r,_ in env.P[s][a]]) for a in range(env.nA)] best_a = np.argmax(q_values) if old_action != best_a: policy_stable=False pi[s]=best_a if policy_stable: return V, pi def value_iteration(env): """ 实现简单版离散型环境下的值迭代 """ V = np.zeros(env.nS) while True: delta = 0 for s in range(env.nS): q_values = [sum([p*(r + gamma*V[s_]) for p,s_,r,_ in env.P[s][a]]) for a in range(env.nA)] new_v = max(q_values) delta = max(delta,abs(new_v-V[s])) V[s] = new_v if delta<theta:return V,np.array([np.argmax([sum([p*(r+gamma*V[s_])for p,s_,r,_in env.P[s][a]])for a in range(env.nA)])forsinsrange(env.nS)]) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值