转移价值?还是 策略? 一个可转移的连续强化学习的中心框架

本文研究了在连续控制任务中不同环境的转移学习,指出政策转移的局限性,并提出了一种基于模型的价值中心(MVC)框架。MVC在源域中同时学习动态和价值近似器,以提高在新环境中的适应性。实验表明,MVC在从头开始训练时表现与基线相当,但在转移学习中显著超越了它们。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TRANSFER VALUE OR POLICY? A AVALUE-CENTRIC FRAMEWORK TOWARDS TRANSFERRABLE CONTINUOUS REINFORCEMENT LEARNING

ABSTRACT

Transferring learned knowledge from one environment to another is an important step towards practical reinforcement learning (RL). In this paper, we investigate the problem of transfer learning across environments with different dynamics while accomplishing the same task in the continuous control domain. We start by illustrating the limitations of policy-centric methods (policy gradient, actor-critic, etc.) when transferring knowledge across environments. We then propose a general model-based value-centric

### 基于价值的方法与基于策略方法的比较 #### 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无疑提供了更加灵活强大的解决方案路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Adam婷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值