Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
coolalex776
apachecn-dl-zh
提交
a0b22c20
A
apachecn-dl-zh
项目概览
coolalex776
/
apachecn-dl-zh
与 Fork 源项目一致
Fork自
OpenDocCN / apachecn-dl-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apachecn-dl-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a0b22c20
编写于
12月 29, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-12-29 22:09:53
上级
17b3ea07
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
9 addition
and
9 deletion
+9
-9
new/handson-rl-py/04.md
new/handson-rl-py/04.md
+5
-5
new/handson-rl-py/05.md
new/handson-rl-py/05.md
+1
-1
new/handson-rl-py/11.md
new/handson-rl-py/11.md
+1
-1
new/handson-rl-py/13.md
new/handson-rl-py/13.md
+1
-1
new/handson-rl-py/14.md
new/handson-rl-py/14.md
+1
-1
未找到文件。
new/handson-rl-py/04.md
浏览文件 @
a0b22c20
...
...
@@ -188,11 +188,11 @@ print("Approximate value of pi is {}" .format(calculate_pi(points_inside_circle,
# 首次访问蒙特卡洛
如我们所见,在蒙特卡洛方法中,我们通过取平均收益来近似值函数。 但是在首次访问 MC 方法中,我们仅在剧集中首次访问状态时才对返回值进行平均。 例如,假设一个智能体正在玩蛇和梯子游戏,那么如果该智能体被蛇咬伤,它很有可能会返回到该状态。 当智能体重新访问状态时,我们不考虑平均回报。 我们仅在智能体首次访问该
州
时才考虑平均回报。
如我们所见,在蒙特卡洛方法中,我们通过取平均收益来近似值函数。 但是在首次访问 MC 方法中,我们仅在剧集中首次访问状态时才对返回值进行平均。 例如,假设一个智能体正在玩蛇和梯子游戏,那么如果该智能体被蛇咬伤,它很有可能会返回到该状态。 当智能体重新访问状态时,我们不考虑平均回报。 我们仅在智能体首次访问该
状态
时才考虑平均回报。
# 每次访问蒙特卡洛
在蒙特卡洛的每次访问中,我们平均将剧集中每次访问
州的收益均值化。 考虑相同的蛇和梯子游戏示例:如果智能体在蛇咬之后返回到相同的状态,尽管智能体正在重新访问状态,但我们可以将其视为平均收益。 在这种情况下,我们平均每次智能体访问该州
时的回报。
在蒙特卡洛的每次访问中,我们平均将剧集中每次访问
状态的收益均值化。 考虑相同的蛇和梯子游戏示例:如果智能体在蛇咬之后返回到相同的状态,尽管智能体正在重新访问状态,但我们可以将其视为平均收益。 在这种情况下,我们平均每次智能体访问该状态
时的回报。
# 让我们使用蒙特卡洛玩二十一点
...
...
@@ -499,11 +499,11 @@ plot_blackjack(value, axes[0], axes[1])
我们如何估计作用值? 还记得我们在第 3 章,“马尔可夫决策过程和动态规划”中学习的
`Q`
函数吗? 表示为
`Q(s, a)`
的
`Q`
函数用于确定特定状态下的动作有多好。 它基本上指定了状态-动作对。
但是,这里出现了探索的问题。如果我们还没有处于状态状态值,我们如何知道状态状态值? 如果我们不采取所有可能的措施探索所有
州
,我们可能会错过丰厚的回报。
但是,这里出现了探索的问题。如果我们还没有处于状态状态值,我们如何知道状态状态值? 如果我们不采取所有可能的措施探索所有
状态
,我们可能会错过丰厚的回报。
假设在二十一点游戏中,我们处于纸牌总数为 20 的状态。如果我们仅尝试
**拿牌**
动作,我们将获得负数奖励,我们将得到负的奖励。但是,如果我们尝试
**停牌**
动作,我们将获得积极的回报,这实际上是最好的状态。因此,每次进入此特定状态 ,我们站立而不是受到打击。 为了让我们知道哪个是最佳操作,我们必须探索每种状态下的所有可能操作以找到最佳值。 我们应该怎么做?
让我介绍一个名为
**探索起始的蒙特卡洛**
,这意味着对于每个剧集,我们都将随机状态作为初始状态开始并执行操作。 因此,如果我们有大量的剧集,我们可能会以所有可能的动作覆盖所有
州
。 它也称为
**MC-ES**
算法。
让我介绍一个名为
**探索起始的蒙特卡洛**
,这意味着对于每个剧集,我们都将随机状态作为初始状态开始并执行操作。 因此,如果我们有大量的剧集,我们可能会以所有可能的动作覆盖所有
状态
。 它也称为
**MC-ES**
算法。
MC-ES 算法非常简单,如下所示:
...
...
@@ -595,7 +595,7 @@ def epsilon_greedy_policy(state, epsilon):
3.
我们选择行为策略。 行为策略不是贪婪的,它可以选择任何状态-行为对。
4.
然后,我们开始我们的剧集,并根据我们的行为策略在
`s`
状态下执行动作
`a`
,并存储奖励。 我们重复此操作直到剧集结束。
5.
现在,对于剧集中的每个
州
,我们执行以下操作:
5.
现在,对于剧集中的每个
状态
,我们执行以下操作:
1.
我们将计算回报
`G`
。 我们知道回报是折扣奖励的总和:
`G = 折扣因子 * G + 奖励`
。
2.
然后我们将
`C(s, a)`
更新为
`C(s, a) + C(s, a) + w`
。
3.
我们更新
`Q(s, a)`
:
...
...
new/handson-rl-py/05.md
浏览文件 @
a0b22c20
...
...
@@ -105,7 +105,7 @@ V(s) = -0.0315
前面的公式与 TD 预测更新规则相似,只是有一点点差异。 我们将逐步详细介绍这一点。 Q 学习涉及的步骤如下:
1.
首先,我们将
`Q`
函数初始化为一些任意值
2.
我们使用
`ε`
贪婪策略(
`ε > 0`
)从某个
州采取了一项行动,并将其移至新的州
2.
我们使用
`ε`
贪婪策略(
`ε > 0`
)从某个
状态采取了一项行动,并将其移至新的状态
3.
我们通过遵循更新规则来更新先前状态的
`Q`
值:
![](
img/00123.jpeg
)
...
...
new/handson-rl-py/11.md
浏览文件 @
a0b22c20
...
...
@@ -564,7 +564,7 @@ for i in range(no_of_episodes):
![](
img/00345.jpeg
)
![](
img/00346.jpeg
)
使用访问频率
`ρ[π]`
而不是
`ρ[π']`
,也就是说,由于策略的变化,我们忽略了状态访问频率的变化。 简而言之,我们假设新旧策略的
州
访问频率均相同。 当我们计算
`L[π]`
的梯度时,相对于某些参数
`θ`
而言,这也会提高
`η`
,我们不确定要采取多少步骤。
![](
img/00346.jpeg
)
使用访问频率
`ρ[π]`
而不是
`ρ[π']`
,也就是说,由于策略的变化,我们忽略了状态访问频率的变化。 简而言之,我们假设新旧策略的
状态
访问频率均相同。 当我们计算
`L[π]`
的梯度时,相对于某些参数
`θ`
而言,这也会提高
`η`
,我们不确定要采取多少步骤。
Kakade 和 Langford 提出了一种新的策略更新方法,称为保守策略迭代,如下所示:
...
...
new/handson-rl-py/13.md
浏览文件 @
a0b22c20
...
...
@@ -161,7 +161,7 @@ MAXQ 值函数分解是 HRL 中最常用的算法之一。 让我们看看 MAXQ
# 逆强化学习
那么,我们在 RL 中做了什么? 我们试图找到具有奖励函数的最优策略。 逆强化学习只是强化学习的逆,也就是说,给出了最优策略,我们需要找到奖励函数。 但是为什么反强化学习会有所帮助? 设计奖励函数不是一项简单的任务,而较差的奖励函数会导致智能体的不良行为。 我们并不总是知道适当的奖励函数,但我们知道正确的策略,即在每个
州
采取正确的行动。 因此,这种最佳策略由人类专家提供给智能体,智能体尝试学习奖励函数。 例如,考虑一个学习在真实环境中行走的智能体; 很难为将要执行的所有动作设计奖励函数。 取而代之的是,我们可以将人类专家的演示(最佳策略)提供给智能体,智能体将尝试学习奖励函数。
那么,我们在 RL 中做了什么? 我们试图找到具有奖励函数的最优策略。 逆强化学习只是强化学习的逆,也就是说,给出了最优策略,我们需要找到奖励函数。 但是为什么反强化学习会有所帮助? 设计奖励函数不是一项简单的任务,而较差的奖励函数会导致智能体的不良行为。 我们并不总是知道适当的奖励函数,但我们知道正确的策略,即在每个
状态
采取正确的行动。 因此,这种最佳策略由人类专家提供给智能体,智能体尝试学习奖励函数。 例如,考虑一个学习在真实环境中行走的智能体; 很难为将要执行的所有动作设计奖励函数。 取而代之的是,我们可以将人类专家的演示(最佳策略)提供给智能体,智能体将尝试学习奖励函数。
RL 周围有各种改进和进步。 现在,您已经阅读完本书,可以开始探索强化学习的各种进步,并开始尝试各种项目。 学习和加强!
...
...
new/handson-rl-py/14.md
浏览文件 @
a0b22c20
...
...
@@ -40,7 +40,7 @@
1.
当环境模型未知时,在 RL 中使用蒙特卡洛算法。
2.
请参阅“使用蒙特卡洛估计
`pi`
的值”部分。
3.
在蒙特卡洛预测中,我们通过取均值回报而不是期望回报来近似值函数。
4.
在蒙特卡洛的每次访问中,我们平均将剧集中每次访问
州
的收益均值化。 但是在首次访问 MC 方法中,我们仅在剧集中首次访问状态时才对返回值进行平均。
4.
在蒙特卡洛的每次访问中,我们平均将剧集中每次访问
状态
的收益均值化。 但是在首次访问 MC 方法中,我们仅在剧集中首次访问状态时才对返回值进行平均。
5.
请参阅“蒙特卡洛控制”部分。
6.
请参阅“策略上的蒙特卡洛控制”和“策略外的蒙特卡洛控制”部分
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录