Skip to content

Commit

Permalink
fix ch1
Browse files Browse the repository at this point in the history
  • Loading branch information
qiwang067 committed May 26, 2021
1 parent bda25e4 commit a741423
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions docs/chapter1/chapter1.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

**强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。** 示意图由两部分组成:agent 和 environment。在强化学习过程中,agent 跟 environment 一直在交互。Agent 在环境里面获取到状态,agent 会利用这个状态输出一个动作(action),一个决策。然后这个决策会放到环境之中去,环境会根据 agent 采取的决策,输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。

![](img/1.2.png ':size=300')
![](img/1.2.png ':size=450')

**我们可以把强化学习跟监督学习做一个对比。**

Expand Down Expand Up @@ -65,18 +65,18 @@

上图是强化学习的一个经典例子,就是雅达利的一个叫 Pong 的游戏。这个游戏就是把这个球拍到左边,然后左边这个选手需要把这个球拍到右边。训练好的一个强化学习 agent 和正常的选手有区别,强化学习的 agent 会一直在做这种无意义的一些振动,而正常的选手不会出现这样的行为。

![](img/1.10.png ':size=300')
![](img/1.10.png ':size=450')

在这个 pong 的游戏里面,决策其实就是两个动作:往上或者往下。如果强化学习是通过学习一个 policy network 来分类的话,其实就是输入当前帧的图片,policy network 就会输出所有决策的可能性。

![](img/1.11.png ':size=300')
![](img/1.11.png ':size=450')

对于监督学习,我们可以直接告诉 agent 正确的标签是什么。但在这种游戏情况下面,我们并不知道它的正确的标签是什么。

![](img/1.12.png ':size=300')
![](img/1.12.png ':size=450')
在强化学习里面,我们是通过让它尝试去玩这个游戏,然后直到游戏结束过后,再去说你前面的一系列动作到底是正确还是错误。

![](img/1.13.png ':size=300')
![](img/1.13.png ':size=450')

* 上图的过程是 `rollout` 的一个过程。Rollout 的意思是从当前帧去生成很多局的游戏。

Expand All @@ -89,15 +89,15 @@

* 一场游戏叫做一个 `episode(回合)` 或者 `trial(试验)`

![](img/1.14.png ':size=300')
![](img/1.14.png ':size=450')
强化学习是有一定的历史的,只是最近大家把强化学习跟深度学习结合起来,就形成了`深度强化学习(Deep Reinforcemet Learning)`。深度强化学习 = 深度学习 + 强化学习。这里做一个类比,把它类比于这个传统的计算机视觉以及深度计算机视觉。

* 传统的计算机视觉由两个过程组成。
* 给定一张图,我们先要提取它的特征,用一些设计好的特征(feature),比如说 HOG、DPM。
* 提取这些特征后,我们再单独训练一个分类器。这个分类器可以是 SVM、Boosting,然后就可以辨别这张图片是狗还是猫。
* 2012 年过后,我们有了卷积神经网络,大家就把特征提取以及分类两者合到一块儿去了,就是训练一个神经网络。这个神经网络既可以做特征提取,也可以做分类。它可以实现这种端到端的训练,它里面的参数可以在每一个阶段都得到极大的优化,这样就得到了一个非常重要的突破。

![](img/1.15.png ':size=300')
![](img/1.15.png ':size=450')

我们可以把神经网络放到强化学习里面。

Expand All @@ -124,7 +124,7 @@

### Agent and Environment

![](img/1.18.png ':size=300')
![](img/1.18.png ':size=450')
接下来我们讲`序列决策(Sequential Decision Making)过程`

强化学习研究的问题是 agent 跟环境交互,上图左边画的是一个 agent,agent 一直在跟环境进行交互。这个 agent 把它输出的动作给环境,环境取得这个动作过后,会进行到下一步,然后会把下一步的观测跟它上一步是否得到奖励返还给 agent。
Expand Down Expand Up @@ -342,6 +342,7 @@ Learning 和 Planning 是序列决策的两个基本问题。
![](img/learning.png ':size=450')

在强化学习中,环境初始时是未知的,agent 不知道环境如何工作,agent 通过不断地与环境交互,逐渐改进策略。

![](img/planning.png ':size=450')

在 plannning 中,环境是已知的,我们被告知了整个环境的运作规则的详细信息。Agent 能够计算出一个完美的模型,并且在不需要与环境进行任何交互的时候进行计算。Agent 不需要实时地与环境交互就能知道未来环境,只需要知道当前的状态,就能够开始思考,来寻找最优解。
Expand Down Expand Up @@ -405,7 +406,7 @@ Learning 和 Planning 是序列决策的两个基本问题。

### Gym

![](img/1.44.png ':size=300')
![](img/1.44.png ':size=450')

[OpenAI Gym](https://gym.openai.com/) 是一个环境仿真库,里面包含了很多现有的环境。针对不同的场景,我们可以选择不同的环境,

Expand Down Expand Up @@ -449,7 +450,7 @@ for step in range(100):

几行代码就实现了强化学习的框架。

![](img/1.46.png ':size=300')
![](img/1.46.png ':size=400')

在 OpenAI Gym 里面有很经典的控制类游戏。

Expand Down

0 comments on commit a741423

Please sign in to comment.