【5分钟 Paper】(TD3) Addressing Function Approximation Error in Actor-Critic Methods

简介: 【5分钟 Paper】(TD3) Addressing Function Approximation Error in Actor-Critic Methods
  • 论文题目:Addressing Function Approximation Error in Actor-Critic Methods

所解决的问题?

  value-base的强化学习值函数的近似估计会过估计值函数(DQN),作者将Double Q-Learning处理过拟合的思想引入actor critic算法中。(过估计的问题就在于累计误差会使得某些不好的statevalue变地很高(exploration 不充分所导致的))。还花了很大的心血在处理过估计问题修正后带来的方差过高的问题。

  作者将过估计的问题引入到continuous action space中,在continuous action space中处理过估计问题的难点在于policychange非常缓慢,导致currenttargetvalue差距不大, too similar to avoid maximization bias

背景

  以往的算法解决过估计问题的就是Double Q Learning那一套,但是这种方法虽然说会降低bias但是会引入高的variance(在选择下一个时刻s‘action的时候,不确定性变得更大才将以往DQNmax这一步变得不是那么max,与之带来的问题就是方差会变大),仍然会对policy的优化起负面作用。作者是用clipped double q learning来解决这个问题。

所采用的方法?

  作者所采用的很多components用于减少方差:

  1. DQN 中的 target network 用于variance reduction by reducing the accumulation of errors(不使用target network的使用是振荡更新的)。
  2. 为了解决valuepolicy耦合的关系,提出了延迟更新(delaying policy updates)的方式。(to address the coupling of value and policy, we propose delaying policy updates until the value estimate has converged)
  3. 提出了novel regularization的更新方式SARSA-style ( the variance reduction by averaging over valueestimates)。这种方法参考的是18Nachum的将值函数smooth能够减少方差的算法。
  • Nachum, O., Norouzi, M., Tucker, G., and Schuurmans, D. Smoothed action value functions for learning gaussian policies. arXiv preprint arXiv:1803.02348, 2018.

  当然multi-step return也能够去权衡方差与偏差之间的关系,还有一些放在文末扩展阅读里面了。

  作者将上述修正方法用于Deep Deterministic Policy Gradient算法中并将其命名为Twin Delayed Deep Deterministic policy gradient (TD3)算法中。一种考虑了在policyvalue 函数近似过程中所带来的一些误差对AC框架所带来的影响。

前人算法回顾

  首先回顾一下DPG算法的更新公式:


image.png

image.png

Clipped Double Q-Learning


  Double DQN中的target

image.png

Double Q-learning

image.png

  Clipped Double Q-learning


image.png

这里的image.png的是target actor(可参见伪代码,只用了一个actor)。这种方法会underestimation bias,由于underestimation bias 这种方法就需要加大探索度,不然算法的效率就会很低。

image.png


Addressing Variance


  设置target network用于减小policy更新所带的的方差,不然state value approx会很容易发散,不收敛。

  作者使用policy相比于value做延迟更新(Delayed Policy Updates),这样保证策略更新的时候,先将TD误差最小化,这样不会使得policy更新的时候受误差影响,导致其方差高。


Target Policy Smoothing Regularization


  作者认为similar actions should have similar value,所以对某个action周围加上少许噪声能够使得模型泛化能力更强。

image.png

  • Nachum, O., Norouzi, M., Tucker, G., and Schuurmans, D. Smoothed action value functions for learning gaussian policies. arXiv preprint arXiv:1803.02348, 2018.

算法伪代码:

取得的效果?

  作者与当前的sota算法对比,结果如下:

  作者还验证了target neteork对收敛性的影响:

  最终的实验:

所出版信息?作者信息?


  ICML2018上的一篇文章,Scott Fujimoto is a PhD student at McGill University and Mila. He is the author of TD3 as well as some of the recent developments in batch deep reinforcement learning.

  他还有俩篇论文比较有意思:Off-Policy Deep Reinforcement Learning without ExplorationBenchmarking Batch Deep Reinforcement Learning Algorithms


扩展阅读


  作者为了验证论文的复现性,参考了2017Henderson, P的文章实验了很多随机种子。

  • 参考文献:Henderson, P., Islam, R., Bachman, P., Pineau, J., Precup, D., and Meger, D. Deep Reinforcement Learning that Matters. arXiv preprint arXiv:1709.06560, 2017

  还有一些平衡biasvariance的方法,比如:

  1. importance sampling
  • Precup, D., Sutton, R. S., and Dasgupta, S. Off-policy temporal-difference learning with function approximation. In International Conference on Machine Learning, pp. 417–424, 2001.
  • Munos, R., Stepleton, T., Harutyunyan, A., and Bellemare, M. Safe and efficient off-policy reinforcement learning. In Advances in Neural Information Processing Systems, pp. 1054–1062, 2016.
  1. distributed methods
  • Mnih, V., Badia, A. P., Mirza, M., Graves, A., Lillicrap, T., Harley, T., Silver, D., and Kavukcuoglu, K. Asynchronous methods for deep reinforcement learning. In Internationa lConference on Machine Learning, pp.1928– 1937, 2016.
  • Espeholt, L., Soyer, H., Munos, R., Simonyan, K., Mnih, V., Ward, T., Doron, Y., Firoiu, V., Harley, T., Dunning, I., et al. Impala: Scalable distributed deep-rl with importance weighted actor-learner architectures. arXiv preprint arXiv:1802.01561, 2018.
  1. approximate bounds
  • He, F. S., Liu, Y., Schwing, A. G., and Peng, J. Learning to play in a day: Faster deep reinforcement learning by optimality tightening. arXiv preprint arXiv:1611.01606, 2016.
  1. reduce discount factor to reduce the contribution of each error
  • Petrik, M. and Scherrer, B. Biasing approximate dynamic programming with a lower discount factor. In Advancesin Neural Information Processing Systems, pp. 1265–1272, 2009.

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!


相关文章
|
数据可视化 算法
Paper:《Greedy Function Approximation: A Gradient Boosting Machine贪心函数逼近:梯度提升机器模型》翻译与解读—PDP来源
Paper:《Greedy Function Approximation: A Gradient Boosting Machine贪心函数逼近:梯度提升机器模型》翻译与解读—PDP来源
|
1天前
|
存储
function(函数)
在 Lua 中,函数作为第一类值可存储于变量,如示例所示:`factorial1` 和 `factorial2` 存储相同函数。此外,函数可作为参数传递,如 `testFun` 接收一个表和一个匿名函数,该匿名函数在迭代中处理键值对,输出 `key1=val1` 和 `key2=val2`。
|
5天前
|
Serverless 应用服务中间件 数据安全/隐私保护
Serverless 应用引擎操作报错合集之在阿里函数计算中,函数执行超时,报错Function time out after如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
15 4
|
1月前
|
资源调度 Serverless 计算机视觉
高斯函数 Gaussian Function
**高斯函数,或称正态分布,以数学家高斯命名,具有钟形曲线特征。关键参数包括期望值μ(决定分布中心)和标准差σ(影响分布的宽度)。当μ=0且σ²=1时,分布为标准正态分布。高斯函数广泛应用于统计学、信号处理和图像处理,如高斯滤波器用于图像模糊。其概率密度函数为e^(-x²/2σ²),积分结果为误差函数。在编程中,高斯函数常用于创建二维权重矩阵进行图像的加权平均,实现模糊效果。
18 1
|
2月前
|
算法 Serverless C语言
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
33 1
|
2月前
|
存储 安全 编译器
【C++ 包装器类 std::function 和 函数适配器 std::bind】 C++11 全面的std::function和std::bind的入门使用教程
【C++ 包装器类 std::function 和 函数适配器 std::bind】 C++11 全面的std::function和std::bind的入门使用教程
33 0
|
2月前
|
SQL Oracle 关系型数据库
Flink的表值函数(Table-Valued Function,TVF)是一种返回值是一张表的函数
【2月更文挑战第17天】Flink的表值函数(Table-Valued Function,TVF)是一种返回值是一张表的函数
21 1
|
7月前
|
存储 数据安全/隐私保护
均匀散列函数(Uniform Hash Function)
均匀散列函数(Uniform Hash Function)是一种将不同长度的输入数据映射到相同大小的输出数据的散列函数。均匀散列函数的主要特点是,对于相同的输入数据,无论其长度如何,都会得到相同的输出散列值。这种散列函数常用于数据结构的存储和查找,例如哈希表、散列表等。
102 3
|
4月前
|
存储 SQL 安全
函数(Function)和存储过程(Stored Procedure)的区别(小白情感版)
函数(Function)和存储过程(Stored Procedure)的区别(小白情感版)
42 0
|
4月前
|
缓存
pytest 运行测试函数报错的解决办法 TypeError: calling <function xxx> returned None, not a test
pytest 运行测试函数报错的解决办法 TypeError: calling <function xxx> returned None, not a test
101 0

热门文章

最新文章