强化学习(SQL)

 SQL——soft Q-learning

这是一种在最大化期望累计奖励的基础上,最大化熵项的算法,即该算法的优化目标是累计奖励和熵(entropy)的和

SQL的好处:

①探索性强:可以在多模态任务中找到最佳的方案,多模态是指agents需要去规划多个目标

②更鲁棒性:目标中加入熵会让agent学习到所有动作,当环境中加入干扰噪声,呢么之前规划好的动作可能就不能用了,那么此时就可以用其余动作

③组合性更强:通过最大熵,policy学习到所有解决任务的方法,这样的policy就更有利于学习新的任务

SQL的输出是一个玻尔兹曼分布,包括了每个动作的可能性,当然不同动作采样概率有高有低,概率大容易被采到并输出,概率小的较难被输出。

举例说明SQL的抗干扰性:假设已经找到了最佳的路径,但是突然出现干扰,如果是Q-learning这种输出靠着最大Q对应的动作,那么agent就会一直在干扰处徘徊,但是SQL就会不一样,对于所有动作都会被选择到,只不过概率有高低罢了,那么当遇到干扰时,agent就有机会找到另一条合适的路径。

含熵优化目标:

增加信息熵项,那么优化时,就会使得输出的每一个动作的概率尽量分散,因为在一个集合中,体系越混乱,种类越趋于平均,熵值越大。

伪代码:

初始化分布参数:\theta\phi

更新目标参数:\bar{\theta }\leftarrow \theta\bar{\phi }\leftarrow \phi

空的回访缓存区D

for each epoch do

        for each t do 

                通过f^{\phi }获取状态s_{t}对应的动作:a_{t}\leftarrow f^{\phi }\left ( \xi ;s_{t} \right ),其中\xi \sim N\left ( 0,I \right )

                与环境交互获得下一时刻的状态:s_{t+1}\sim p_{s}\left ( s_{t+1}|s_{t},a_{t} \right )

                将经验数据存入回放缓存区D

                从回放缓存区中抽取小样本数据

                更新值函数网络:计算状态s_{t+1}对应的action及value,计算梯度并且更新参数\theta

                

                更新采集网络:计算状态s_{t}对应的\xi和采集到的action,更新网络参数\phi

                

        end for

        达到目标参数更新频次:\bar{\theta }\leftarrow \theta\bar{\phi }\leftarrow \phi

end for

注意:

1、有两个网络:采集网络&值函数网络,与AC算法的actor网络&critic网络形式相似

2、两大优化算法:SVGD&ADAM,采集网络:SVGD优化KL散度然后Adam更新参数\phi;值函数网络:Adam优化MSE以及更新参数\theta

相关推荐

  1. 强化学习计划

    2024-02-21 08:10:04       35 阅读
  2. 强化学习(一)

    2024-02-21 08:10:04       22 阅读
  3. 强化学习面试题

    2024-02-21 08:10:04       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-21 08:10:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-21 08:10:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-21 08:10:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-21 08:10:04       18 阅读

热门阅读

  1. 寄存器 Flip-Flop

    2024-02-21 08:10:04       20 阅读
  2. 拍立淘助力电商新趋势:以图搜图购物成主流

    2024-02-21 08:10:04       30 阅读
  3. LeetCode 56 合并区间

    2024-02-21 08:10:04       31 阅读
  4. ddp是什么意思

    2024-02-21 08:10:04       29 阅读
  5. Rust语言之多线程

    2024-02-21 08:10:04       21 阅读
  6. 【编程】C++语言编程规范-2

    2024-02-21 08:10:04       26 阅读
  7. Android Studio 的六种基本布局

    2024-02-21 08:10:04       26 阅读