【详解+推导!!】Pathwise Derivative Policy Gradient(PDPG)

Pathwise Derivative Policy Gradient(PDPG) 是一种强化学习方法,可以解决连续动作的问题。文章目录1. 前缀知识2. 如何理解这个算法与Actor-Critic对比理解与Q-Learning对比理解3. 算法过程1. 前缀知识如果想比较深刻的理解Pathwise Derivative Policy Gradient(PDPG)需要提前了解一下内容:Policy Gradient:https://blog.csdn.net/qq_33302004/article
摘要由CSDN通过智能技术生成

Pathwise Derivative Policy Gradient(PDPG) 是一种强化学习方法,可以解决连续动作的问题。
这和我们树枝的DDPG指的是相同的算法。

1. 前缀知识

如果想比较深刻的理解Pathwise Derivative Policy Gradient(PDPG)需要提前了解一下内容:

2. 如何理解这个算法

我们可以从两个角度来理解 Pathwise Derivative Policy Gradient(PDPG) 算法,一个是从Actor-Critic算法角度去看、另一个是从Q-Learning角度去看。

与Actor-Critic对比理解

PDPG算法可以理解为一种特别的Actor-Critic算法,其区别就是,传统的Actor-Critic算法是用 V π ( s ) V^{\pi}(s) Vπ(s)作为Critic,而PDPG算法是使用 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)作为Critic。

与Q-Learning对比理解

PDPG算法解决了 Q-Learning算法无法解决连动作的问题,我们都知道Q-Learning算法的决策思路是

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
% 定义4个隐含层 W1 = rand(size(Ttrain2)); BI1 = rand(size(Ttrain2)); W2 = rand(size(Ttrain2)); BI2 = rand(size(Ttrain2)); W3 = rand(size(Ttrain2)); BI3 = rand(size(Ttrain2)); W4 = rand(size(Ttrain2)); BI4 = rand(size(Ttrain2)); % 输出层 WO = rand(size(Ttrain2)); BO = rand(size(Ttrain2)); % 学习率 Lr = 0.005; % 迭代次数 Iter = 2000; for it = 1:Iter it; % 训练 tmps1 = relu(Ptrain2.*WI + BI); residual1 = Ttrain2 - tmps1; % 第一层残差 tmps2 = relu(tmps1.*W1 + BI1); residual2 = Ttrain2 - tmps2; % 第二层残差 tmps3 = relu(tmps2.*W2 + BI2); residual3 = Ttrain2 - tmps3; % 第三层残差 tmps4 = relu(tmps3.*W3 + BI3); residual4 = Ttrain2 - tmps4; % 第四层残差 tmps5 = relu(tmps4.*W4 + BI4); residual5 = Ttrain2 - tmps5; % 第五层残差 tmps6 = relu(tmps5.*WO+BO); residual6 = Ttrain2 - tmps6; % 输出层残差 % 更新网络参数 W1 = W1 + Lr * relu_derivative(residual2) .* tmps1 + Lr * relu_derivative(residual1) .* tmps1; BI1 = BI1 + Lr * relu_derivative(residual2) + Lr * relu_derivative(residual1); W2 = W2 + Lr * relu_derivative(residual3) .* tmps2 + Lr * relu_derivative(residual2) .* tmps2; BI2 = BI2 + Lr * relu_derivative(residual3) + Lr * relu_derivative(residual2); W3 = W3 + Lr * relu_derivative(residual4) .* tmps3 + Lr * relu_derivative(residual3) .* tmps3; BI3 = BI3 + Lr * relu_derivative(residual4) + Lr * relu_derivative(residual3); W4 = W4 + Lr * relu_derivative(residual5) .* tmps4 + Lr * relu_derivative(residual4) .* tmps4; BI4 = BI4 + Lr * relu_derivative(residual5) + Lr * relu_derivative(residual4); % 输出层 WO = WO + Lr * residual6 .* tmps5; BO = BO + Lr * residual6; errors(it) = mean2(abs(residual6)); end
07-12

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值