![e515f246c382f1ce73d9e9b164d2dc68.png](https://i-blog.csdnimg.cn/blog_migrate/3afe9bbf361ffcac1353e95371af5650.jpeg)
欢迎转载,转载请注明出处——知乎专栏“机器学习与控制论”。
读过DDPG论文[1]的同学几乎都会有一个问题,论文中使用Ornstein-Uhlenbeck噪声用于探索,比较难理解,参数又多,真的会比简单的高斯噪声等更有效吗?
由于大部分回答都没有说清楚甚至完全相反地解释该部分,本文会尝试从噪声在强化学习中的应用背景、Ornstein-Uhlenbeck过程的定义、产生作用的原因、实验四部分阐述原因。
先放结论:相比于独立噪声,OU噪声适合于惯性系统,尤其是时间离散化粒度较小的情况,此外,它可以保护实际系统,如机械臂。之所以大家觉得OU噪声没用,是因为强化学习benchmark都是仿真任务,而且往往都不用考虑时间离散化的问题。另外,即使遇到时间离散粒度小的问题,一般直接增大离散化粒度之后独立噪声也可以起到很好的效果。
1.DDPG中的探索噪声
我们知道,DDPG是典型的off-policy的方法,可叠加噪声的执行策略会独立于评估/学习的策略。也就是说,DDPG学习的策略是确定性策略,即确定性的Actor网络,而探索部分可以自定义探索噪声。
先不考虑文中的OU噪声,一提到噪声,首先想到的是简单又易于实现的高斯噪声。并且,确定性策略加上高斯噪声后,形式上就和REINFORCE等Actor-Critic的随机策略一致了。
(1)高斯噪声
策略网络直接的输出,作为均值,叠加上高斯分布
action
显然,高斯噪声是时序上不相关的,前一步和后一步选取动作的时候噪声都是独立的。前后两动作之间也只是通过状态使其独立。
其实TD3算法[2]中正是采用这种探索噪声,他们声称:
Unlike the original implementation of DDPG, we used uncorrelated noise for exploration as we found noise drawn from the Ornstein-Uhlenbeck (Uhlenbeck & Ornstein, 1930) process offered no performance benefits.
真的是这样吗?
(2)Ornstein-Uhlenbeck噪声
DDPG中对引入OU噪声的说明如下图,即利用OU过程产生时序相关的探索,以提高在惯性系统中的控制任务的探索效率。这里的惯性系统是指的环境。
![dc5b792c9f0096a0f24fb66fa23dc7a8.png](https://i-blog.csdnimg.cn/blog_migrate/e7c362a840337e5726e96ed6d13bec14.png)
另外一处,同样提到OU噪声是为了在有momentum的环境中探索得更好。
![8aee209be200f82b03acdda21c947878.png](https://i-blog.csdnimg.cn/blog_migrate/feea47720abf7dbac4ebe6806da0e837.png)
先不谈控制理论,这个环境大概怎么理解呢?你可以想象为一个慢响应的环境,比如夏天在一个闷热的房间,