This commit is contained in:
qiwang067
2021-05-26 09:49:16 +08:00
parent bda25e4fc4
commit a74142380e

View File

@@ -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')
**我们可以把强化学习跟监督学习做一个对比。**
@@ -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 的意思是从当前帧去生成很多局的游戏。
@@ -89,7 +89,7 @@
* 一场游戏叫做一个 `episode(回合)` 或者 `trial(试验)`
![](img/1.14.png ':size=300')
![](img/1.14.png ':size=450')
强化学习是有一定的历史的,只是最近大家把强化学习跟深度学习结合起来,就形成了`深度强化学习(Deep Reinforcemet Learning)`。深度强化学习 = 深度学习 + 强化学习。这里做一个类比,把它类比于这个传统的计算机视觉以及深度计算机视觉。
* 传统的计算机视觉由两个过程组成。
@@ -97,7 +97,7 @@
* 提取这些特征后,我们再单独训练一个分类器。这个分类器可以是 SVM、Boosting然后就可以辨别这张图片是狗还是猫。
* 2012 年过后,我们有了卷积神经网络,大家就把特征提取以及分类两者合到一块儿去了,就是训练一个神经网络。这个神经网络既可以做特征提取,也可以做分类。它可以实现这种端到端的训练,它里面的参数可以在每一个阶段都得到极大的优化,这样就得到了一个非常重要的突破。
![](img/1.15.png ':size=300')
![](img/1.15.png ':size=450')
我们可以把神经网络放到强化学习里面。
@@ -124,7 +124,7 @@
### Agent and Environment
![](img/1.18.png ':size=300')
![](img/1.18.png ':size=450')
接下来我们讲`序列决策(Sequential Decision Making)过程`
强化学习研究的问题是 agent 跟环境交互,上图左边画的是一个 agentagent 一直在跟环境进行交互。这个 agent 把它输出的动作给环境,环境取得这个动作过后,会进行到下一步,然后会把下一步的观测跟它上一步是否得到奖励返还给 agent。
@@ -342,6 +342,7 @@ Learning 和 Planning 是序列决策的两个基本问题。
![](img/learning.png ':size=450')
在强化学习中环境初始时是未知的agent 不知道环境如何工作agent 通过不断地与环境交互,逐渐改进策略。
![](img/planning.png ':size=450')
在 plannning 中环境是已知的我们被告知了整个环境的运作规则的详细信息。Agent 能够计算出一个完美的模型并且在不需要与环境进行任何交互的时候进行计算。Agent 不需要实时地与环境交互就能知道未来环境,只需要知道当前的状态,就能够开始思考,来寻找最优解。
@@ -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/) 是一个环境仿真库,里面包含了很多现有的环境。针对不同的场景,我们可以选择不同的环境,
@@ -449,7 +450,7 @@ for step in range(100):
几行代码就实现了强化学习的框架。
![](img/1.46.png ':size=300')
![](img/1.46.png ':size=400')
在 OpenAI Gym 里面有很经典的控制类游戏。