模型结构
模型同时学习action value Q、state value V和policy π。
- V中引入Target V,供Q学习时使用;Target Network使学习有章可循、效率更高。
- Q有两个单独的网络,选取最小值供V和π学习时使用,希望减弱Q的过高估计。
- π学习的是分布的参数:均值和标准差;这与DDPG不同,DDPG的π是Deterministic的,输出直接就是action,而SAC学习的是个分布,学习时action需要从分布中采样,是Stochastic的。
Soft
Soft,Smoothing,Stable。
原始的强化学习最大熵目标函数(maximum entropy objective)如下,比最初的累计奖赏,增加了policy π的信息熵。
A3C目标函数里的熵正则项和形式一样,只是作为正则项,系数很小。
在Soft Policy Iteration中,近似soft Q-value的迭代更新规则如下:
其中V(s)为soft state value function:
根据信息熵的定义:
soft state value function和maximum entropy objective在形式上还是一致的,系数α能通过调节Q-value消掉,可忽略。
TD3的soft state value function V形式与Soft Policy Iteration中类似,但是SAC的action是通过对policy π采样确定地得到,每条数据数据的信息熵就是其不确定性-logπ(a|s);但考虑整个批量batch数据,其整体还是π的信息熵,与maximum entropy方向一致。
信息熵越大,分布越均匀,所以最大化信息熵,有利于增加模型的探索能力。
Soft State Value 目标函数
通过Q和π网络近似V,注意s来自Experience Replay Buffer,但是a来自当前的π。
Soft Q-Value 目标函数
通过V近似Q,这里的V来自TargetNetwork V。
r(s,a)是环境的即时奖赏;s_t+1来自环境,由于环境是model-free,可以理解成s_t+1是确定的。
Policy 目标函数
通过Q近似π。
- 基于π分布的采样增加扰动,for lower variance estimator。
- KL散度基于Q的分布近似忽略分母析分函数。
- 采样之后,a是确定的,KL散度即熵的差容易求解,注意Q值来自神经网络,值可以scale,无需关注系数。
学习过程
整体采用Replay Buffer,三个目标函数分别进行梯度学习。
总结
- SAC的关键是引入最大熵,优化soft value。
- 最大熵会使action探索能力很强,模型效果更平稳,但注意需要场景也是接受较强的探索。
- 从结构上讲,模型冗余,在学习π和soft Q的情况下,又学习了soft V。
- 由于面临的是连续动作空间,求期望的地方,采取了采样近似,需要批次处理的数据集更加完整。
- 优化技巧比较晦涩,感觉很难通用。