diff --git a/docs/chapter1/chapter1.md b/docs/chapter1/chapter1.md index 2ee2d40..391ebd9 100644 --- a/docs/chapter1/chapter1.md +++ b/docs/chapter1/chapter1.md @@ -74,7 +74,7 @@ ![](img/1.11.png) -在这种情况下面,对于监督学习的话,我们就可以直接告诉这个 agent 正确的标签是什么。在这种游戏情况下面,我们并不知道它的正确的标签是什么。 +对于监督学习,我们可以直接告诉 agent 正确的标签是什么。但在这种游戏情况下面,我们并不知道它的正确的标签是什么。 ![](img/1.12.png) 在强化学习里面,我们是通过让它尝试去玩这个游戏,然后直到游戏结束过后,再去说你前面的一系列动作到底是正确还是错误。 @@ -138,7 +138,9 @@ ### Reward -**奖励是由环境给的一个标量的反馈信号(scalar feedback signal)**,这个信号显示了 agent 在某一步采取了某个策略的表现如何。 +**奖励是由环境给的一个标量的反馈信号(scalar feedback signal)**。 + +这个信号显示了 agent 在某一步采取了某个策略的表现如何。 强化学习的目的就是为了最大化 agent 可以获得的奖励,agent 在这个环境里面存在的目的就是为了极大化它的期望的累积奖励(expected cumulative reward)。 @@ -222,12 +224,19 @@ Policy 是 agent 的行为模型,它决定了这个 agent 的行为,它其 * 随机性策略的动作具有多样性,这一点在多个智能体博弈时也非常重要。采用确定性策略的智能体总是对同样的环境做出相同的动作,会导致它的策略很容易被对手预测。 ### Value Function -![](img/1.27.png) **价值函数是未来奖励的一个预测,用来评估状态的好坏**。 -价值函数里面有一个 `discount factor(折扣因子)`,我们希望尽可能在短的时间里面得到尽可能多的奖励。如果我们说十天过后,我给你 100 块钱,跟我现在给你 100 块钱,你肯定更希望我现在就给你 100 块钱,因为你可以把这 100 块钱存在银行里面,你就会有一些利息。所以我们就通过把这个折扣因子放到价值函数的定义里面,价值函数的定义其实是一个期望。这里有一个期望 $\mathbb{E}_{\pi}$,这里有个小角标是 $\pi$ 函数,这个 $\pi$ 函数就是说在我们已知某一个策略函数的时候,到底可以得到多少的奖励。 +价值函数里面有一个 `discount factor(折扣因子)`,我们希望尽可能在短的时间里面得到尽可能多的奖励。如果我们说十天过后,我给你 100 块钱,跟我现在给你 100 块钱,你肯定更希望我现在就给你 100 块钱,因为你可以把这 100 块钱存在银行里面,你就会有一些利息。所以我们就通过把这个折扣因子放到价值函数的定义里面,价值函数的定义其实是一个期望,如下式所示: +$$ +v_{\pi}(s) \doteq \mathbb{E}_{\pi}\left[G_{t} \mid S_{t}=s\right]=\mathbb{E}_{\pi}\left[\sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1} \mid S_{t}=s\right], \text { for all } s \in \mathcal{S} +$$ +这里有一个期望 $\mathbb{E}_{\pi}$,这里有个小角标是 $\pi$ 函数,这个 $\pi$ 函数就是说在我们已知某一个策略函数的时候,到底可以得到多少的奖励。 -我们还有一种价值函数:Q 函数。Q 函数里面包含两个变量:状态和动作。所以你未来可以获得多少的奖励,它的这个期望取决于你当前的状态和当前的行为。这个 Q 函数是强化学习算法里面要学习的一个函数。因为当我们得到这个 Q 函数后,进入某一种状态,它最优的行为就可以通过这个 Q 函数来得到。 +我们还有一种价值函数:Q 函数。Q 函数里面包含两个变量:状态和动作,其定义如下式所示: +$$ +q_{\pi}(s, a) \doteq \mathbb{E}_{\pi}\left[G_{t} \mid S_{t}=s, A_{t}=a\right]=\mathbb{E}_{\pi}\left[\sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1} \mid S_{t}=s, A_{t}=a\right] +$$ +所以你未来可以获得多少的奖励,它的这个期望取决于你当前的状态和当前的行为。这个 Q 函数是强化学习算法里面要学习的一个函数。因为当我们得到这个 Q 函数后,进入某一种状态,它最优的行为就可以通过这个 Q 函数来得到。 ### Model ![](img/1.28.png) @@ -395,13 +404,9 @@ Learning 和 Planning 是序列决策的两个基本问题。 在[这个链接](https://github.com/cuhkrlcourse/RLexample)里面,公布了一些 RL 相关的代码,利用了 Python 和深度学习的一些包(主要是用 PyTorch 为主)。 -![](img/1.42.png) +你可以直接调用现有的包来实践。现在有很多深度学习的包可以用,比如 PyTorch、TensorFlow、Keras,熟练使用这里面的两三种,就可以实现非常多的功能。所以你并不需要从头去造轮子。 -你可以直接调用现有的包来实践。现在有很多深度学习的包可以用,熟练使用这里面的两三种,就可以实现非常多的功能。所以你并不需要从头去造轮子。 - -![](img/1.43.png) - - [ OpenAI](https://openai.com/) 是一个非盈利的人工智能研究公司。Open AI 公布了非常多的学习资源以及算法资源,他们之所以叫 Open AI,就是他们把所有开发的算法都 open source 出来。 + [OpenAI](https://openai.com/) 是一个非盈利的人工智能研究公司。Open AI 公布了非常多的学习资源以及算法资源,他们之所以叫 Open AI,就是他们把所有开发的算法都 open source 出来。 ### Gym