update chapters
This commit is contained in:
@@ -44,12 +44,10 @@
|
||||
这里我给大家举一些在现实生活中强化学习的一些例子。
|
||||
|
||||
* 国际象棋其实也是一个强化学习的过程,因为这个棋手就是在做出一个选择来跟对方对战。
|
||||
* 然后在自然界中,羚羊其实也是在做一个强化学习,它刚刚出生的时候,可能都不知道怎么站立,然后它通过 trial- and-error 的一个尝试,三十分钟过后,它就可以每个小时36公里跑到这样的速度,很快的适应了这个环境。
|
||||
* 然后在自然界中,羚羊其实也是在做一个强化学习,它刚刚出生的时候,可能都不知道怎么站立,然后它通过 `trial- and-error` 的一个尝试,三十分钟过后,它就可以每个小时 36 公里跑到这样的速度,很快的适应了这个环境。
|
||||
|
||||
* 你也可以把股票交易看成一个强化学习的问题,就怎么去买卖去使你的收益极大化。
|
||||
* 玩雅达利游戏或者一些电脑游戏,其实也是在一个强化学习的过程。
|
||||
|
||||
|
||||
* 玩雅达利游戏或者一些电脑游戏,也是一个强化学习的过程。
|
||||
|
||||

|
||||
|
||||
@@ -117,7 +115,7 @@
|
||||
|
||||

|
||||
|
||||
这里我给大家举一些奖励的例子。不同的环境,奖励的也是不同的。
|
||||
这里给大家举一些奖励的例子。不同的环境,奖励的也是不同的。
|
||||
|
||||
* 比如说一个下象棋的选手,它的目的其实就为了赢棋,奖励是说在最后棋局结束的时候,他知道会得到一个正奖励或者负奖励。
|
||||
* 羚羊站立也是一个强化学习过程,那它得到的奖励就是它是否可以最后跟它妈妈一块离开或者它被吃掉。
|
||||
@@ -128,15 +126,15 @@
|
||||
|
||||

|
||||
|
||||
在一个强化学习环境里面,agent 目的就是为了选取一系列的动作,从而使得它的奖励可以极大化。所以这些采取的措施必须有长期的影响,但这个过程里面它的奖励其实是被延误了。就是说你现在采取的某一步决策可能要等到时间很久过后才知道这一步到底产生了什么样的影响。这里一个示意图就是我们玩这个 Atari 的 Pong 这个游戏,你可能只有到最后游戏结束过后,你才知道这个球到底有没有击打过去。中间你采取的 up 或 down 行为,并不会直接产生奖励。
|
||||
在一个强化学习环境里面,agent 的目的就是为了选取一系列的动作,来极大化它的奖励。所以这些采取的措施必须有长期的影响,但这个过程里面它的奖励其实是被延误了。就是说你现在采取的某一步决策可能要等到时间很久过后才知道这一步到底产生了什么样的影响。这里一个示意图就是我们玩这个 Atari 的 Pong 这个游戏,你可能只有到最后游戏结束过后,你才知道这个球到底有没有击打过去。中间你采取的 up 或 down 行为,并不会直接产生奖励。
|
||||
|
||||
强化学习里面一个重要的课题就是在近期奖励和远期奖励的一个 trade-off。怎么让 agent 的取得更多的长期奖励是强化学习的问题。
|
||||
强化学习里面一个重要的课题就是在近期奖励和远期奖励的一个 trade-off。怎么让 agent 取得更多的长期奖励是强化学习的问题。
|
||||
|
||||

|
||||
在跟环境的交互过程中,agent 其实会获得很多观测。然后在每一个观测会采取一个动作,它也会得到一个奖励。Agent在采取当前动作的时候会依赖于它之前得到的这个历史,所以你可以把整个游戏的状态看成关于这个历史的函数。
|
||||
|
||||
Q: 状态和观测有什么关系?
|
||||
A: `状态(state)` $s$ 是对世界的完整描述,不会隐藏世界的信息。`观测(observation)` $o$ 是对状态的部分描述,可以会遗漏一些信息。
|
||||
A: `状态(state)` $s$ 是对世界的完整描述,不会隐藏世界的信息。`观测(observation)` $o$ 是对状态的部分描述,可能会遗漏一些信息。
|
||||
|
||||
在 deep RL 中,我们几乎总是用一个 实值的向量、矩阵或者更高阶的张量来表示状态和观测。举个例子,我们可以用 RGB 像素值的矩阵来表示一个视觉的观测;我们可以用机器人关节的角度和速度来表示一个机器人的状态。
|
||||
|
||||
@@ -162,11 +160,13 @@ POMDP 可以用一个 7 元组描述:$(S,A,T,R,\Omega,O,\gamma)$,其中 $S$
|
||||
## Major Components of an RL Agent
|
||||
|
||||

|
||||
对于一个强化学习 agent,它有哪些组成成分,首先 agent 有一个 policy function,这个函数是会被 agent 用来选取它下一步的动作。
|
||||
对于一个强化学习 agent,它有哪些组成成分。
|
||||
|
||||
然后它也可能生成一个价值函数(value function)。这个价值函数被 agent 用来对现在当前状态进行估价,它就是说你进入现在这个状态,到底可以对你后面的收益带来多大的影响。当这个价值函数大的时候,说明你进入这个状态越有利。
|
||||
* 首先 agent 有一个 policy function,agent 会用这个函数来选取它下一步的动作。
|
||||
|
||||
另外一个组成成分是这个模型(model)。这里模型表示了 agent 对这个环境的状态进行了理解,它决定了这个世界是如何进行的。
|
||||
* 然后它也可能生成一个价值函数(value function)。我们用价值函数来对当前状态进行估价,它就是说你进入现在这个状态,到底可以对你后面的收益带来多大的影响。当这个价值函数大的时候,说明你进入这个状态越有利。
|
||||
|
||||
* 另外一个组成成分是模型(model)。模型表示了 agent 对这个环境的状态进行了理解,它决定了这个世界是如何进行的。
|
||||
|
||||
### Policy
|
||||
|
||||
@@ -179,7 +179,7 @@ Policy 就是决定了这个 agent 的行为,它其实是一个函数,把输
|
||||
|
||||
* 一种是 `deterministic policy(确定性策略)`,就是说你这里有可能只是采取它的极大化,采取最有可能的概率。所以你现在这个概率就是事先决定好的。
|
||||
|
||||
从 Atari 游戏的来看的话,policy function 的输入就是一游戏的一帧,然后它的输出决定你是往左走或者是往右走。
|
||||
从 Atari 游戏的来看的话,policy function 的输入就是游戏的一帧,然后它的输出决定你是往左走或者是往右走。
|
||||
|
||||
通常情况下,强化学习一般使用`随机性策略`。随机性策略有很多优点:
|
||||
|
||||
@@ -187,8 +187,6 @@ Policy 就是决定了这个 agent 的行为,它其实是一个函数,把输
|
||||
|
||||
* 随机性策略的动作具有多样性,这一点在多个智能体博弈时也非常重要。采用确定性策略的智能体总是对同样的环境做出相同的动作,会导致它的策略很容易被对手预测。
|
||||
|
||||
|
||||
|
||||
### Value Function
|
||||

|
||||
价值函数是一个折扣的未来奖励的加和,就是你通过进行某一种行为,然后你未来得到多大的奖励。然后这个价值函数里面其实有一个 discount factor。我们希望尽可能在短的时间里面得到尽可能多的奖励。所以如果我们说十天过后我给你100块钱,跟我现在给你100块钱,你肯定更希望我现在就给你100块钱,因为你可以把这100块钱存在银行里面,你就会有一些利息。所以我们就通过把这个 discount factor 放到价值函数的定义里面。后面我们得到的奖励价值函数的定义其实是一个期望。
|
||||
@@ -287,7 +285,7 @@ A: 针对是否需要对真实环境建模,强化学习可以分为有模型
|
||||
|
||||
* Exploitation 是说我们现在不去尝试新的东西,就采取我们已知的可以得到很大奖励的行为。
|
||||
|
||||
因为在刚开始的时候这个强化学习 agent 并不知道它采取了某个行为会发生什么,所以它只能通过试错去探索。所以 Exploration 就是在试错来理解采取的这个行为到底可不可以得到好的奖励。Exploitation 是说我们直接采取已知的可以得到很好奖励的行为。所以这里就面临一个 trade-off。怎么通过牺牲一些短期的 reward 来获得行为的理解。
|
||||
因为在刚开始的时候强化学习 agent 不知道它采取了某个行为会发生什么,所以它只能通过试错去探索。所以 Exploration 就是在试错来理解采取的这个行为到底可不可以得到好的奖励。Exploitation 是说我们直接采取已知的可以得到很好奖励的行为。所以这里就面临一个 trade-off。怎么通过牺牲一些短期的 reward 来获得行为的理解。
|
||||
|
||||

|
||||
这里我给大家举一些例子来说明 Exploration 和 Exploitation 的定义。
|
||||
@@ -356,7 +354,7 @@ $python
|
||||
强化学习的这个交互就是由 agent 跟环境进行交互。所以我们算法的 interface 也是用这个来表示。比如说我们现在安装了 OpenAI Gym。那我们这里就可以直接调入 Taxi-v2 的环境,就建立了一个这个环境初始化这个环境过后,就可以进行交互了。Agent 得到这个观测过后,它就会输出一个 action。然后这个 action 会被这个环境拿进去执行这个step,然后环境就会往前走一步,然后返回新的 observation 和 reward 以及一个 flag variable 就决定你现在这个游戏是不是结束了。这几行代码就实现了强化学习里面的 framework。
|
||||
|
||||

|
||||
在OpenAI Gym 里面有很经典的控制类游戏,比如说 Acrobot,就是把这个两节铁杖,然后甩了立起来。还有 CartPole,通过控制一个平板,让这个木棍立起来。还有 MountainCar 的一个例子,就通过前后移动这个车,让它到达这个旗子的位置。大家可以去[这个链接](https://gym.openai.com/envs/#classic_control)看一看这些环境。在刚开始测试强化学习的时候,可以选择这些简单环境,因为这些环境可能是在一两分钟之内你就可以见到一个效果。
|
||||
在 OpenAI Gym 里面有很经典的控制类游戏,比如说 Acrobot,就是把这个两节铁杖,然后甩了立起来。还有 CartPole,通过控制一个平板,让这个木棍立起来。还有 MountainCar 的一个例子,就通过前后移动这个车,让它到达这个旗子的位置。大家可以去[这个链接](https://gym.openai.com/envs/#classic_control)看一看这些环境。在刚开始测试强化学习的时候,可以选择这些简单环境,因为这些环境在一两分钟之内,你就可以见到一个效果。
|
||||
|
||||

|
||||
|
||||
|
||||
Reference in New Issue
Block a user