diff --git a/new/handson-nlp-pt-1x/2.md b/new/handson-nlp-pt-1x/2.md index 4ae70b22bf91403954b4489ccc520d70a1d9a362..e14fea28ad36aeb8ffce2f87783321af74df492f 100644 --- a/new/handson-nlp-pt-1x/2.md +++ b/new/handson-nlp-pt-1x/2.md @@ -169,7 +169,7 @@ PyTorch 是当今深度学习中使用的主要框架之一。 还存在其他 * 创建具有可变层的动态计算图的能力 * 语法差异 -可以说,PyTorch 与其他框架之间的主要区别在于模型本身的计算方式。 PyTorch 使用称为 **autograd** 的自动微分方法,该方法允许动态定义和执行计算图。 这与其他框架(如 TensorFlow)相反,后者是静态框架。 在这些静态框架中,必须在最终执行之前定义和编译计算图。 尽管使用预编译的模型可以提高生产效率,但在研究和勘探项目中却无法提供相同水平的灵活性。 +可以说,PyTorch 与其他框架之间的主要区别在于模型本身的计算方式。 PyTorch 使用称为 **autograd** 的自动微分方法,该方法允许动态定义和执行计算图。 这与其他框架(如 TensorFlow)相反,后者是静态框架。 在这些静态框架中,必须在最终执行之前定义和编译计算图。 尽管使用预编译的模型可以提高生产效率,但在研究和探索项目中却无法提供相同水平的灵活性。 在训练模型之前,诸如 PyTorch 之类的框架无需预先编译计算图。 PyTorch 使用的动态计算图意味着在执行图时对其进行编译,从而可以随时定义图。 动态模型构建方法在 NLP 领域特别有用。 让我们考虑两个我们希望对以下内容进行情感分析的句子: diff --git a/new/pt-ai-fund/7.md b/new/pt-ai-fund/7.md index a31ad7f1a23cd6be7cd882f3975ba6ab369415cd..77302769ba0bef2984d4bd9c5245783de9cbed0a 100644 --- a/new/pt-ai-fund/7.md +++ b/new/pt-ai-fund/7.md @@ -191,7 +191,7 @@ def cartpole_model(observation_space, action_space): # 实施 DQN 类 -在本食谱中,我们将使用神经网络完成 DQN。 为此,我们将执行一些关键任务,包括创建目标和策略网络,损失函数和网络优化器,存储学习过程的状态和奖励,预测行为,经验回放以及控制学习过程。 勘探率。 +在本食谱中,我们将使用神经网络完成 DQN。 为此,我们将执行一些关键任务,包括创建目标和策略网络,损失函数和网络优化器,存储学习过程的状态和奖励,预测行为,经验回放以及控制学习过程。 探索率。 # 做好准备 @@ -318,7 +318,7 @@ if not self.explore_limit: 在`load_memory()`方法中,我们从环境中存储了状态,操作,奖励,下一个状态和终端,以用于训练网络。 我们使用的下一个方法是`predict_action`。 在此方法中,我们使用`np.random.rand()`选择了`random_number`,这为我们提供了`[0,1)`的值。 如果此`random_number`小于当前的`exploration_rate`,则我们选择一个随机动作,该动作由`exploration_rate`控制。 这就是我们合并探索的方式。 但是,如果`random_number`大于`exploration_rate`,则`target_net`会预测`q_values`并选择具有最大 q 值的动作。 -最后,我们实现了`experience_replay`方法。 在这里,我们等待数据点的数量至少为`BATCH_SIZE`,然后从内存中随机抽样一批。 这使它可以从一系列不同的观察中学习,而不是从一系列紧密相关的观察中学习。 遍历批量时,我们使用`target_net`根据 q 值更新公式更新了 q 值。 然后,我们根据新 q 值与`policy_net`预测的 q 值之间的误差训练了`policy_net`。 之后,通过将其乘以勘探衰减量逐渐降低勘探速率,直到获得最低勘探速率。 我们这样做是因为,在训练的初始阶段,我们希望代理人进行更多探索; 但是,随着训练的进行,我们希望算法能够收敛。 至此,我们已经完成了 DQN 类的所有功能。 +最后,我们实现了`experience_replay`方法。 在这里,我们等待数据点的数量至少为`BATCH_SIZE`,然后从内存中随机抽样一批。 这使它可以从一系列不同的观察中学习,而不是从一系列紧密相关的观察中学习。 遍历批量时,我们使用`target_net`根据 q 值更新公式更新了 q 值。 然后,我们根据新 q 值与`policy_net`预测的 q 值之间的误差训练了`policy_net`。 之后,通过将其乘以探索衰减量逐渐降低探索速率,直到获得最低探索速率。 我们这样做是因为,在训练的初始阶段,我们希望代理人进行更多探索; 但是,随着训练的进行,我们希望算法能够收敛。 至此,我们已经完成了 DQN 类的所有功能。 # 还有更多... diff --git a/new/pt-dl-handson/7.md b/new/pt-dl-handson/7.md index a5cfec6830d3c646de16118702cb73d5eb9a5c17..5fdd4ee6d946d97394a3329930a03fc8a1118248 100644 --- a/new/pt-dl-handson/7.md +++ b/new/pt-dl-handson/7.md @@ -18,7 +18,7 @@ 这似乎很简单,因为代理程序要做的就是考虑环境的当前状态进行决策,但是我们还想要更多。 通常,座席的目标是在其一生中最大化其累积奖励,重点是“累积”一词。 代理不仅关心在下一步中获得的报酬,而且还关心将来可能获得的报酬。 这需要有远见,并将使代理学习得更好。 -这个元素使问题变得更加复杂,因为我们必须权衡两个因素:勘探和开发。 探索将意味着做出随机决策并对其进行测试,而剥削则意味着做出代理商已经知道的决策将给其带来积极的结果,因此代理商现在需要找到一种方法来平衡这两个因素以获得最大的累积结果。 。 这是强化学习中非常重要的概念。 这个概念催生了各种算法来平衡这两个因素,并且是一个广泛的研究领域。 +这个元素使问题变得更加复杂,因为我们必须权衡两个因素:探索与利用。 探索将意味着做出随机决策并对其进行测试,而剥削则意味着做出代理商已经知道的决策将给其带来积极的结果,因此代理商现在需要找到一种方法来平衡这两个因素以获得最大的累积结果。 。 这是强化学习中非常重要的概念。 这个概念催生了各种算法来平衡这两个因素,并且是一个广泛的研究领域。 在本章中,我们将使用 OpenAI 名为 Gym 的库。 这是一个开放源代码库,为强化学习算法的训练和基准测试设定了标准。 健身房提供了许多研究人员用来训练强化学习算法的环境。 它包括许多 Atari 游戏,用于拾取物品的机器人仿真,用于步行和跑步的各种机器人仿真以及驾驶仿真。 该库提供了代理程序和环境之间相互交互所必需的参数。 diff --git a/new/rl-tf/01.md b/new/rl-tf/01.md index ad27adfa2fed1dac1a0410ab78e2c33a14668a23..d144fafb0fc906e881f4d60d4846269ba11c3e70 100644 --- a/new/rl-tf/01.md +++ b/new/rl-tf/01.md @@ -18,11 +18,12 @@ 以下是神经网络中监督学习的示例: | **输入(`x`)** | **输出(`y`)** | **应用领域** | **建议的神经网络方法** | -| 房屋特色 | 房子的价格 | 房地产 | 在输出层中带有线性整流单元的标准神经网络 | -| 广告和用户信息点击广告? | 是(1)或否(0) | 在线广告 | 具有二分类的标准神经网络 | -| 图像对象 | 从 100 个不同的对象进行分类,即(1,2,.....,100) | 照片标签 | 卷积神经网络(由于图像,即空间数据) | -| 音讯 | 文字笔录 | 语音识别 | 循环神经网络(因为两个输入输出都是顺序数据) | -| 英语 | 中文 | 机器翻译 | 循环神经网络(因为输入是顺序数据) | +| --- | --- | --- | --- | +| 房屋特征 | 房子的价格 | 房地产 | 在输出层中带有线性整流单元的标准神经网络 | +| 广告和点击广告的用户信息 | 是(1)或否(0) | 在线广告 | 具有二分类的标准神经网络 | +| 图像对象 | 从 100 个不同的对象进行分类,即(1,2,.....,100) | 照片标注 | 卷积神经网络(由于图像,即空间数据) | +| 语音 | 文字笔录 | 语音识别 | 循环神经网络(因为两个输入输出都是序列数据) | +| 英文 | 中文 | 机器翻译 | 循环神经网络(因为输入是序列数据) | | 图像,雷达信息 | 其他汽车的位置 | 自动驾驶 | 定制的混合/复杂神经网络 | 在本章的后续部分中,我们将详细介绍前面提到的神经网络,但是首先我们必须了解,根据问题陈述的目的使用了不同类型的神经网络。 @@ -274,7 +275,7 @@ Logistic 回归是一种分类器算法。 在这里,我们尝试预测输出 上式中使用的![](img/9c671944-f1a5-423b-97ae-b2ad19d731ab.png)是指学习率。 学习速率是学习代理适应新知识的速度。 因此,![](img/0e4f3f5b-d48c-4b5f-b40d-b39341719c57.png),即学习率是需要作为标量值或时间函数分配的超参数。 这样,在每次迭代中,![](img/32cc518e-96eb-49e7-b8ab-67e304786888.png)和![](img/6d301bc6-c3b7-48ea-aceb-b440b8fb2bab.png)的值都按照上式进行更新,直到成本函数的值达到可接受的最小值为止。 -梯度下降算法意味着沿斜率向下移动。 曲线的斜率由关于参数的成本函数![](img/c62e96a0-90a4-4788-863f-7a497ef31dde.png)表示。 斜率(即斜率)给出了正斜率(如果为正)和负斜率()的方向。 因此,我们必须使用负号与斜率相乘,因为我们必须与增加斜率的方向相反并朝减小斜率的方向相反。 +梯度下降算法意味着沿斜率向下移动。 曲线的斜率由关于参数的成本函数![](img/c62e96a0-90a4-4788-863f-7a497ef31dde.png)表示。 斜率(即斜率)给出了正斜率(如果为正)和负斜率的方向。 因此,我们必须使用负号与斜率相乘,因为我们必须与增加斜率的方向相反并朝减小斜率的方向相反。 使用最佳学习率![](img/a5fe656b-1845-4fcd-b587-bbd3c845aa3a.png),可以控制下降,并且我们不会过度降低局部最小值。 如果学习率![](img/324f63e5-df40-435b-ae53-7c0bd35fc4e7.png)非常小,那么收敛将花费更多时间,而如果学习率![](img/324f63e5-df40-435b-ae53-7c0bd35fc4e7.png)非常高,则由于迭代次数众多,它可能会过冲并错过最小值和偏差: diff --git a/new/rl-tf/02.md b/new/rl-tf/02.md index fc318028181d1c0b9164b40cd8337743bb850be5..766cff6c7a0ba1bdb377fb7e278041660ea7e45e 100644 --- a/new/rl-tf/02.md +++ b/new/rl-tf/02.md @@ -569,6 +569,6 @@ Q 学习和 Q 网络都需要付出一定的稳定性。 在某些情况下, # 概要 -在本章中,我们学习了 OpenAI Gym,包括安装各种重要功能以加载,渲染和理解环境状态操作空间。 我们了解了 Epsilon-Greedy 方法作为探索与开发难题的解决方案,并尝试实现基本的 Q 学习和 Q 网络算法,以训练增强学习代理从 OpenAI Gym 导航环境。 +在本章中,我们学习了 OpenAI Gym,包括安装各种重要功能以加载,渲染和理解环境状态操作空间。 我们了解了 Epsilon-Greedy 方法作为探索与利用难题的解决方案,并尝试实现基本的 Q 学习和 Q 网络算法,以训练增强学习代理从 OpenAI Gym 导航环境。 在下一章中,我们将介绍强化学习中最基本的概念,包括**马尔可夫决策过程**(**MDP**),Bellman 方程和 Markov Chain Monte Carlo。 \ No newline at end of file diff --git a/new/rl-tf/03.md b/new/rl-tf/03.md index 4fc854bf96ccf0af7d7af3166e7735690ca6f502..b5f888e238f2c007c43b43d20a18a546cd3034d3 100644 --- a/new/rl-tf/03.md +++ b/new/rl-tf/03.md @@ -6,7 +6,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 因此,任何遵循 Markov 属性的,由一组状态,动作和奖励组成的强化学习任务都将被视为 MDP。 -在本章中,我们将深入研究 MDP,状态,动作,奖励,策略,以及如何使用 Bellman 方程求解它们。 此外,我们将介绍部分可观察的 MDP 的基础知识及其解决的复杂性。 我们还将介绍勘探开发难题和著名的 E3(开发,探索或利用)算法。 然后我们将进入引人入胜的部分,在该部分中,我们将为代理编程,以使用 MDP 原理学习和玩乒乓球。 +在本章中,我们将深入研究 MDP,状态,动作,奖励,策略,以及如何使用 Bellman 方程求解它们。 此外,我们将介绍部分可观察的 MDP 的基础知识及其解决的复杂性。 我们还将介绍探索开发难题和著名的 E3(开发,探索或利用)算法。 然后我们将进入引人入胜的部分,在该部分中,我们将为代理编程,以使用 MDP 原理学习和玩乒乓球。 我们将在本章介绍以下主题: @@ -257,36 +257,40 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 `R(X) = -0.04` | **动作** | `s'` | ![](img/6fd891e0-ce75-462e-b4eb-a59aed75ce93.png) | ![](img/22ac4a64-43bd-401c-92b7-a91376a60576.png) | ![](img/8795d96c-8164-4074-a370-586d0a1ff9a0.png) | -| `RIGHT` | G | 0.8 | +1 | 0.8 x 1 = 0.8 | -| `RIGHT` | C | 0.1 | 0 | 0.1 x 0 = 0 | -| `RIGHT` | X | 0.1 | 0 | 0.1 x 0 = 0 | +| --- | --- | --- | +| `RIGHT` | G | 0.8 | +1 | `0.8 x 1 = 0.8` | +| `RIGHT` | C | 0.1 | 0 | `0.1 x 0 = 0` | +| `RIGHT` | X | 0.1 | 0 | `0.1 x 0 = 0` | 因此,对于动作`a = RIGHT`, ![](img/42781834-798e-4673-a3ac-1b5601553691.png) | **动作** | `s'` | ![](img/001a79e8-232c-416c-b1e7-c8d89cb12a90.png) | ![](img/9a391f2f-337e-46c8-b314-7be8f2e1effa.png) | ![](img/8eb44a6d-f977-4086-b239-2e592f166cbf.png) | -| `DOWN` | C | 0.8 | 0 | 0.8 x 0 = 0 | -| `DOWN` | G | 0.1 | +1 | 0.1 x 1 = 0.1 | -| `DOWN` | 一种 | 0.1 | 0 | 0.1 x 0 = 0 | +| --- | --- | --- | +| `DOWN` | C | 0.8 | 0 | `0.8 x 0 = 0` | +| `DOWN` | G | 0.1 | +1 | `0.1 x 1 = 0.1` | +| `DOWN` | A | 0.1 | 0 | `0.1 x 0 = 0` | 因此,对于动作`a = DOWN`, ![](img/77918404-8e8e-4efa-9b97-1001d8bc8f4c.png) | **动作** | `s'` | ![](img/acc2cb11-44c3-4325-9daa-68fe740d67cd.png) | ![](img/b16f854f-055d-4ad4-898f-d6a84b08a775.png) | ![](img/55c7b3a8-f1c9-4e3f-ba20-69dcb80d4244.png) | -| `UP` | X | 0.8 | 0 | 0.8 x 0 = 0 | -| `UP` | G | 0.1 | +1 | 0.1 x 1 = 0.1 | -| `UP` | 一种 | 0.1 | 0 | 0.1 x 0 = 0 | +| --- | --- | --- | +| `UP` | X | 0.8 | 0 | `0.8 x 0 = 0` | +| `UP` | G | 0.1 | +1 | `0.1 x 1 = 0.1` | +| `UP` | A | 0.1 | 0 | `0.1 x 0 = 0` | 因此,对于动作`a = UP`, ![](img/98b807be-a36f-472a-97d1-0dad9bf4f92e.png) | **动作** | `s'` | ![](img/782bf5ec-3014-40c2-803d-dd2163340c53.png) | ![](img/90de6f01-fb3e-4558-b557-520defc86bab.png) | ![](img/7817ee4f-64fd-44ba-b2c4-7ad635cea69e.png) | -| `LEFT` | 一种 | 0.8 | 0 | 0.8 x 0 = 0 | -| `LEFT` | X | 0.1 | 0 | 0.1 x 0 = 0 | -| `LEFT` | C | 0.1 | 0 | 0.1 x 0 = 0 | +| --- | --- | --- | +| `LEFT` | A | 0.8 | 0 | `0.8 x 0 = 0` | +| `LEFT` | X | 0.1 | 0 | `0.1 x 0 = 0` | +| `LEFT` | C | 0.1 | 0 | `0.1 x 0 = 0` | 因此,对于动作`a = LEFT`, @@ -307,36 +311,40 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 `R(X) = -0.04` | **动作** | `s'` | ![](img/7eab76d9-3bb5-4e5c-baf6-76ac3ab4e7d7.png) | ![](img/22ac4a64-43bd-401c-92b7-a91376a60576.png) | ![](img/8795d96c-8164-4074-a370-586d0a1ff9a0.png) | -| `RIGHT` | G | 0.8 | +1 | 0.8 x 1 = 0.8 | -| `RIGHT` | C | 0.1 | -0.04 | 0.1 x -0.04 = -0.004 | -| `RIGHT` | X | 0.1 | 0.36 | 0.1 x 0.36 = 0.036 | +| --- | --- | --- | --- | --- | +| `RIGHT` | G | 0.8 | +1 | `0.8 x 1 = 0.8` | +| `RIGHT` | C | 0.1 | -0.04 | `0.1 x -0.04 = -0.004` | +| `RIGHT` | X | 0.1 | 0.36 | `0.1 x 0.36 = 0.036` | 因此,对于动作`a = RIGHT`, ![](img/8eabbfa6-ba45-4387-82fd-804d44792a6d.png) | **动作** | `s'` | ![](img/59516b7d-b5b9-4309-abff-a42760a70dbd.png) | ![](img/9a391f2f-337e-46c8-b314-7be8f2e1effa.png) | ![](img/8eb44a6d-f977-4086-b239-2e592f166cbf.png) | -| `DOWN` | C | 0.8 | -0.04 | 0.8 x -0.04 = -0.032 | -| `DOWN` | G | 0.1 | +1 | 0.1 x 1 = 0.1 | -| `DOWN` | A | 0.1 | -0.04 | 0.1 x -0.04 = -0.004 | +| --- | --- | --- | --- | --- | +| `DOWN` | C | 0.8 | -0.04 | `0.8 x -0.04 = -0.032` | +| `DOWN` | G | 0.1 | +1 | `0.1 x 1 = 0.1` | +| `DOWN` | A | 0.1 | -0.04 | `0.1 x -0.04 = -0.004` | 因此,对于动作`a = DOWN`, ![](img/bf1e83c6-52e3-46d9-91fb-6be453900357.png) | **动作** | `s'` | ![](img/aeb2ed22-fa4e-4c2d-9a9d-247d56150c02.png) | ![](img/b16f854f-055d-4ad4-898f-d6a84b08a775.png) | ![](img/55c7b3a8-f1c9-4e3f-ba20-69dcb80d4244.png) | -| `UP` | X | 0.8 | 0.36 | 0.8 x 0.36 = 0.288 | -| `UP` | G | 0.1 | +1 | 0.1 x 1 = 0.1 | -| `UP` | 一种 | 0.1 | -0.04 | 0.1 x -0.04 = -0.004 | +| --- | --- | --- | --- | --- | +| `UP` | X | 0.8 | 0.36 | `0.8 x 0.36 = 0.288` | +| `UP` | G | 0.1 | +1 | `0.1 x 1 = 0.1` | +| `UP` | 一种 | 0.1 | -0.04 | `0.1 x -0.04 = -0.004` | 因此,对于动作`a = UP`, ![](img/a1393b1e-af2c-4d45-a9d3-9f939826c082.png) | **动作** | `s'` | ![](img/cafa86c3-0a4d-46b0-ade6-eb54a20d65f5.png) | ![](img/90de6f01-fb3e-4558-b557-520defc86bab.png) | ![](img/7817ee4f-64fd-44ba-b2c4-7ad635cea69e.png) | -| `LEFT` | 一种 | 0.8 | -0.04 | 0.8 x -0.04 = -0.032 | -| `LEFT` | X | 0.1 | 0.36 | 0.1 x 0.36 = 0.036 | -| `LEFT` | C | 0.1 | -0.04 | 0.1 x -0.04 = -0.004 | +| --- | --- | --- | --- | --- | +| `LEFT` | 一种 | 0.8 | -0.04 | `0.8 x -0.04 = -0.032` | +| `LEFT` | X | 0.1 | 0.36 | `0.1 x 0.36 = 0.036` | +| `LEFT` | C | 0.1 | -0.04 | `0.1 x -0.04 = -0.004` | 因此,对于动作`a = LEFT`, diff --git a/new/rl-tf/04.md b/new/rl-tf/04.md index 19a21521bf7a978ece8d80c325dccbaf4a43cc20..c0a7c373eac1cf051a69182f0c71e7c921bb77a0 100644 --- a/new/rl-tf/04.md +++ b/new/rl-tf/04.md @@ -222,7 +222,7 @@ Episode T 因此,这里我们仅使用时间差误差![](img/bbe74c85-c403-4b25-bf57-53e9fd7a9692.png)更新当前离开状态![](img/187fe806-bcca-4c11-8794-13c5058b5cf7.png)的值函数。 -# TD()规则 +# TD 规则 TD(1)和 TD(0)规则产生一个通用规则 TD(![](img/d6400b9d-6c9e-4370-b506-ff40da00344d.png)),即 TD(λ),因此对于![](img/4b1123cb-72a4-481e-81e9-6835853ffc68.png)并应满足以下条件: @@ -381,10 +381,11 @@ end for 2. 同样,收集一批轨迹,如下所示: | **轨迹** | **游戏结果** | **轨迹好/坏** | -| 上,下,上,上,下,下,下,上 | 失去 | 坏 | -| 向下,向上,向上,向下,向上,向上 | 赢得 | 好 | -| 上,上,下,下,下,下,上 | 失去 | 坏 | -| 向下,向上,向上,向下,向上,向上 | 赢得 | 好 | +| --- | --- | --- | +| 上,下,上,上,下,下,下,上 | 输 | 坏 | +| 下,上,上,下,上,上 | 赢 | 好 | +| 上,上,下,下,下,下,上 | 输 | 坏 | +| 下,上,上,下,上,上 | 赢 | 好 | 因此,我们能够创建示例数据,在这些示例中,我们认为赢得的案例是该操作的正确标签。 因此,我们将增加这些动作的对数概率,即![](img/9870b991-5c5f-4c6f-9154-14acf670dbc1.png),并且丢失每个动作的情况将被视为错误标签。 因此,在这些情况下,我们将减少这些操作的对数概率。 diff --git a/new/rl-tf/05.md b/new/rl-tf/05.md index aaf94658e67730e2c28e4c241d62d46d6c68e111..1db98e9f0fe0d32762cefdeb52aa373616337cf6 100644 --- a/new/rl-tf/05.md +++ b/new/rl-tf/05.md @@ -149,11 +149,12 @@ For each episode: end ``` -# 勘探开发困境 +# 探索开发困境 -下表总结了勘探与开发之间的困境: +下表总结了探索与利用之间的困境: -| **探索** | **操作** | +| **探索** | **利用** | +| --- | --- | | 除了当前的最佳动作之外,随机选择其他动作,并希望获得更好的回报。 | 选择当前的最佳操作而不尝试其他操作。 | 因此,难题是 AI 是仅根据当前最佳策略基于动作信任已获悉的 Q 值,还是应该随机尝试其他动作以希望获得更好的回报,从而改善 Q 值,因此, 得出更好的最佳策略。 @@ -612,7 +613,7 @@ def fit(self): self.learning_counter += 1 ``` -我们已经讨论了勘探和开发难题。 **ε 贪婪方法**是用于选择阈值`ε`并产生随机数的方法之一。 如果小于 epsilon,我们将遵循相同的策略;如果大于 epsilon,我们将随机探索行动,反之亦然。 在`epsilon_greedy(self,obs)`中,我们以动态方式实现了 epsilon-greedy 方法,其中在 fit(self)函数中,我们在每个学习步骤中都增加了 epsilon 的值: +我们已经讨论了探索与利用难题。 **ε 贪婪方法**是用于选择阈值`ε`并产生随机数的方法之一。 如果小于 epsilon,我们将遵循相同的策略;如果大于 epsilon,我们将随机探索行动,反之亦然。 在`epsilon_greedy(self,obs)`中,我们以动态方式实现了 epsilon-greedy 方法,其中在 fit(self)函数中,我们在每个学习步骤中都增加了 epsilon 的值: ```py def epsilon_greedy(self,obs): @@ -1308,7 +1309,7 @@ Episode 1003 with Reward : 1.0 at epsilon 0.0008856 in steps 232 收敛后,此统计树将指导 AI 代理在每个级别上寻找最佳可能节点,并继续进行直至达到目标。 最初,统计树用于扩展,以便通过多次仿真为可能的游戏状态添加更多节点。 收集足够数量的节点后,同时开始选择更好的节点,如果节点成功实现了问题目标,则每次仿真它们的价值都会增加,从而提高了实用性。 -在选择策略中,MCTS 还通过在现有的,有希望的节点与可能更有希望的未勘探节点之间保持平衡来纳入勘探与开发的权衡。 因此,仿真次数越多,统计树越大,则节点值收敛得越准确,最优决策就越好。 +在选择策略中,MCTS 还通过在现有的,有希望的节点与可能更有希望的未探索节点之间保持平衡来纳入探索与利用的权衡。 因此,仿真次数越多,统计树越大,则节点值收敛得越准确,最优决策就越好。 MCTS 是独立于域的,不需要复杂的手写试探法。 因此,它是解决各种开放式 AI 问题的强大算法。 diff --git a/new/rl-tf/10.md b/new/rl-tf/10.md index 67c1ff4a65e49bf2e26cc4203f306673f53cf855..fea959002c9705dc5ac933b7d963194a5ffba3ff 100644 --- a/new/rl-tf/10.md +++ b/new/rl-tf/10.md @@ -7,51 +7,32 @@ 传统的最新在线投资组合管理方法包括: | **方法** | **重要算法** | -| 基准测试 | - -* 买入并持有 -* 最佳股票 -* 恒定的平衡投资组合 - - | -| 关注获胜者 | - -* 通用投资组合 -* 指数梯度 -* 跟随领导者 -* 跟随正则领导者 -* 聚合类型算法 - - | -| 跟随失败者 | - -* 反相关 -* 被动积极平均回归 -* 置信加权平均回归 -* 在线移动平均回归 -* 稳健中值回归 - - | -| 模式匹配 | - -* 非参数直方图对数最优策略 -* 基于非参数核的对数最优策略 -* 非参数最近邻对数最优策略 -* 相关驱动的非参数学习 策略 -* 基于非参数内核的半对数最优策略 -* 基于非参数内核的 Markowitz 型策略 -* 基于非参数内核的 GV 类型策略 - - | -| 元学习 | - -* 聚合算法 -* 快速通用算法 -* 在线梯度更新 -* 在线牛顿更新 -* 遵循领先的历史 - - | +| --- | --- | +| 基准测试 | 买入并持有 | +| | 最佳股票 | +| | 恒定的平衡投资组合 | +| 关注获胜者 | 通用投资组合 | +| | 指数梯度 | +| | 跟随领导者 | +| | 跟随正则领导者 | +| | 聚合类型算法 | +| 跟随失败者 | 反相关 | +| | 被动正向平均回归 | +| | 置信加权平均回归 | +| | 在线移动平均回归 | +| | 稳健中值回归 | +| 模式匹配 | 非参数直方图对数最优策略 | +| | 基于非参数核的对数最优策略 | +| | 非参数最近邻对数最优策略 | +| | 相关驱动的非参数学习策略 | +| | 基于非参数内核的半对数最优策略 | +| | 基于非参数内核的 Markowitz 类型策略 | +| | 基于非参数内核的 GV 类型策略 | +| 元学习 | 聚合算法 | +| | 快速通用算法 | +| | 在线梯度更新 | +| | 在线牛顿更新 | +| | 遵循领先的历史 | 跟随获胜者和跟随失败者是基于先前构建的财务模型,该模型可能会或可能不会在上表中提及的相应算法中使用机器学习技术。 这些方法在不同金融市场中的有效性可以判断其效果。 diff --git a/new/rl-tf/11.md b/new/rl-tf/11.md index 55c2f1d3bccb84d9e7c0d3cf99b220ccef4262d1..d35f9a8ad0beb67b5f8ff453caf768da1086b207 100644 --- a/new/rl-tf/11.md +++ b/new/rl-tf/11.md @@ -33,7 +33,7 @@ # 强化学习的演变 -在本书中,我们涵盖了从基础到高级的强化学习领域中的大多数算法。 因此,这些章节是理解机器人领域中不同算法所面临的应用和挑战的前提。 早期强化学习算法通过首先获取状态动作值,然后从中得出策略来处理获取最佳策略的问题。 然后,策略迭代方法出现了,直接用于输出优化的策略。 勘探开发技术有助于完善现有策略,探索新措施并更新现有策略。 强化学习方法,例如 MDP(在第 3 章,“马尔可夫决策过程”中),其中需要采用过渡模型的值迭代方法称为**基于模型的学习器**。 另一方面,诸如 Q 学习(在第 5 章,“Q 学习和深度 Q 网络”中)的算法不需要这种过渡模型,因此也不需要任何预定义的策略。 他们被称为**无模型的脱离策略学习器**。 +在本书中,我们涵盖了从基础到高级的强化学习领域中的大多数算法。 因此,这些章节是理解机器人领域中不同算法所面临的应用和挑战的前提。 早期强化学习算法通过首先获取状态动作值,然后从中得出策略来处理获取最佳策略的问题。 然后,策略迭代方法出现了,直接用于输出优化的策略。 探索开发技术有助于完善现有策略,探索新措施并更新现有策略。 强化学习方法,例如 MDP(在第 3 章,“马尔可夫决策过程”中),其中需要采用过渡模型的值迭代方法称为**基于模型的学习器**。 另一方面,诸如 Q 学习(在第 5 章,“Q 学习和深度 Q 网络”中)的算法不需要这种过渡模型,因此也不需要任何预定义的策略。 他们被称为**无模型的脱离策略学习器**。 在深度强化学习领域,行动价值函数逼近器和策略函数逼近器在制定最先进的学习算法集方面发挥着关键作用。 策略搜索算法(例如策略梯度)旨在通过最大化期望的奖励总和来找到最佳策略,而使用行动值函数近似器(例如深度 Q 网络)的算法旨在通过最大化期望的总和来找到给定状态的行动值 奖励。 但是,在处理由高维和连续状态动作空间构成的环境时,性能上的差异在于,这最能描述机器人在其中运行的真实环境。 在这种情况下,策略搜索算法的性能会更好,因为它们在连续状态操作空间域中可以更好地工作: diff --git a/new/rl-tf/13.md b/new/rl-tf/13.md index b4ef5851f40a6484461456a4ec1693e774bdbfe5..0c65797f892cc7a4dbd259140d23a0351dea0d30 100644 --- a/new/rl-tf/13.md +++ b/new/rl-tf/13.md @@ -75,6 +75,7 @@ Ross Girshick 的 [Fast R-CNN](https://arxiv.org/pdf/1504.08083.pdf) 因此,RPN 给出了各种大小的边界框,每个边界的概率与每个类的对应概率相同,其余网络类似于 Fast-RCNN。 Faster-RCNN 的速度是 Fast-RCNN 的 10 倍,具有相似的精度,从而使其成为可用的最精确的对象检测模型之一。 下表显示了 R-CNN 不同变体的速度分析: | **类型** | **每张图像的测试时间(以秒为单位)** | **加速** | +| --- | --- | --- | | 神经网络 | 50 | 1 倍 | | 快速 R-CNN | 2 | 25 倍 | | 更快的 R-CNN | 0.2 | 250 倍 | diff --git a/new/rl-tf/15.md b/new/rl-tf/15.md index f02c456b88be290db4ced39036d9874d32d86715..38c5ec9a299c8fa5a1031e0c60796a66011e3549 100644 --- a/new/rl-tf/15.md +++ b/new/rl-tf/15.md @@ -99,11 +99,12 @@ BLEU 分数背后的动机是设计一种度量标准,该度量标准可以像 **机器生成的输出**:`The dog the dog the dog under the blanket` | **机器生成的输出中的二元组** | **计数** | **片段计数(任何参考中的二元组的最大数量)** | -| 那只狗 | 3 | 1 | -| 狗的 | 2 | 0 | -| 狗下 | 1 | 0 | -| 在下面 | 1 | 1 | -| 毯子 | 1 | 1 | +| --- | --- | --- | +| `the dog` | 3 | 1 | +| `dog the` | 2 | 0 | +| `dog under` | 1 | 0 | +| `under the` | 1 | 1 | +| `the blanket` | 1 | 1 | 因此,修改后的二元语法精度将为二元语法的片段计数与二元语法计数的总和之比,即: