Hi,这是第二篇算法简介呀
论文链接:“Continuous control with deep reinforcement learning.” ,2016
文章概述
这篇文章在确定性策略的基础上,结合Actor-Critic,提出了一种model-free的算法。直接输入原始像素,端到端(end-to-end)学习策略,输出确定动作。
2000年提出PG(Policy Gradient)算法,通过改变动作的出现概率来优化策略,使得total reward最大化, L ( θ ) = − ∑ log π ( a ∣ s , θ ) f ( s , a ) L(\theta)=-\sum \log \pi(a | s, \theta) f(s, a) L(θ)=−∑logπ(a∣s,θ)f(s,a)(损失函数通常需要最小化,所以加一个负号)。其中, f ( s , a ) f(s,a) f(s,a)为评价指标(reward或 Q Q Q或 A A A,或使用TD)。
2013年提出DQN(Deep Q-Network)算法。
2014年提出DPG(Deterministic Policy Gradient)算法。PG算法无法解决连续控制的问题,因为PG算法学习得到了随机策略之后,在每一步行为时还需要对得到的最优策略概率分布进行采样,才能获得action的具体值;而action通常是高维的向量,需要耗费大量计算。DPG算法直接对轨迹的价值函数求导,即 ∇ θ v μ θ ( s ) = ∇ θ [ Q μ ( s , μ θ ( s ) ) ] \nabla_{\theta} v_{\mu_{\theta}}(s)=\nabla_{\theta}\left[Q_{\mu}\left(s, \mu_{\theta}(s)\right)\right] ∇θvμθ(s)=∇θ[Qμ(s,μθ(s))](链式求导可得, ∇ θ v μ ( s ) = ∇ μ θ ( s ) [ Q μ ( s , μ θ ( s ) ) ] ∇ θ μ θ ( s ) \nabla_{\theta} v_{\mu}(s)=\nabla_{\mu_{\theta}(s)}\left[Q_{\mu}\left(s, \mu_{\theta}(s)\right)\right] \nabla_{\theta} \mu_{\theta}(s) ∇θvμ(s)=∇μθ(s)[Qμ(s,μθ(s))]∇θμθ(s)),因此它不用完成最优动作选取的过程,每一步的动作通过函数 μ μ μ直接获得确定的值。DPG值函数评估采用的是Q-learning的方法,使用TD(0)估计动作值函数并忽略重要性权重,利用replay buffer中随机抽取的数据集对策略进行训练。
2016年提出DDPG(Deep Deterministic Policy Gradient)算法,是Actor-Critic和DQN的结合,同时加入了BatchNormalization对输入进行预处理。Actor网络对应DPG算法,将特定state映射到特定action,Critic网络则对应Q-learning,使用价值函数对动作进行评估。Target网络的参数使用软更新,而不是直接复制Policy网络的参数,虽然使得学习变化放缓,但是增强了学习的稳定性。为了可以不断地探索空间,在探索策略 μ ′ \mu' μ′通过OU(Ornstein-Uhlenbeck)过程添加噪声样本。
公式理解
- 未来折扣回报
R t = ∑ i = t T γ ( i − t ) r ( s i , a i ) R_{t}=\sum_{i=t}^{T} \gamma^{(i-t)} r\left(s_{i}, a_{i}\right) Rt