200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【深度强化学习】DDPG算法

【深度强化学习】DDPG算法

时间:2024-02-05 11:41:12

相关推荐

【深度强化学习】DDPG算法

1 DDPG简介

确定性策略梯度(Deterministic Policy Gradient,DPG):确定性策略是和随机策略相对而言的。作为随机策略,在同一个状态处,采用的动作是基于一个概率分布,即是不确定的。而确定性策略则决定简单点,只取最大概率的动作,去掉这个概率分布。作为确定性策略,在同一个状态处,动作是唯一确定的,即策略变成:

π θ ( s ) = a \pi_\theta(s)=a πθ​(s)=a

DDPG的提出其实是为了让DQN可以扩展到连续的动作空间DDPG借鉴了DQN的两个技巧:经验回放 & 目标网络DDPG使用策略网络直接输出确定性动作DDPG使用了Actor-Critic的架构

2 DDPG原理

DDPG有四个网络:分别是Actor当前网络Actor目标网络Critic当前网络Critic目标网络

Critic当前网络、Critic目标网络 和DDQN的当前Q网络、目标Q网络的功能定位类似,但是DDPG有自己的Actor策略网络,因此不需要 ϵ \epsilon ϵ-贪婪法这样的策略,这部分DDQN的功能到了DDPG可以在Actor当前网络完成。而对经验回放池中采样的下一状态 S ′ S^\prime S′使用贪婪法选择动作 A ′ A^\prime A′,这部分工作由于用来估计目标Q值,因此可以放到Actor目标网络完成。

基于经验回放池和目标Actor网络提供的 S ′ , A ′ S^\prime,A^\prime S′,A′计算目标Q值的一部分,这部分由于是评估,因此放到Critic目标网络完成。而Critic目标网络计算出目标Q值一部分后,Critic当前网络会计算目标Q值,并进行网络参数的更新,并定期讲网络参数复制到Critic目标网络。

此外,Actor当前网络也会基于Critic目标网络计算出的目标Q值,进行网络参数的更新,并定期将网络参数复制到Actor目标网络。

根据上面的思路,总结DDPG 4个网络的功能定位:

Actor当前网络:负责策略网络参数 θ \theta θ的迭代更新,负责根据当前状态 S S S选择当前动作 A A A,用于和环境交互生成 S ′ , R S^\prime,R S′,RActor目标网络:负责根据经验回放池中采样的下一状态 S ′ S^\prime S′选择最优下一动作 A ′ A^\prime A′。网络参数 θ ′ \theta^\prime θ′定期从 θ \theta θ复制。Critic当前网络:负责价值网络参数 w w w的迭代更新,负责计算当前Q值 Q ( S , A , w ) Q(S,A,w) Q(S,A,w)。目标Q值 y i = R + γ Q ′ ( S ′ , A ′ , w ′ ) y_i=R+\gamma Q^\prime (S^\prime,A^\prime,w^\prime) yi​=R+γQ′(S′,A′,w′)Critic目标网络:负责计算目标Q值中的 Q ′ ( S ′ , A ′ , w ′ ) Q^\prime (S^\prime,A^\prime,w^\prime) Q′(S′,A′,w′)部分。网络参数 w ′ w^\prime w′定期从 w w w复制。

此外,DDPG从当前网络到目标网络的复制和我们之前讲到了DQN不一样。回想DQN,我们是直接把将当前Q网络的参数复制到目标Q网络,即w′=w, DDPG这里没有使用这种硬更新,而是使用了软更新,即每次参数只更新一点点,即: w ′ ← τ w + ( 1 − τ ) w ′ w^\prime\leftarrow \tau w+(1-\tau)w^\prime w′←τw+(1−τ)w′ θ ′ ← τ θ + ( 1 − τ ) θ ′ \theta^\prime\leftarrow \tau\theta+(1-\tau)\theta^\prime θ′←τθ+(1−τ)θ′其中τ是更新系数,一般取的比较小,比如0.1或者0.01这样的值。

同时,为了学习过程可以增加一些随机性,增加学习的覆盖,DDPG对选择出来的动作 A A A会增加一定的噪声 N \mathcal{N} N,即最终和环境交互的动作 A A A的表达式是: A = π θ ( S ) + N A=\pi_\theta(S)+\mathcal{N} A=πθ​(S)+N

3 DDPG 算法流程

输入:Actor当前网络 、Actor目标网络、Critic当前网络、Critic目标网络,参数分别为 θ , θ ′ , w , w ′ \theta,\theta^\prime,w,w^\prime θ,θ′,w,w′,衰减因子 γ \gamma γ,软更新系数 τ \tau τ,批量梯度下降的样本数 m m m,目标Q网络参数更新频率 C C C,最大迭代次数 T T T,随机噪声函数 N \mathcal{N} N

输出:最优Actor当前网络参数 θ \theta θ,Critic当前网络参数 w w w

随机初始化 θ , w , w ′ = w , θ ′ = θ \theta,w,w^\prime=w,\theta^\prime=\theta θ,w,w′=w,θ′=θ。清空经验回放集 D D Dfor i from 1 to T,进行迭代:

a) 初始化S为当前状态序列的第一个状态,拿到其特征向量 ϕ ( S ) \phi(S) ϕ(S)

b) 在Actor当前网络基于状态 S S S得到动作 A = π θ ( ϕ ( S ) ) + N A=\pi_\theta(\phi(S))+\mathcal{N} A=πθ​(ϕ(S))+N

c) 执行动作 A A A,得到新状态 S ′ S^\prime S′,奖励 R R R,是否终止状态 i s _ e n d is\_end is_end

d) 将五元组 { ϕ ( S ) , A , R , ϕ ( S ′ ) , i s _ e n d } \left\{ \phi(S),A,R,\phi(S^\prime),is\_end\right\} {ϕ(S),A,R,ϕ(S′),is_end}存入经验回放集 D D D

e) S = S ′ S=S^\prime S=S′

f) 从经验回放集合 D D D中采样 m m m个样本 { ϕ ( S j ) , A j , R j , ϕ ( S j ′ ) , i s _ e n d j } , j = 1 , 2 , … , m \left\{ \phi(S_j),A_j,R_j,\phi(S_j^\prime),is\_end_j\right\},j=1,2,\dots,m {ϕ(Sj​),Aj​,Rj​,ϕ(Sj′​),is_endj​},j=1,2,…,m,计算当前目标Q值 y j y_j yj​: y j = { R j i s _ e n d i s t r u e R j + γ Q ′ ( ϕ ( S j ′ ) , π θ ′ ( ϕ ( S j ′ ) ) , w ′ ) i s _ e n d i s f a l s e y_j= \begin{cases} R_j & is\_end\ is\ true \\ R_j+\gamma Q^\prime(\phi(S_j^\prime),\pi_{\theta^\prime}(\phi(S^\prime_j)),w^\prime) & is\_end\ is\ false \end{cases} yj​={Rj​Rj​+γQ′(ϕ(Sj′​),πθ′​(ϕ(Sj′​)),w′)​is_endistrueis_endisfalse​

g) 使用均方差损失函数 1 m ∑ j = 1 m ( y j − Q ( ϕ ( S j ) , A j , w ) ) 2 \frac{1}{m}\sum^m_{j=1}\left( y_j-Q(\phi(S_j),A_j,w)\right)^2 m1​∑j=1m​(yj​−Q(ϕ(Sj​),Aj​,w))2,通过神经网络的梯度反向传播来更新Critic当前网络参数 w w w

h) 使用 J ( θ ) = − 1 m ∑ j = 1 m Q ( s i , a i , θ ) J(\theta)=-\frac{1}{m}\sum^m_{j=1}Q(s_i,a_i,\theta) J(θ)=−m1​∑j=1m​Q(si​,ai​,θ),通过神经网络的梯度反向传播来更新Actor当前网络参数 θ \theta θ

i) 如果 t % C = 1 t\%C=1 t%C=1,则更新Critic目标网络和Actor目标网络参数: w ′ ← τ w + ( 1 − τ ) w ′ w^\prime\leftarrow \tau w+(1-\tau)w^\prime w′←τw+(1−τ)w′ θ ′ ← τ θ + ( 1 − τ ) θ ′ \theta^\prime\leftarrow \tau\theta+(1-\tau)\theta^\prime θ′←τθ+(1−τ)θ′

j) 如果 S ′ S^\prime S′为终止状态,当前episode迭代结束,否则转到步骤b

DDPG学习笔记参考刘建平:深度确定性策略梯度(DDPG)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。