fix some typos

This commit is contained in:
qiwang067
2020-09-11 21:47:21 +08:00
parent 90b4b083cb
commit 43fd017f0a
2 changed files with 16 additions and 16 deletions

View File

@@ -116,7 +116,7 @@
### Reward
![](img/1.19.png)
奖励是由环境给的一个反馈信号,这个信号指定了这个 agent 在某一步采取了某个策略是否得到奖励。强化学习的目的就是为了极大化 agent 可以获得的奖励,这个 agent 在这个环境里面存在的目的就是为了极大它的期望积累的奖励。
**奖励是由环境给的一个反馈信号**,这个信号指定了这个 agent 在某一步采取了某个策略是否得到奖励。强化学习的目的就是为了极大化 agent 可以获得的奖励agent 在这个环境里面存在的目的就是为了极大它的期望积累的奖励。
![](img/1.20.png)
@@ -131,7 +131,7 @@
![](img/1.21.png)
在一个强化学习环境里面agent 的目的就是为了选取一系列的动作来极大化它的奖励所以这些采取的措施必须有长期的影响但在这个过程里面,它的奖励其实是被延迟了,就是说你现在采取的某一步决策可能要等到时间很久过后才知道这一步到底产生了什么样的影响。这里一个示意图就是我们玩这个 Atari 的 Pong 这个游戏,你可能只有到最后游戏结束过后,才知道这个球到底有没有击打过去。中间你采取的 up 或 down 行为,并不会直接产生奖励。强化学习里面一个重要的课题就是近期奖励和远期奖励的一个 trade-off。怎么让 agent 取得更多的长期奖励是强化学习的问题。
在一个强化学习环境里面agent 的目的就是为了选取一系列的动作来极大化它的奖励所以这些采取的措施必须有长期的影响但在这个过程里面,它的奖励其实是被延迟了,就是说你现在采取的某一步决策可能要等到时间很久过后才知道这一步到底产生了什么样的影响。这里一个示意图就是我们玩这个 Atari 的 Pong 这个游戏,你可能只有到最后游戏结束过后,才知道这个球到底有没有击打过去。中间你采取的 up 或 down 行为,并不会直接产生奖励。强化学习里面一个重要的课题就是近期奖励和远期奖励的一个 trade-off。怎么让 agent 取得更多的长期奖励是强化学习的问题。
![](img/1.22.png)
在跟环境的交互过程中agent 会获得很多观测。在每一个观测会采取一个动作它也会得到一个奖励。Agent 在采取当前动作的时候会依赖于它之前得到的这个历史,所以你可以把整个游戏的状态看成关于这个历史的函数。
@@ -176,7 +176,7 @@ POMDP 可以用一个 7 元组描述:$(S,A,T,R,\Omega,O,\gamma)$,其中 $S$
![](img/1.26.png)
我们深入看这三个组成成分的一些细节。
Policy 就是决定了这个 agent 的行为,它其实是一个函数,把输入的状态变成行为。这里有两种 policy
Policy 决定了这个 agent 的行为,它其实是一个函数,把输入的状态变成行为。这里有两种 policy
* 一种是 `stochastic policy(随机性策略)`,它就是 $\pi$ 函数 $\pi(a | s)=P\left[A_{t}=a | S_{t}=s\right]$ 。当你输入一个状态 $s$ 的时候,输出是一个概率。这个概率就是你所有行为的一个概率,然后你可以进一步对这个概率分布进行采样,得到真实的你采取的行为。比如说这个概率可能是有 70% 的概率往左30% 的概率往右,那么你通过采样就可以得到一个 action。
@@ -213,10 +213,10 @@ Policy 就是决定了这个 agent 的行为,它其实是一个函数,把输
这里我们来看一个走迷宫的例子,这个例子要求 agent 从 start 开始,然后到达 goal 的位置。这里设定的奖励是每走一步,你就会得到一个负的奖励。这里可以采取的动作是往上下左右走。当前状态用现在 agent 所在的位置来描述。
![](img/1.31.png)
我们可以用不同的强化学习算法来解这个环境,如果我们采取的是 Policy-based RL当我们学习好了这个环境过后,在每一个状态,我们就会得到一个最佳的行为。比如说现在在第一格开始的时候,我们知道它最佳行为是往右走,然后第二格的时候,得到的最佳策略是往上走,第三格是往右走。通过这个最佳的策略,我们就可以最快地到达终点。
我们可以用不同的强化学习算法来解这个环境,如果我们采取的是 `Policy-based RL`当我们学习好了这个环境过后,在每一个状态,我们就会得到一个最佳的行为。比如说现在在第一格开始的时候,我们知道它最佳行为是往右走,然后第二格的时候,得到的最佳策略是往上走,第三格是往右走。通过这个最佳的策略,我们就可以最快地到达终点。
![](img/1.32.png)
如果换成 Value-based RL 这个算法,利用价值函数来作为导向,我们就会得到另外一种表征。这里就表征了你每一个状态会返回一个价值,比如说你在 start 位置的时候,你的价值是 -16因为你最快可以 16 步到达终点。因为每走一步会减一,所以你这里的价值是 -16。当我们快接近最后终点的时候它的这个数字变得越来越大。在拐角的时候,比如要现在在第二格 -15。然后 agent 会看上下,它看到上面值变大了,变成 -14 了,它下面是 -16那么这个 agent 肯定就会采取一个往上走的策略。所以通过这个学习的值的不同,我们可以抽取出现在最佳的策略。
如果换成 `value-based RL` 这个算法,利用价值函数来作为导向,我们就会得到另外一种表征。这里就表征了你每一个状态会返回一个价值,比如说你在 start 位置的时候,价值是 -16因为你最快可以 16 步到达终点。因为每走一步会减一,所以你这里的价值是 -16。当我们快接近最后终点的时候这个数字变得越来越大。在拐角的时候比如要现在在第二格 -15。然后 agent 会看上下,它看到上面值变大了,变成 -14 了,它下面是 -16那么这个 agent 肯定就会采取一个往上走的策略。所以通过这个学习的值的不同,我们可以抽取出现在最佳的策略。
## Types of RL Agents
@@ -225,7 +225,7 @@ Policy 就是决定了这个 agent 的行为,它其实是一个函数,把输
* 基于价值函数的 agent。这一类 agent 显式地学习的是价值函数,隐式地学习了它的策略。因为这个策略是从我们学到的价值函数里面推算出来的。
* 基于策略的 agent它直接去学习 policy就是说你直接给它一个 state它就会输出这个动作的概率。在这个 policy-based agent 里面并没有去学习它的价值函数。
* 另外还有一种 agent 是把这两者结合把 value-based 和 policy-based 结合起来就有了 `Actor-Critic agent`。这一类 agent 就把它的策略函数和价值函数都学习了,然后通过两者的交互得到一个最佳的行为。
* 另外还有一种 agent 是把这两者结合把 value-based 和 policy-based 结合起来就有了 `Actor-Critic agent`。这一类 agent 就把它的策略函数和价值函数都学习了,然后通过两者的交互得到一个最佳的行为。
Q: 基于策略迭代和基于价值迭代的强化学习方法有什么区别?
@@ -251,7 +251,7 @@ A: 对于一个状态转移概率已知的马尔可夫决策过程,我们可
上图是有模型强化学习的流程图。
然而在实际应用中智能体并不是那么容易就能知晓MDP中的所有元素的。通常情况下状态转移函数和奖励函数很难估计甚至连环境中的状态都可能是未知的这时就需要采用免模型学习。免模型学习没有对真实环境进行建模智能体只能在真实环境中通过一定的策略来执行动作等待奖励和状态迁移然后根据这些反馈信息来更新行为策略这样反复迭代直到学习到最优策略。
然而在实际应用中,智能体并不是那么容易就能知晓 MDP 中的所有元素的。通常情况下,状态转移函数和奖励函数很难估计,甚至连环境中的状态都可能是未知的,这时就需要采用免模型学习。免模型学习没有对真实环境进行建模,智能体只能在真实环境中通过一定的策略来执行动作,等待奖励和状态迁移,然后根据这些反馈信息来更新行为策略,这样反复迭代直到学习到最优策略。
Q: 有模型强化学习和免模型强化学习有什么区别?
@@ -284,7 +284,7 @@ A: 针对是否需要对真实环境建模,强化学习可以分为有模型
![](img/1.37.png)
在强化学习里面Exploration 和 Exploitation 是两个很核心的问题。
* Exploration 是说我们怎么去探索这个环境通过尝试不同的行为,然后可以得到一个最佳的策略,得到最大奖励的策略。
* Exploration 是说我们怎么去探索这个环境通过尝试不同的行为得到一个最佳的策略,得到最大奖励的策略。
* Exploitation 是说我们不去尝试新的东西,就采取已知的可以得到很大奖励的行为。
@@ -312,13 +312,13 @@ A: 针对是否需要对真实环境建模,强化学习可以分为有模型
## Experiment with Reinforcement Learning
![](img/1.39.png)
接下来进入一个实践环节。强化学习是一个理论跟实践结合的机器学习分支,需要去推导很多算法公式。然后去理解它算法背后的一些数学原理。另外一方面,上机实践通过实现算法,然后在很多实验环境里面去探索这个算法是不是可以得到预期效果也是一个非常重要的过程。
接下来进入一个实践环节。强化学习是一个理论跟实践结合的机器学习分支,需要去推导很多算法公式。然后去理解它算法背后的一些数学原理。另外一方面,上机实践通过实现算法,在很多实验环境里面去探索这个算法是不是可以得到预期效果也是一个非常重要的过程。
![](img/1.40.png)
我会在网页上面公布一些代码,会利用 Python编程,也会利用到深度学习的一些包主要是用 PyTorch 为主,然后在[这个链接](https://github.com/cuhkrlcourse/RLexample)里面,我其实已经公布了一些 RL 相关的代码。
我会在网页上面公布一些代码,会利用 Python深度学习的一些包(主要是用 PyTorch 为主),然后在[这个链接](https://github.com/cuhkrlcourse/RLexample)里面,我其实已经公布了一些 RL 相关的代码。
![](img/1.41.png)