强化学习笔记 之 SAC算法样例(基于百度飞桨PARL)

Abstract

从Sarsa、Q-learning开始,到DQN,再到Policy Gradient,最后到DDPG,一步步走进了强化学习的世界。
在学习了这些基础算法之后,本文记录一下进阶算法SAC的学习心得。
SAC是Soft Actor-Critic的缩写,由伯克利人工智能研究实验室(BAIR)的Tuomas Haarnoja等人,提出于2018年。
传送门:Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor

说说论文

整个论文大概看下来,感觉SAC可以大致看成是DDPG的增强版,所以接下来主要说一说这个算法在DDPG基础上增强了什么。

论文认为,有两大因素使深度强化学习的实际应用变得困难:

  • 非常高的采样复杂度(very high sample complexity)
  • 脆弱的收敛性质(brittle convergence properties)

于是论文提出了SAC,一个基于最大熵RL框架的off-policy actor-critic深度强化学习算法。(soft actor-critic, an offpolicy actor-critic deep RL algorithm based on the maximum entropy reinforcement learning framework)

什么是最大熵强化学习呢?
先说一下,在DDPG中,我们是以使reward最大化为目标的。那么在SAC中,在使reward最大化的同时,也要最大化策略分布的熵。这就是最大熵。

跑个题,什么是熵呢?
我们不说热力学熵,也不说信息熵。在这里的熵,个人理解,是用来衡量分布的随机程度的。分布越随机,熵越大。

言归正传,加入熵最大化到底增强了什么呢。个人理解,就是使得决策的分布不要像DDPG一样,趋于集中到一个最优解。而是希望同时存在更多的,同样优的策略。

论文中还给出了理论推导,实验数据等内容,这里就不赘述了。

说说代码

一起看一看,百度飞桨PaddlePaddle的PARL框架中的SAC样例。
传送门:GitHub中的样例
(GitHub访问困难的同学可以自己搜索一下Gitee,也可以找到的)

因为使用了PARL框架封装好的算法,整个实现显得很整洁。共分为三个文件:

  • mujoco_agent.py
  • mujoco_model.py
  • train.py
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值