李宏毅深度强化学习(国语)课程(2018)
李宏毅深度强化学习(国语)课程(2018)_哔哩哔哩_bilibili
Reward Shaping:环境有一个固定的Reward,但人类为了引导Agent,让他学出来的结果是要的样子,刻意的去设计的Reward。
方法一:Curiosity
引入新函数,ICM。论文(https://arxiv.org/pdf/1705.05363.pdf)
ICM函数的全称为 Intrinsic curiosity module,是用来为actor生成好奇感的函数,网络结构如下。
ICM函数将st,at,st+1,作为输入,得到一种新的reward ri,actor的目标是最大化两个部分的reward,即r,ri。可以理解为,新的模型中,actor被鼓励基于好奇去采取不一样的行动,这样的好奇带来的行动可以给actor带来额外的收益。
在这个模型中,两个网络network1 和 network2 是单独进行训练的。
Network 1:将提取的st,at的特征作为输入,输出st+1的提取特征的估计。然后真实的st+1的提取特征用来与估计值比较,得到两者之间的差别。两者差别越大则reward ri越大,也就是说,模型鼓励actor去冒险。
Network2::用来提取与action相关的有用特征,输入st,st+1的 ϕ值,输出估计的action ât, 如果估计的action和真实的action at 接近,则 ϕ可以用来提取有用的特征。
注意:当没有network 2的时候,由network 1给出来的较大的reward意味着 st+1很难预测,模型会鼓励actor去冒这个险,但有的时候很难预测的这个state可能是一点都不重要的,因此需要引入network 2来进行重要性计算。
方法二:Curriculum Learning:为机器的学习做规划
Curriculum Learning的任务是为机器设计一套从简单到困难的课程计划。
知道让agent从简单学起,但是还要知道如何给它设计课程,这时就可以用Reverse Curriculum Generation。
1.假设sg是目标状态(完成任务的状态),先从sg附近找出一些点,让agent从这些地方出发,往sg靠近。
2.到达sg后算出各点的reward。
3.删掉reward最大(agent已经学会的,就没必要再学)的点和reward最小(目前还是萌新的agent觉得太难)的点。
4.根据刚才删掉后剩下的点,继续寻找越远的点,再学习靠近。
方法三:Hierarchical RL
把一个大的任务,通过上层agent的不断分解,让下层的agent去完成子任务。
例如,校长为了学校的建设,让教授每年发3篇期刊;而教授把实验规划做好后,就让下面的研究生去干活。
注意1:如果上层agent一直弄一些很难的任务给下层agent,导致下层agent没办法完成,上层的agent就会得到负的reward。
注意2:如果下层的agent到达一个错误的目标,那为了下层做过的action不被浪费掉,就把上层原来目标改为这个错误的目标。例如,原本校长要求教授发期刊,但是教授后来经过探索却变成YouTubers,那校长就只能把原来的目标改成要求教授成为YouTubers。
再举例子,紫色点代表下层的agent,粉色点代表上层agent的愿景,黄色点代表目的地。这个任务中,把紫色点到目的地(黄色点)的路线,拆成4个子任务,让下层的agent(紫色点)跟着上层agent的愿景(粉色点)走,最终到达目的地(黄色点)。