udpate ch10

This commit is contained in:
qiwang067
2022-09-17 15:41:11 +08:00
parent 9fe74834c1
commit 181734d5df

View File

@@ -102,9 +102,9 @@
## 10.4 分层强化学习
第三个方向是**分层强化学习hierarchical reinforcement learningHRL**。分层强化学习是指,我们有多个智能体,一些智能体负责比较高级的东西,它们负责定目标,定完目标以后,再将目标分配给其他的智能体,让其他智能体来执行目标。这样的想法也是很合理的。例如,假设我们想写一篇论文,首先我们要想创新点,想完创新点后,还要做实验。做实验以后,我们要写论文。写完论文以后还要投稿、发表。每一个动作下面又会再细分,比如怎么做实验呢?我们要先收集数据,收集完数据以后,要标注标签,还要设计一个网络,然后又训练不起来,要训练很多次。重新设计网络架构好几次,最后才把网络训练起来。所以,我们要完成一个很大的任务的时候,并不是从非常底层的动作开始做,其实是有一个计划的。我们会先想,如果要完成这个最大的任务,要将之拆解成哪些小任务,每一个小任务要怎么拆解成更小的任务。例如,我们直接写一本书可能很困难,但先把一本书拆成几章,每章拆成几节,每节又拆成几段,每段又拆成几个句,这样可能就比较好写,这就是分层强化学习。
如图 10.9a 所示例如假设校长、教授和研究生都是智能体并且我们所在的学校只要进入百大学校QS排名前100的学校就可以得到奖励。假设进入百大学校校长就要提出愿景并告诉其他的智能体现在我们要达到什么样的目标。校长的愿景可能是教授每年都要发3篇期刊。这些智能体都是分层的所以上面的智能体他的动作就是提出愿景。他把他的愿景传给下一层的智能体下一层的智能体会接收这个愿景。如果他下面还有其他智能体他就会提出新的愿景。比如校长要教授发期刊论文但教授自己没时间实验他也只能够让下面的研究生做实验。所以教授就提出愿景做出实验的规划研究生才是执行这个实验的人。把实验做出来以后大家就可以得到奖励。现在是这样的在学习的时候每一个智能体都会学习他们的整体目标就是要得到最后的奖励。前面的智能体他们提出来的动作就是愿景。但是假设他们提出来的愿景是下面的智能体达不到的就会被讨厌。例如教授都一直让研究生做一些很困难的实验研究生做不出来教授就会得到一个惩罚。所以如果下层的智能体没有办法达到上层智能体所提出来的目标上层的智能体就会被讨厌它就会得到一个负奖励。所以他要避免提出的那些愿景是下层的智能体做不到的。每一个智能体都把上层的智能体所提出的愿景当作输入决定他自己要产生什么输出。
如图 10.9 所示例如假设校长、教授和研究生都是智能体并且我们所在的学校只要进入百大学校QS排名前100的学校就可以得到奖励。假设进入百大学校校长就要提出愿景并告诉其他的智能体现在我们要达到什么样的目标。校长的愿景可能是教授每年都要发3篇期刊。这些智能体都是分层的所以上面的智能体他的动作就是提出愿景。他把他的愿景传给下一层的智能体下一层的智能体会接收这个愿景。如果他下面还有其他智能体他就会提出新的愿景。比如校长要教授发期刊论文但教授自己没时间实验他也只能够让下面的研究生做实验。所以教授就提出愿景做出实验的规划研究生才是执行这个实验的人。把实验做出来以后大家就可以得到奖励。现在是这样的在学习的时候每一个智能体都会学习他们的整体目标就是要得到最后的奖励。前面的智能体他们提出来的动作就是愿景。但是假设他们提出来的愿景是下面的智能体达不到的就会被讨厌。例如教授都一直让研究生做一些很困难的实验研究生做不出来教授就会得到一个惩罚。所以如果下层的智能体没有办法达到上层智能体所提出来的目标上层的智能体就会被讨厌它就会得到一个负奖励。所以他要避免提出的那些愿景是下层的智能体做不到的。每一个智能体都把上层的智能体所提出的愿景当作输入决定他自己要产生什么输出。
但是就算看到上面的愿景让我们做某件事情,最后也不一定能做成这件事情。如图 10.9b 所示,假设本来教授的目标是要发期刊论文,但他突然切换目标,要变成一个 YouTuber。这时我们需要把原来的愿景改成变成 YouTuber。因为虽然本来的愿景是发期刊论文但是后来变成 YouTuber这些动作是没有被浪费的。我们就假设本来的愿景就是要成为 YouTuber我们就知道成为 YouTuber 要怎做了。这就是分层强化学习,是可以实现的技巧。
但是就算看到上面的愿景让我们做某件事情,最后也不一定能做成这件事情。如图 10.10 所示,假设本来教授的目标是要发期刊论文,但他突然切换目标,要变成一个 YouTuber。这时我们需要把原来的愿景改成变成 YouTuber。因为虽然本来的愿景是发期刊论文但是后来变成 YouTuber这些动作是没有被浪费的。我们就假设本来的愿景就是要成为 YouTuber我们就知道成为 YouTuber 要怎做了。这就是分层强化学习,是可以实现的技巧。
@@ -117,17 +117,17 @@
<div align=center>
<img width="550" src="../img/ch10/10.9b.png"/>
</div>
<div align=center>改变愿景</div>
<div align=center>图 10.10 改变愿景</div>
图 10.10 是真实游戏的例子。第一个游戏是走迷宫,蓝色的是智能体,蓝色的智能体要走到黄色的目标。第二个游戏是单摆,单摆要碰到黄色的球。愿景是什么呢?在走迷宫游戏里面,只有两个智能体,下层的智能体负责决定要怎么走,上层的智能体负责提出愿景。虽然,实际上我们可以用很多层,但这只用了两层。走迷宫的游戏中粉红色的点代表的就是愿景。上层的智能体告诉蓝色的智能体,我们现在的第一个目标是先走到某个位置。蓝色的智能体到达以后,再说新的目标是走到另一个位置。蓝色的智能体再到达以后,新的目标会在其他位置。接下来蓝色的智能体又到达这个位置,最后希望蓝色的智能体可以到达黄色的位置。单摆的例子也一样,粉红色的点代表的是上层的智能体所提出的愿景,所以这个智能体先摆到这边,接下来,新的愿景又跑到某个位置,所以它又摆到对应的位置。然后,新的愿景又跑到上面。然后又摆到上面,最后就走到黄色的位置。这就是分层强化学习。
图 10.11 是真实游戏的例子。第一个游戏是走迷宫,蓝色的是智能体,蓝色的智能体要走到黄色的目标。第二个游戏是单摆,单摆要碰到黄色的球。愿景是什么呢?在走迷宫游戏里面,只有两个智能体,下层的智能体负责决定要怎么走,上层的智能体负责提出愿景。虽然,实际上我们可以用很多层,但这只用了两层。走迷宫的游戏中粉红色的点代表的就是愿景。上层的智能体告诉蓝色的智能体,我们现在的第一个目标是先走到某个位置。蓝色的智能体到达以后,再说新的目标是走到另一个位置。蓝色的智能体再到达以后,新的目标会在其他位置。接下来蓝色的智能体又到达这个位置,最后希望蓝色的智能体可以到达黄色的位置。单摆的例子也一样,粉红色的点代表的是上层的智能体所提出的愿景,所以这个智能体先摆到这边,接下来,新的愿景又跑到某个位置,所以它又摆到对应的位置。然后,新的愿景又跑到上面。然后又摆到上面,最后就走到黄色的位置。这就是分层强化学习。
<div align=center>
<img width="550" src="../img/ch10/10.10.png"/>
</div>
<div align=center>图 10.10 走迷宫和单摆的例子</div>
<div align=center>图 10.11 走迷宫和单摆的例子</div>
最后,我们对分层强化学习进行总结。分层强化学习是指将一个复杂的强化学习问题分解成多个小的、简单的子问题,每个子问题都可以单独用马尔可夫决策过程来建模。这样,我们可以将智能体的策略分为高层次策略和低层次策略,高层次策略根据当前状态决定如何执行低层次策略。这样,智能体就可以解决一些非常复杂的任务。