This commit is contained in:
qiwang067
2021-05-26 09:54:26 +08:00
parent a74142380e
commit af0b9a0cdb

View File

@@ -2,7 +2,7 @@
## Reinforcement Learning
![](img/1.1.png ':size=300')
![](img/1.1.png ':size=450')
**强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。** 示意图由两部分组成agent 和 environment。在强化学习过程中agent 跟 environment 一直在交互。Agent 在环境里面获取到状态agent 会利用这个状态输出一个动作(action),一个决策。然后这个决策会放到环境之中去,环境会根据 agent 采取的决策输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。
@@ -26,7 +26,7 @@
* 在游戏过程中,大家可以发现这个 agent 得到的观测不是个独立同分布的分布,上一帧下一帧其实有非常强的连续性。这就是说,得到的数据是相关的时间序列数据,不满足独立同分布。
* 另外一点,在玩游戏的过程中,你并没有立刻获得反馈,没有告诉你哪个动作是正确动作。比如你现在把这个木板往右移,那么只会使得这个球往上或者往左上去一点,你并不会得到立刻的反馈。所以强化学习这么困难的原因是没有得到很好的反馈,然后你依然希望 agent 在这个环境里面学习。
![](img/1.4.png)
![](img/1.4.png ':size=450')
强化学习的训练数据就是这样一个玩游戏的过程。你从第一步开始,采取一个决策,比如说你把这个往右移,接到这个球了。第二步你又做出决策,得到的训练数据是一个玩游戏的序列。
@@ -74,6 +74,7 @@
对于监督学习,我们可以直接告诉 agent 正确的标签是什么。但在这种游戏情况下面,我们并不知道它的正确的标签是什么。
![](img/1.12.png ':size=450')
在强化学习里面,我们是通过让它尝试去玩这个游戏,然后直到游戏结束过后,再去说你前面的一系列动作到底是正确还是错误。
![](img/1.13.png ':size=450')
@@ -90,6 +91,7 @@
* 一场游戏叫做一个 `episode(回合)` 或者 `trial(试验)`
![](img/1.14.png ':size=450')
强化学习是有一定的历史的,只是最近大家把强化学习跟深度学习结合起来,就形成了`深度强化学习(Deep Reinforcemet Learning)`。深度强化学习 = 深度学习 + 强化学习。这里做一个类比,把它类比于这个传统的计算机视觉以及深度计算机视觉。
* 传统的计算机视觉由两个过程组成。
@@ -113,6 +115,7 @@
* 我们有了这个端到端的一个训练,可以把特征提取和价值估计或者决策一块来优化,这样就可以得到了一个更强的决策网络。
![](img/1.17.png)
接下来给大家再看一些强化学习里面比较有意思的例子。
1. **[DeepMind 研发的一个走路的 agent](https://www.youtube.com/watch?v=gn4nRCC9TwQ)。**这个 agent 往前走一步,你就会得到一个 reward。这个 agent 有不同的这个形态,可以学到很多有意思的功能。比如怎么跨越这个障碍物,就像那个蜘蛛那样的 agent 。怎么跨越障碍物,像这个人有双腿一样, 这个 agent 往前走。以及像这个人形的 agent怎么在一个曲折的道路上面往前走。这个结果也是非常有意思这个人形 agent 会把手举得非常高,因为它这个手的功能就是为了使它身体保持平衡,这样它就可以更快地在这个环境里面往前跑,而且这里你也可以增加这个环境的难度,加入一些扰动,这个 agent 就会变得更鲁棒。
@@ -125,6 +128,7 @@
### Agent and Environment
![](img/1.18.png ':size=450')
接下来我们讲`序列决策(Sequential Decision Making)过程`
强化学习研究的问题是 agent 跟环境交互,上图左边画的是一个 agentagent 一直在跟环境进行交互。这个 agent 把它输出的动作给环境,环境取得这个动作过后,会进行到下一步,然后会把下一步的观测跟它上一步是否得到奖励返还给 agent。