DQN算法reinforceTRPO 算法PPO 算法Actor-Critic 算法DDPG算法总结

📅 2026/7/6 3:41:54
DQN算法reinforceTRPO 算法PPO 算法Actor-Critic 算法DDPG算法总结
纯价值的DQN算法和纯策略的reinforce相比前者利用时序差分的思想逐步更新最优的Q间接隐含推导最优策略策略选择使Q最大的动作。优点是1、可以逐步微调策略不需要等一条轨迹走完2、离线策略样本利用率高。缺点策略是隐式的由 Q 值间接定义无法直接输出动作的概率分布只能通过 ε-贪心等启发式方法进行探索和采样。纯策略的reinforce则是直接利用策略估值梯度来更新策略。缺点是1、必须等提条轨迹走完才可以更新策略。2、在线策略不可用先前的交互数据迭代。我们可以思考一下为什么纯价值是离线策略可以利用历史数据而纯策略是在线策略不可以利用历史数据纯价值方法的目标是找到最优 Q 函数进而隐式地导出最优策略。它不直接维护一个策略网络而是通过 Q 值的改进间接优化策略因此采用不同策略得到的数据只要是好的都可以优化价值函数。而纯策略不同它评估的是一个策略的价值用不同策略得出的数据本身就无法参与评估。后续提到的TRPO 算法/PPO 算法本质上就是一个局限优化范围的策略算法因此肯定是在线策略。而Actor-Critic 算法中的critic函数并没有参与策略梯度计算只是用Q给了一个权重因此仍然是一个策略算法因此是在线的。而DDPG算法中的critic函数则是直接决定了梯度的更新方向因此可以认为是价值算法范畴因此是离线的。3、直接利用策略梯度更新可能会导致网络在初期直接跌入谷底即得到一个超级差的策略而策略更新必须从这个超级差的策略基础上迭代。这就是前面博客提到的小概率事件 参数空间小变动 → 策略跳崖这个事件。REINFORCE用一条轨迹的数据来估计策略梯度这条轨迹是从旧策略采样出来的只能反映旧策略的“局部信息”。当这条轨迹中偶然出现了小概率事件 高回报的组合旧策略视角下的梯度就会给出一个“应该大幅提高这个动作概率”的建议。但这个建议是否在新策略视角下仍然合理REINFORCE完全没有考虑这个问题。也即缺乏一个评估策略是否能在较大概率下得到提升的机制。如何解决这一个问题给出了两种解决方案既然缺乏一个评估策略是否能在较大概率下得到提升的机制一种解决思路就是TRPO 算法/PPO 算法划定信任区域在小范围内尝试。TRPO通过KL散度约束PPO通过剪切操作都是为了防止新策略偏离旧策略太远。即使旧策略视角下的梯度给出了一个“冒险”的建议信任区域也会限制更新的步长防止策略跳崖。第二种思路就是完善这个评价机制这就是Actor-Critic 算法/DDPG 算法这种用Q来对新策略的提升可能性上一层保险。Actor-Critic/DDPG引入Critic价值函数来评估动作的好坏。Critic是通过大量历史数据经验回放训练出来的它提供的评估比单条轨迹的回报更稳定、更全面。这就像给Actor的更新上了一层“保险”——即使某条轨迹偶然出现了小概率事件 高回报Critic也会给出一个相对保守的评估不会让策略参数被带偏太远。当然虽然都利用了critic网络但二者的解决思路有所不同。基础的Actor-Critic 算法利用Q来给策略梯度加权重这里的优势函数A(s,a) 来自Critic即Q值或TD误差。但它只是一个标量权重——它告诉Actor“这次动作有多好”但它不参与梯度计算。DDPG则是将Q放入策略梯度的链条里这是一种直接的强绑定Actor的更新方向完全由Critic的Q值梯度决定。为什么DDPG收敛更快 正是因为Q直接参与了Actor的梯度计算。基础Actor-Critic中Actor只能通过“试错-评分-调整”的循环来逐步改进每次调整的方向由对数概率梯度决定Q只告诉它“这次好不好”。而DDPG中Q直接告诉Actor“往这个方向改”Actor不需要自己去猜测方向只需要按照Q的指引去执行。这种“直接指导”让DDPG能更高效地利用Q的信息因此收敛更快。但这种“强行绑定”也有代价DDPG对Q值估计的准确性要求更高。如果Q值估计有偏差Actor的更新方向就会被带偏这也是DDPG需要目标网络、软更新等稳定技巧的原因。