强化学习基于价值与基于策略
时间: 2025-03-07 10:01:03 浏览: 39
### 基于价值的方法与基于策略方法的比较
#### Q-Learning的核心原理
Q-Learning属于基于价值的学习方法,旨在学习最优的动作值函数\(Q^*(s, a)\),即给定状态下采取某行动所能获得的最大期望回报。此方法利用贝尔曼方程迭代更新估计值,直到收敛至真实值[^1]。
对于离散动作空间的任务而言,由于不需要显式定义环境模型即可工作良好,并且易于理解和实现,因此成为入门级研究者首选工具之一。
```python
import numpy as np
def q_learning(env, num_episodes=500, alpha=0.8, gamma=0.95):
""" 实现简单的Q-learning算法 """
# 初始化Q表
q_table = np.zeros([env.observation_space.n, env.action_space.n])
for i in range(num_episodes):
state = env.reset()
while True:
action = choose_action(state, q_table) # 根据当前状态选择行为
next_state, reward, done, _ = env.step(action)
old_value = q_table[state, action]
next_max = np.max(q_table[next_state])
new_value = (1 - alpha) * old_value + \
alpha * (reward + gamma * next_max)
q_table[state, action] = new_value
if done:
break
state = next_state
return q_table
def choose_action(state, q_table, epsilon=0.1):
""" ε-greedy 策略选取action"""
...
```
#### Policy Gradient的核心原理
相比之下,Policy Gradient是一种直接针对参数化概率分布πθ(a|s)进行优化的技术,它试图最大化累积奖励关于这些参数的期望值。这种方法允许处理更广泛类型的决策过程——特别是那些涉及高维甚至无限大连续控制变量的情况,在这类环境中难以构建有效的表格表示法或近似器。
通过梯度上升调整权重向量w使得目标J(w)=E[Rt]尽可能增大,其中Rt代表从时间步t开始到结束所收到的所有折扣后的即时奖励之和。值得注意的是,为了稳定训练并提高样本效率,通常会引入基线b(s_t; w_b)(如平均历史收益)来减少方差而不影响无偏性。
```python
import torch
from torch.distributions import Categorical
class PolicyGradientAgent(torch.nn.Module):
def __init__(self, input_dim, output_dim):
super().__init__()
self.fc = torch.nn.Linear(input_dim, 64)
self.out = torch.nn.Linear(64, output_dim)
def forward(self, x):
h = F.relu(self.fc(x))
logits = self.out(h)
dist = Categorical(logits=logits)
return dist.sample(), dist.log_prob(dist.sample())
agent = PolicyGradientAgent(observation_size, n_actions)
for episode in range(total_episodes):
obs = env.reset()
log_probs = []
rewards = []
while not done:
action, log_prob = agent(torch.tensor(obs).float())
new_obs, reward, done, info = env.step(action.item())
log_probs.append(log_prob)
rewards.append(reward)
obs = new_obs
update_policy(agent.optimizer, log_probs, rewards)
```
#### 各自的优点与局限性
- **Q-Learning**
- 优点:无需事先知道转移概率矩阵P(s'|s,a); 对小型有限MDPs非常有效;容易与其他技术相结合形成新的变种版本。
- 缺点:仅限用于低维度的状态-动作对组合;当面对大规模问题时可能会遇到计算资源瓶颈以及泛化能力不足等问题。
- **Policy Gradients**
- 优点:可以直接作用于任何可微分的概率型映射关系之上;支持端到端的学习框架设计;更容易推广到复杂的现实世界挑战之中去。
- 缺点:性能高度依赖于初始化质量;存在较高的采样需求从而增加了探索成本;可能陷入局部极小解而非全局最优点附近徘徊不前。
#### 应用场景的选择依据
如果任务具有较小规模、明确界限良好的离散选项集,则倾向于采用像DQN这样的value-based方案更为合适一些。而对于涉及到多模态感知输入或者需要精细调控输出幅度的情形来说,policy gradient family无疑提供了更加灵活强大的解决方案路径。
阅读全文
相关推荐

















