提交 1ae9eb06 编写于 作者: W wizardforcel

2021-01-18 17:44:20

上级 430c6f9c
......@@ -6,7 +6,7 @@
强化学习的应用范围从在数字环境中玩游戏到在现实环境中控制机器人的动作。 它也恰好是您用来训练狗和其他动物的技术。 如今,强化学习已被用于驾驶自动驾驶汽车,这是一个非常受欢迎的领域。
当计算机(AlphaGo)击败世界围棋冠军 Lee Sedol [1]时,发生了最近的重大突破之一。 这是一个突破,因为 Go 一直以来被认为是让计算机掌握很长时间的游戏圣杯。 这是因为据说 Go 游戏中的配置数量大于我们宇宙中的原子数量。
当计算机(AlphaGo)击败世界围棋冠军 Lee Sedol [1]时,发生了最近的重大突破之一。 这是一个突破,因为围棋一直以来被认为是让计算机掌握很长时间的游戏圣杯。 这是因为据说围棋游戏中的配置数量大于我们宇宙中的原子数量。
在世界冠军输给 AlphaGo 之后,甚至有人说他已经从计算机中学到了一些东西。 这听起来很疯狂,但这是事实。 听起来更疯狂的是,算法的输入只不过是棋盘游戏当前状态的图像,而 AlphaGo 则一遍又一遍地对自己进行训练。 但在此之前,它从观看世界冠军的视频中学习了数小时。
......@@ -74,9 +74,9 @@
![Cumulative discounted rewards](img/B09475_07_003.jpg)
可以看到,我们在`Goal`方程中引入了可变伽玛。 接近 1 的 Gamma 表示您将来对每个奖励的重视程度相同。 接近 0 的 Gamma 表示只有最近的奖励才具有很高的权重。
可以看到,我们在`Goal`方程中引入了可变伽玛。 接近 1 的`Gamma`表示您将来对每个奖励的重视程度相同。 接近 0 的`Gamma`表示只有最近的奖励才具有很高的权重。
一个良好的做法是将 Gamma = 0.9,因为您希望代理对未来有足够的关注,但又不是无限远。 您可以在训练时设置 Gamma,并且 Gamma 会保持固定,直到实验结束。 重要的是要注意,折扣在连续任务中非常有用,因为它们没有尽头。 但是,继续执行的任务不在本章范围之内。
一个良好的做法是将`Gamma = 0.9`,因为您希望代理对未来有足够的关注,但又不是无限远。 您可以在训练时设置`Gamma`,并且`Gamma`会保持固定,直到实验结束。 重要的是要注意,折扣在连续任务中非常有用,因为它们没有尽头。 但是,继续执行的任务不在本章范围之内。
## 马尔可夫决策过程
......@@ -114,7 +114,7 @@ MDP 定义有五件事:
### 策略和价值功能
策略定义学习代理在给定时间的行为方式。 保单用希腊字母 Pi 表示。 该策略不能用公式定义; 它更多是基于直觉的概念。
策略定义学习代理在给定时间的行为方式。 保单用希腊字母`Pi`表示。 该策略不能用公式定义; 它更多是基于直觉的概念。
让我们举个例子。 对于需要在房间外寻找出路的机器人,它可能具有以下策略:
......@@ -122,7 +122,7 @@ MDP 定义有五件事:
* 沿着墙壁走
* 找到通往门的最短路径
为了使我们能够数学地预测在特定状态下要采取的行动,我们需要一个函数。 让我们定义一个函数,该函数将设为当前状态,并输出一个数字,该数字表示该状态的价值。例如,如果您要越过河流,那么靠近桥梁的位置将比目标位置更有价值。 远离它。 此函数称为值函数,也用 V 表示。
为了使我们能够数学地预测在特定状态下要采取的行动,我们需要一个函数。 让我们定义一个函数,该函数将设为当前状态,并输出一个数字,该数字表示该状态的价值。例如,如果您要越过河流,那么靠近桥梁的位置将比目标位置更有价值。 远离它。 此函数称为值函数,也用`V`表示。
我们可以使用另一个函数来帮助我们度量事物:一个函数,该函数为我们提供由所有可以采取的行动所导致的所有未来状态的值。
......@@ -132,9 +132,9 @@ MDP 定义有五件事:
让我们举个例子。 让我们考虑通用状态`S0`。 现在我们需要预测在`a1``a2``a3`之间要采取什么行动才能获得最大的回报(累积折扣奖励)。 我们将此函数命名为`Q`。 我们的函数`Q`,将预测每个操作的预期收益(值(`V`))。 此`Q`函数也称为动作值函数,因为它考虑了状态和动作,并预测了它们各自的组合的预期收益。
我们通常会选择最大值。 因此,这些最高限额将指导代理商到最后,这将是我们的策略。 请注意,我大部分时间都在说。 通常,在选择非最大动作值对时,我们会保持很小的随机机会。 我们这样做是为了提高模型的可探索性。 该随机探索机会的百分比称为 epsilon,该策略称为 epsilon-greedy 策略。 这是人们用来解决强化学习问题的最常见策略。 如果我们一直都只选择最大值,而不进行任何探索,则该策略简称为贪婪策略。 我们将在实施过程中同时使用这两种策略。
我们通常会选择最大值。 因此,这些最高限额将指导代理商到最后,这将是我们的策略。 请注意,我大部分时间都在说。 通常,在选择非最大动作值对时,我们会保持很小的随机机会。 我们这样做是为了提高模型的可探索性。 该随机探索机会的百分比称为`ε`,该策略称为 ε 贪婪策略。 这是人们用来解决强化学习问题的最常见策略。 如果我们一直都只选择最大值,而不进行任何探索,则该策略简称为贪婪策略。 我们将在实施过程中同时使用这两种策略。
但是起初,我们可能不知道最佳作用值函数。 因此,由此产生的策略也将不是最佳策略。 我们将需要遍历动作值函数,并找到提供最佳回报的函数。 一旦找到它,我们将获得最优的`Q`。 最佳`Q`也称为 *Q ** 。 因此,我们将能够找到最优的 Pi,也称为 Pi *
但是起初,我们可能不知道最佳作用值函数。 因此,由此产生的策略也将不是最佳策略。 我们将需要遍历动作值函数,并找到提供最佳回报的函数。 一旦找到它,我们将获得最优的`Q`。 最佳`Q`也称为`Q*`。 因此,我们将能够找到最优的`Pi`,也称为`Pi*`
`Q`功能是代理必须学习的功能。 我们将使用神经网络来学习此功能,因为神经网络也是通用函数逼近器。 一旦有了行动价值功能,座席就可以了解问题的最佳策略,我们就可以完成目标。
......@@ -182,9 +182,9 @@ MDP 定义有五件事:
* 更新`Q`
* ![Deep Q-learning](img/B09475_07_009.jpg)
这里要注意的一件事是,我们将使用相同的 epsilon-greedy 策略在“步骤 6”中选择动作,并在“步骤 8”中更新相同的策略。 这种算法称为策略上算法。 从某种意义上讲,这是很好的,因为在我们观察和更新同一策略时,将更快地学习该策略。 它收敛非常快。 它也有一些缺点,即所学习的策略和用于决策的策略彼此紧密地联系在一起。 如果我们想要一个更具探索性的策略,以便在“步骤 6”中选择观察结果,并在“步骤 8”中更新更优化的策略,该怎么办? 这样的算法被称为非策略算法。
这里要注意的一件事是,我们将使用相同的 ε 贪婪策略在“步骤 6”中选择动作,并在“步骤 8”中更新相同的策略。 这种算法称为策略上算法。 从某种意义上讲,这是很好的,因为在我们观察和更新同一策略时,将更快地学习该策略。 它收敛非常快。 它也有一些缺点,即所学习的策略和用于决策的策略彼此紧密地联系在一起。 如果我们想要一个更具探索性的策略,以便在“步骤 6”中选择观察结果,并在“步骤 8”中更新更优化的策略,该怎么办? 这样的算法被称为非策略算法。
Q 学习是一种非策略算法,因此,在 Q 学习中,我们将有两个策略。 我们用来推断动作的策略将是 epsilon-greedy 策略,并且我们将其称为策略网络。 我们将使用更新步骤更新的网络将是我们的目标网络。 那只能由一个贪婪的策略来控制,这意味着我们将始终选择 epsilon 等于零的最大值。 我们不会对此策略采取随机措施。 我们这样做是为了使我们更快地朝着更高的价值前进。 我们将通过不时复制策略网的权重(例如每隔一集一次)来更新目标网的权重。
Q 学习是一种非策略算法,因此,在 Q 学习中,我们将有两个策略。 我们用来推断动作的策略将是 ε 贪婪策略,并且我们将其称为策略网络。 我们将使用更新步骤更新的网络将是我们的目标网络。 那只能由一个贪婪的策略来控制,这意味着我们将始终选择 epsilon 等于零的最大值。 我们不会对此策略采取随机措施。 我们这样做是为了使我们更快地朝着更高的价值前进。 我们将通过不时复制策略网的权重(例如每隔一集一次)来更新目标网的权重。
其背后的想法是不追逐一个移动的目标。 让我们举个例子:假设您想训练一头驴走路。 如果您坐在驴上并在其嘴前悬挂胡萝卜,驴可能会向前走,胡萝卜仍与驴保持相同的距离。 但是,与普遍的看法相反,这并不那么有效。 胡萝卜可能会随机反弹,并可能使驴远离其路径。 取而代之的是,通过从驴上下来并站在要驴来的地方使驴和胡萝卜脱钩,这似乎是一个更好的选择。 它提供了一个更稳定的学习环境。
......@@ -328,7 +328,7 @@ def select_action(state):
return torch.tensor([[random.randrange(2)]], device=device, dtype=torch.long)
```
接下来,我们定义一种使用 epsilon-greedy 策略为我们采取行动的方法。 我们可以从策略网中推断出一定时间百分比,但是也有`eps_threshold`的机会,这意味着我们将随机选择操作。
接下来,我们定义一种使用 ε 贪婪策略为我们采取行动的方法。 我们可以从策略网中推断出一定时间百分比,但是也有`eps_threshold`的机会,这意味着我们将随机选择操作。
```py
num_episodes = 20
......
......@@ -181,11 +181,11 @@ Q 学习涉及的步骤如下:
3. 通过按照步骤 2 中提到的公式更新 Q 值,该表收敛以获取给定状态下某个动作的准确值。
# Epsilon-Greedy 方法
# ε 贪婪方法
Epsilon-Greedy 是探索-利用困境的一种广泛使用的解决方案。 探索就是通过实验和研究来搜索和探索新的选择以产生新的价值,而探索则是通过重复这些选择并提高其价值来完善现有的选择。
ε 贪婪是探索-利用困境的一种广泛使用的解决方案。 探索就是通过实验和研究来搜索和探索新的选择以产生新的价值,而探索则是通过重复这些选择并提高其价值来完善现有的选择。
Epsilon-Greedy 方法非常易于理解且易于实现:
ε 贪婪方法非常易于理解且易于实现:
```py
epsilon() = 0.05 or 0.1 #any small value between 0 to 1
......@@ -569,6 +569,6 @@ Q 学习和 Q 网络都需要付出一定的稳定性。 在某些情况下,
# 概要
在本章中,我们学习了 OpenAI Gym,包括安装各种重要功能以加载,渲染和理解环境状态操作空间。 我们了解了 Epsilon-Greedy 方法作为探索与利用难题的解决方案,并尝试实现基本的 Q 学习和 Q 网络算法,以训练增强学习代理从 OpenAI Gym 导航环境。
在本章中,我们学习了 OpenAI Gym,包括安装各种重要功能以加载,渲染和理解环境状态操作空间。 我们了解了 ε 贪婪方法作为探索与利用难题的解决方案,并尝试实现基本的 Q 学习和 Q 网络算法,以训练增强学习代理从 OpenAI Gym 导航环境。
在下一章中,我们将介绍强化学习中最基本的概念,包括**马尔可夫决策过程****MDP**),Bellman 方程和 Markov Chain Monte Carlo。
\ No newline at end of file
......@@ -226,7 +226,7 @@ Making new env: MountainCar-v0
(2,)
```
因此,我们看到动作空间是一个离散集合,显示了三个可能的动作,状态空间是一个二维连续空间,其中一个维度满足位置,而另一个则满足汽车的速度。 接下来,我们将使用以下代码分配超参数,例如状态数,情节数,学习率(初始和最小值),折扣因子伽玛,情节中的最大步数以及 epsilon-greedy 的 epsilon
因此,我们看到动作空间是一个离散集合,显示了三个可能的动作,状态空间是一个二维连续空间,其中一个维度满足位置,而另一个则满足汽车的速度。 接下来,我们将使用以下代码分配超参数,例如状态数,情节数,学习率(初始和最小值),折扣因子伽玛,情节中的最大步数以及 ε 贪婪的`ε`
```py
n_states = 40 # number of states
......@@ -613,7 +613,7 @@ def fit(self):
self.learning_counter += 1
```
我们已经讨论了探索与利用难题。 **ε 贪婪方法**是用于选择阈值`ε`并产生随机数的方法之一。 如果小于 epsilon,我们将遵循相同的策略;如果大于 epsilon,我们将随机探索行动,反之亦然。 在`epsilon_greedy(self,obs)`中,我们以动态方式实现了 epsilon-greedy 方法,其中在 fit(self)函数中,我们在每个学习步骤中都增加了 epsilon 的值:
我们已经讨论了探索与利用难题。 **ε 贪婪方法**是用于选择阈值`ε`并产生随机数的方法之一。 如果小于`ε`,我们将遵循相同的策略;如果大于·ε,我们将随机探索行动,反之亦然。 在`epsilon_greedy(self,obs)`中,我们以动态方式实现了 ε 贪婪方法,其中在 fit(self)函数中,我们在每个学习步骤中都增加了`ε`的值:
```py
def epsilon_greedy(self,obs):
......@@ -1396,7 +1396,7 @@ Making new env: MountainCar-v0
(2,)
```
接下来,我们将使用以下代码分配超参数,例如状态数,情节数,学习率(初始和最小值),折扣因子伽玛,情节中的最大步长以及 epsilon-greedy 的 epsilon
接下来,我们将使用以下代码分配超参数,例如状态数,情节数,学习率(初始和最小值),折扣因子伽玛,情节中的最大步长以及 ε 贪婪的`ε`
```py
n_states = 40 # number of states
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册