fix some typos

This commit is contained in:
qiwang067
2020-10-10 22:29:31 +08:00
parent 12856ae4e6
commit 52bf4c3399

View File

@@ -3,7 +3,7 @@
## Reinforcement Learning
![](img/1.1.png)
强化学习讨论的问题是一个 agent 怎么在一个复杂不确定的环境里面去极大化它能获得的奖励。示意图由两部分组成agent 和 environment。在强化学习过程中agent 跟 environment 一直在交互。Agent 在环境里面获取到状态agent 会利用这个状态输出一个 action一个决策。然后这个决策会放到环境之中去环境会通过这个 agent 采取的决策输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。
**强化学习讨论的问题是一个 智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。**示意图由两部分组成agent 和 environment。在强化学习过程中agent 跟 environment 一直在交互。Agent 在环境里面获取到状态agent 会利用这个状态输出一个 action一个决策。然后这个决策会放到环境之中去环境会通过这个 agent 采取的决策输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。
![](img/1.2.png)
@@ -23,11 +23,11 @@
强化学习的训练数据就是这样一个玩游戏的过程。你从第一步开始,采取一个决策,比如说你把这个往右移,接到这个球了。第二步你又做出决策,得到的 training data 是一个玩游戏的序列。
比如现在是在第三步,你把这个序列放进去,你希望这个网络,这个 learner 可以输出一个决策,在当前的这个状态应该输出往右移或者往左移。这里有个问题,就是我们没有标签来说明你现在这个动作是正确还是错误,必须等到这个游戏结束可能,这个游戏可能十秒过后才结束。现在这个动作往左往右到底是不是对最后游戏的结束能赢有帮助,其实是不清楚的的。这里就面临一个`延迟奖励(Delayed Reward)`,所以就使得训练这个网络非常困难。
比如现在是在第三步,你把这个序列放进去,你希望这个网络可以输出一个决策,在当前的这个状态应该输出往右移或者往左移。这里有个问题,就是我们没有标签来说明你现在这个动作是正确还是错误,必须等到这个游戏结束可能,这个游戏可能十秒过后才结束。现在这个动作往左往右到底是不是对最后游戏的结束能赢有帮助,其实是不清楚的的。这里就面临一个`延迟奖励(Delayed Reward)`,所以就使得训练这个网络非常困难。
![](img/1.5.png)
我们对比下强化学习和监督学习。
**我们对比下强化学习和监督学习。**
* 首先强化学习输入的序列的数据并不是像 supervised learning 里面这些样本都是独立的。
* 另外一点是 learner 并没有被告诉你每一步正确的行为应该是什么。Learner 不得不自己去发现哪些行为可以使得它最后得到这个奖励,只能通过不停地尝试来发现最有利的 action。
@@ -59,7 +59,7 @@
![](img/1.9.png)
上图是强化学习的一个经典例子,就是雅达利的一个叫 Pong 的游戏。这个游戏就是把这个球拍到左边,然后左边这个选手需要把这个球拍到右边,这里我给大家看的是训练好的一个 agent 。大家可以猜猜哪一边是强化学习 agent 。右边是强化学习的 agent,你会发现它一直在做这种无意义的一些振动,而正常的选手不会出现这样的行为。
上图是强化学习的一个经典例子,就是雅达利的一个叫 Pong 的游戏。这个游戏就是把这个球拍到左边,然后左边这个选手需要把这个球拍到右边。训练好的一个强化学习 agent 和正常的选手有区别,强化学习的 agent一直在做这种无意义的一些振动,而正常的选手不会出现这样的行为。
![](img/1.10.png)
@@ -336,8 +336,6 @@ A: 针对是否需要对真实环境建模,强化学习可以分为有模型
![](img/1.40.png)
接下来进入一个实践环节。强化学习是一个理论跟实践结合的机器学习分支,需要去推导很多算法公式。然后去理解它算法背后的一些数学原理。另外一方面,上机实践通过实现算法,在很多实验环境里面去探索这个算法是不是可以得到预期效果也是一个非常重要的过程。
![](img/1.41.png)
我会在网页上面公布一些代码,会利用 Python 和深度学习的一些包(主要是用 PyTorch 为主),然后在[这个链接](https://github.com/cuhkrlcourse/RLexample)里面,我其实已经公布了一些 RL 相关的代码。
@@ -382,10 +380,10 @@ $python
在 OpenAI Gym 里面有很经典的控制类游戏。
* 比如说 Acrobot就是把这个两节铁杖然后甩了立起来。
* 还有 CartPole通过控制一个平板,让这个木棍立起来。
* 还有 MountainCar 的一个例子,就通过前后移动这个车,让它到达这个旗子的位置。
* CartPole通过控制一个平板,让这个木棍立起来。
* MountainCar 通过前后移动这个车,让它到达这个旗子的位置。
大家可以点[这个链接](https://gym.openai.com/envs/#classic_control)看一看这些环境。在刚开始测试强化学习的时候,可以选择这些简单环境,因为这些环境在一两分钟之内,你就可以见到一个效果。
大家可以点[这个链接](https://gym.openai.com/envs/#classic_control)看一看这些环境。在刚开始测试强化学习的时候,可以选择这些简单环境,因为这些环境可以在一两分钟之内见到一个效果。
![](img/1.47.png)