Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
冰.封万里
apachecn-dl-zh
提交
50d9a385
A
apachecn-dl-zh
项目概览
冰.封万里
/
apachecn-dl-zh
与 Fork 源项目一致
Fork自
OpenDocCN / apachecn-dl-zh
通知
1
Star
0
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,发现更多精彩内容 >>
提交
50d9a385
编写于
1月 23, 2021
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021-01-23 15:55:28
上级
5c9cb6c7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
42 addition
and
36 deletion
+42
-36
new/rl-tf/03.md
new/rl-tf/03.md
+42
-36
未找到文件。
new/rl-tf/03.md
浏览文件 @
50d9a385
...
...
@@ -22,7 +22,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
*
**动作**
:
`A(s), A`
*
**转移模型**
:
`T(s, a, s') ~ P(s' | s, a)`
*
**奖励**
:
`R(s), R(s, a), R(s, a, s')`
*
**策略**
:
!
[](
img/ea08bda0-236b-4417-bbf3-48c6ceb4f985.png
)
![](
img/b8c1412b-ace7-48e4-bfd3-010b5e5d680f.png
)
是最佳策略
*
**策略**
:
`π(s) -> a[π*]`
是最佳策略
对于 MDP,环境是完全可观察的,也就是说,代理在任何时间点所做的任何观察都足以做出最佳决策。 在部分可观察的环境中,代理程序需要一个内存来存储过去的观察结果,以便做出最佳决策。
...
...
@@ -32,9 +32,9 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
简而言之,根据
**马尔可夫属性**
,为了了解不久的将来的信息(例如,在时间
`t + 1`
),当前信息在时间
`t`
很重要。
给定序列
!
[](
img/f450c939-685d-43f3-83b6-af42be2bb421.png
)
,马尔可夫一阶说!
[](
img/349504e1-61b2-451f-b85b-7f8937962dfb.png
)
,即!
[](
img/a1588718-a0ed-4ab7-a11a-9895f8491f64.png
)
仅取决于!
[](
img/920e2c9e-87b2-4b04-a896-e4fb18297d29.png
)
。 因此,!
[](
img/86055c73-c5e3-49cb-872f-98eccd8a9b07.png
)
将仅取决于!
[](
img/606ca955-be45-4198-b8b3-fb2955777371.png
)
。 马尔可夫的第二阶表示!
[](
img/6583c5db-7653-4282-aba5-73a95b23c786.png
)
,即!
[](
img/a1588718-a0ed-4ab7-a11a-9895f8491f64.png
)
仅取决于!
[](
img/920e2c9e-87b2-4b04-a896-e4fb18297d29.png
)
和!
[](
img/b76f9e59-3067-4778-98f5-2f9b5db8191e.png
)
。
给定序列
`[x[1], ..., x[t]]`
,马尔可夫一阶表示
`P(x[t] | x[t-1], ..., x[1]) = P(x[t] | x[t-1])`
,即
`x[t]`
仅取决于
`x[t-1]`
。 因此,
`x[t+1]`
将仅取决于
`x[t]`
。 马尔可夫的二阶表示
`P(x[t] | x[t-1], ..., x[1]) = P(x[t] | x[t-1], x[t-2])`
,即
`x[t]`
仅取决于
`x[t-1]`
和
`x[t-2]`
。
在我们的上下文中,从现在开始,我们将遵循马尔科夫属性的
第一顺序。 因此,如果新状态的概率!
[](
img/86055c73-c5e3-49cb-872f-98eccd8a9b07.png
)
仅取决于当前状态!
[](
img/606ca955-be45-4198-b8b3-fb2955777371.png
)
,则我们可以将任何过程转换为马尔科夫属性,以便当前状态捕获并记住过去的属性和知识 。 因此,根据马尔可夫属性,世界(即环境)被认为是固定的,也就是说,世界中的规则是固定的。
在我们的上下文中,从现在开始,我们将遵循马尔科夫属性的
一阶。 因此,如果新状态的概率
`x[t+1]`
仅取决于当前状态
`x[t]`
,则我们可以将任何过程转换为马尔科夫属性,以便当前状态捕获并记住过去的属性和知识 。 因此,根据马尔可夫属性,世界(即环境)被认为是固定的,也就是说,世界中的规则是固定的。
# `S`状态集
...
...
@@ -118,13 +118,13 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
其中
`t`
是完成任务所需的时间。
因此,如果没有无限远景的假设,那么策略的概念就不会是固定不变的,即
!
[](
img/9260f0cc-62f7-4bbc-a8d5-7190aceeb245.png
)
,而是!
[](
img/c5714e56-170d-4bac-93e7-f7324a09f957.png
)
。
因此,如果没有无限远景的假设,那么策略的概念就不会是固定不变的,即
`π(s) -> a`
,而是
`π(s, t) -> a`
。
# 序列的效用
序列的效用是指当代理人经历状态序列时所获得的总报酬。 它表示为
!
[](
img/c8a1136e-a890-4b64-b93b-0aa377237852.png
)
,其中!
[](
img/39d5f4c8-1fcb-4251-935c-fe3ea8d928ec.png
)
表示状态序列。
序列的效用是指当代理人经历状态序列时所获得的总报酬。 它表示为
`U(s[0], s[1], s[2], ...)`
,其中
`s[0], s[1], s[2], ...`
表示状态序列。
第二个假设是,如果有两个
工具!
[](
img/77076182-0b36-44a5-958f-314ce66cd114.png
)
和!
[](
img/edc776c0-cee1-4b2a-a2a1-d55b7d0d19bc.png
)
,则两个序列的开始状态都相同,并且
第二个假设是,如果有两个
效用
`U(s[0], s[1], s[2], ...)`
和
`U(s[0], s'[1], s'[2], ...)`
,则两个序列的开始状态都相同,并且
![](
img/bb59d758-3f56-4513-bc9d-9d1d8292d013.png
)
...
...
@@ -132,7 +132,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
![](
img/0abf959d-3da4-4b0a-9ad2-af3631dd0381.png
)
这意味着,如果序列
!
[](
img/1e54f33c-3cba-47ef-afd0-9db327b835be.png
)
的效用大于另一个函数!
[](
img/bf01d123-cb53-4576-a9a4-63316cd62c9f.png
)
,只要两个序列的起始状态都相同,那么没有该起始状态的序列将具有相同的不等式,即!
[](
img/3a2f5ee4-4bfb-40b2-8748-9220ecfdef3f.png
)
将大于!
[](
img/42ed9c29-de86-4d0a-9e47-6101682cd81f.png
)
。 这种假设称为偏好的平稳性。
这意味着,如果序列
`U(s[0], s[1], s[2], ...)`
的效用大于另一个函数
`U(s[0], s'[1], s'[2], ...)`
,只要两个序列的起始状态都相同,那么没有该起始状态的序列将具有相同的不等式,即
`U(s[1], s[2], ...)`
将大于
`U(s'[1], s'[2], ...)`
。 这种假设称为偏好的平稳性。
因此,以下等式满足了偏好的平稳性,
...
...
@@ -141,21 +141,23 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
上式中的求和足以满足我们的假设,但它有两个缺点,如下所示:
*
无限的时间将使求和无限
*
求和的大小写或顺序无异,即
!
[](
img/dd5de3a0-ec1c-4a8a-a983-2487e84b32ed.png
)
和!
[](
img/ad99461c-acca-4fc1-9692-ced3de6523d9.png
)
的效用值相同,即!
[](
img/5593bd7d-52e1-4c08-878a-86b17e2a622c.png
)
*
求和的大小写或顺序无异,即
`U(a, b, c)`
和
`U(a, c, b)`
的效用值相同,即
`R(a) + R(b) + R(c)`
因此,我们采用折扣系数
!
[](
img/2043a065-fbb7-419d-ab1c-b172dd48e984.png
)
来实现未来奖励的概念,即延迟奖励。
因此,我们采用折扣系数
`γ`
来实现未来奖励的概念,即延迟奖励。
![](
img/82d34b1d-de39-4e24-99d9-7e440d9b03b4.png
)
,其中!
[](
img/eead3cfb-dd71-41e8-93f3-15012301e919.png
)
![](
img/82d34b1d-de39-4e24-99d9-7e440d9b03b4.png
)
让我们考虑所有!
[](
img/c82bd6bf-3f29-40df-97b2-399d9e5f83d0.png
)
,即在给定特定环境中来自不同状态的奖励,!
[](
img/ef4c53bb-fa95-4d19-911c-546090c7b82e.png
)
是最大值,然后
其中
`0 <= γ < 1`
。
让我们考虑所有
`R(s[t])`
,即在给定特定环境中来自不同状态的奖励,
`R_max`
是最大值,然后
![](
img/108100d2-dded-4635-afa3-4246591385cb.png
)
怎么样? 让我们算出这个上限,
由于
!
[](
img/d2c3be44-ecec-4b07-8903-a51088b9075a.png
)
,
由于
`R(s[t]) <= R_max`
,
因此,
!
[](
img/a526e87c-7118-4c0f-85e4-28f61f1a1b63.png
)
因此,
`γ^t R(s[t]) <= γ^t R_max`
,
因此,
...
...
@@ -179,17 +181,17 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
# 贝尔曼方程
由于最佳
!
[](
img/d4c049e6-8b38-4db6-a8d6-54876d037923.png
)
策略是使预期收益最大化的策略,因此,
由于最佳
`π*`
策略是使预期收益最大化的策略,因此,
![](
img/2ccc6145-78d9-4ba3-a12e-19b454d98f69.png
)
,
其中
!
[](
img/74b40efa-128c-4241-b58d-ee317862e8d7.png
)
表示从状态序列获得的报酬的期望值,代理观察其是否遵循!
[](
img/64edc6e8-2ff9-4cf7-89db-494345407621.png
)
策略。 因此,!
[](
img/04d5cea0-7a4c-44bf-bbae-df26ebdc587a.png
)
输出具有最高预期奖励的!
[](
img/151114d7-cb43-46c6-84d5-11a15df2050e.png
)
策略。
其中
`E[...]`
表示从状态序列获得的报酬的期望值,代理观察其是否遵循
`π`
策略。 因此,
`argmax[π]`
输出具有最高预期奖励的
`π`
策略。
同样,我们也可以计算状态为的策略效用,也就是说,如果我们处于
`s`
状态,则给定
!
[](
img/97497aa9-7dfa-470c-9a95-40fa91cc8588.png
)
策略,则,
`s`
状态的!
[](
img/f7c447e9-5546-4220-9ec5-32ed98ba141b.png
)
策略,即!
[](
img/9c937080-8ae6-47a7-919b-4778f5046829.png
)
将是从该状态开始的预期收益:
同样,我们也可以计算状态为的策略效用,也就是说,如果我们处于
`s`
状态,则给定
`π`
策略,则,
`s`
状态的
`π`
策略,即
`U[π](s)`
将是从该状态开始的预期收益:
![](
img/c99b8ca1-0cfb-419a-bc57-c9de97773b37.png
)
由于延迟奖励的概念,状态
即!
[](
img/f61a7258-3d34-4a82-80ca-b008518dc4fa.png
)
的立即奖励与!
[](
img/390a601f-6abc-45b2-b308-50c8a6990b74.png
)
状态的效用(即!
[](
img/e632b1a4-0b87-42c8-945f-59f53180d113.png
)
状态的最佳策略的效用)不同。 从现在开始,!
[](
img/c567e502-f780-4e1d-9a84-d161d4a14faa.png
)
状态的效用将指该状态(即!
[](
img/f0fb533d-d74a-4e17-b06e-98e4b627529f.png
)
状态)的最佳策略的效用
。
由于延迟奖励的概念,状态
的立即奖励
`R(s)`
与状态的效用
`U(s)`
(即状态的最佳策略的效用
`U[π*](s)`
)不同。 从现在开始,状态的效用
`U(s)`
将指该状态的最佳策略的效用(即
`U[π*](s)`
)
。
此外,最佳策略也可以被视为最大化预期效用的策略。 因此,
...
...
@@ -197,11 +199,11 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
其中,
`T(s, a, s')`
是转移概率,即
`P(s' | s, a)`
;在对
`s`
状态采取
`a`
动作后,
`U(s')`
是新着陆状态的效用。
![](
img/c7961616-4973-4920-969e-2ac20e4661b1.png
)
指的是针对特定行动采取的所有可能的新状态结果的总和,然后无论哪个行动给出了!
[](
img/bde26e3c-33c6-446d-90be-164102224f37.png
)
的最大值,该最大值被认为是最优策略的一部分,因此, 状态由以下
**贝尔曼方程**
给出,
`Σ[s'] T(s, a, s')U(s')`
指的是针对特定行动采取的所有可能的新状态结果的总和,然后无论哪个行动给出了
`Σ[s'] T(s, a, s')U(s')`
的最大值,该最大值被认为是最优策略的一部分,因此, 状态由以下
**贝尔曼方程**
给出,
![](
img/0ef93e7c-5cc5-45ab-8baf-db2a07bd9e29.png
)
其中,
!
[](
img/adb4cb12-b671-4248-8b74-0dc2b334b995.png
)
是即时奖励,!
[](
img/c41ab863-e019-4bc7-ad8d-7530f9e0190b.png
)
是来自未来的奖励,也就是说,如果采取行动
`a`
,代理可以从给定的
`s`
状态到达的
`s'`
状态的贴现效用。
其中,
`R(s)`
是即时奖励,
`max[a] Σ[s'] T(s, a, s')U(s')`
是来自未来的奖励,也就是说,如果采取行动
`a`
,代理可以从给定的
`s`
状态到达的
`s'`
状态的贴现效用。
# 解决贝尔曼方程来找到策略
...
...
@@ -209,7 +211,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
![](
img/5051739f-0788-416d-9182-38ae2169ffca.png
)
我们发现给出了
`n`
个状态; 因此,我们将拥有
`n`
方程,而
`n`
未知,但是
!
[](
img/324c08e6-eeae-44a3-addd-117c9113646d.png
)
函数使其变为非线性。 因此,我们不能将它们作为线性方程式求解。
我们发现给出了
`n`
个状态; 因此,我们将拥有
`n`
方程,而
`n`
未知,但是
`max[a]`
函数使其变为非线性。 因此,我们不能将它们作为线性方程式求解。
因此,为了解决:
...
...
@@ -239,14 +241,14 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
*
因此,绿色和红色状态是终端状态,进入其中一个状态,游戏结束。 如果座席遇到绿色状态(即进球状态),则座席获胜;如果他们进入红色状态,则座席将输掉比赛。
*
!
[](
img/c5ef3106-3865-42ac-b31d-00932fc9bdef.png
)
,!
[](
img/42d4df8a-cfdd-4178-b0f2-bd11a5ae69d4.png
)
(即,对除
`G`
和
`B`
状态之外的所有状态的奖励是-0.04),!
[](
img/b4354f1f-4615-42ee-b355-e822c11f4a12.png
)
(即,第一个工具 除
`G`
和
`B`
状态外,时间步长为 0
。
*
`γ = 1/2`
,
`R(s) = -0.04`
(即,对除
`G`
和
`B`
状态之外的所有状态的奖励是 -0.04),
`U[0](s) = 0`
(即,第一个时间步长的效用为 0,除
`G`
和
`B`
状态外)
。
*
如果沿期望的方向前进,则过渡概率
`T(s, a, s')`
等于 0.8; 否则,如果垂直于所需方向,则各为 0.1。 例如,如果操作是
`UP`
,则概率为 0.8,代理会
`UP`
,但概率为 0.1 时,它会
`RIGHT`
,而 0.1 则为
`LEFT`
。
问题:
1.
在时间步骤 1 找到!
[](
img/a57bc045-8c4f-4a08-9b91-8834e66133b0.png
)
X 状态的工具!
[](
img/a57bc045-8c4f-4a08-9b91-8834e66133b0.png
)
,也就是说,代理将进行一次迭代
2.
同样,找到
!
[](
img/9f997dda-7c3a-4217-b267-9b18ddab28f7.png
)
1.
找到
`U[1](X)`
,时间步骤 1 的
`X`
状态的效用
,也就是说,代理将进行一次迭代
2.
同样,找到
`U[2](X)`
解:
...
...
@@ -300,13 +302,13 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
![](
img/393b0f69-fd8a-4298-8b2a-cb478a41e930.png
)
因此,
!
[](
img/21200f3f-c26e-4d12-b8fa-c9590eb78fe4.png
)
,其中!
[](
img/cc220011-8814-4af3-a672-eeca86ecbad9.png
)
和!
[](
img/3838706a-7406-4c4c-895e-956b887dea52.png
)
。
因此,
`U[1](X) = -0.04 + 0.5 * 0.8 = 0.36`
,其中
`R(X) = -0.04`
和
`γ = 1/2 = 0.5`
。
类似地,计算
!
[](
img/b2c995ad-7793-43fc-a374-cccbaae4e036.png
)
和!
[](
img/27395076-c4bc-49ac-abe7-fc2be8010eba.png
)
,我们得到!
[](
img/6c520870-cb18-443a-920f-d347568a1c43.png
)
和!
[](
img/93478f79-4c03-4296-a5d1-12890a0896d5.png
)
。
类似地,计算
`U[1](A)`
和
`U[1](C)`
,我们得到
``R(X) = -0.04``
和
`γ = 1/2 = 0.5`
。
由于
!
[](
img/daf8c8a9-a0f0-4821-9d27-6a765ac1de92.png
)
和
,
由于
`U[1](X) = 0.36, U[1](A) = -0.04, U[1](C) = -0.04, U[1](G) = 1, U[1](B) = -1`
,
![](
img/bc2a8cef-a5a1-439c-a602-9d309920ca8d.png
)
。
![](
img/bc2a8cef-a5a1-439c-a602-9d309920ca8d.png
)
`R(X) = -0.04`
...
...
@@ -354,23 +356,23 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
![](
img/7b5c01bd-c97a-4b98-a1ca-2b518675d6bd.png
)
因此,
!
[](
img/6e2a443f-d45d-4ac7-8726-44a46f2aafa6.png
)
,其中!
[](
img/cc220011-8814-4af3-a672-eeca86ecbad9.png
)
和!
[](
img/3838706a-7406-4c4c-895e-956b887dea52.png
)
。
因此,
`U[2](X) = -0.04 + 0.5 * 0.832 = 0.376`
,其中
`R(X) = -0.04`
和
`γ = 1/2 = 0.5`
。
因此,上述问题的答案是:
1.
!
[](
img/c103eddd-42e3-46b0-9876-198a24cbdc2a.png
)
2.
!
[](
img/66e20b1e-cbdf-4812-bc22-3a5f2b88fe54.png
)
1.
`U[1](X) = 0.36`
2.
`U[2](X) = 0.376`
# 策略迭代
通过迭代策略并更新策略本身(而不是价值)直到策略收敛到最优值以获得最优效用的过程称为
**策略迭代**
。 策略迭代的过程如下:
*
从随机策略
!
[](
img/fca76e00-947b-4a07-a73c-f8285f0edf6a.png
)
开始
*
对于迭代步骤
`t`
中给定的
!
[](
img/576f03de-37f8-459b-bc54-a64f978442b8.png
)
策略,请使用以下公式计算!
[](
img/eb38c1ca-0e24-46f9-a0e7-2379459a8b01.png
)
:
*
从随机策略
`π[0]`
开始
*
对于迭代步骤
`t`
中给定的
`π[t]`
策略,请使用以下公式计算
`U[t] = U[t]^π`
:
![](img/41e3cc56-1bb4-4874-b6db-8246f4054d3e.png)
*
Improve the !
[](
img/b6ef1605-555e-4f93-9792-da7da795c1c5.png
)
policy by
*
根据以下公式改进
`π[t+1]`
:
![](img/1c9d9376-7286-498e-b097-c6aa03197556.png)
...
...
@@ -406,7 +408,7 @@ POMDP 难以解决,无法实现最佳解决方案。
![](
img/35b5669e-32a7-4c9f-ad01-833abdb38255.png
)
其中
!
[](
img/0e0529de-10f6-4b03-a578-8d81e386f29f.png
)
和!
[](
img/f70d2c68-66e5-4a39-aadb-34b1af9529cb.png
)
。 从而,
其中
`p(z | b, a, s') = O(s', z)`
和
`p(s' | s, b, a) = T(s, a, s')`
。 从而,
![](
img/628f5062-7f82-4c25-b541-b1e76ae81d96.png
)
...
...
@@ -414,9 +416,13 @@ POMDP 难以解决,无法实现最佳解决方案。
POMDP 中的值迭代基本上是从信念 MDP 获得的无限状态空间上的值迭代。
在
`t = 0`
时,!
[](
img/c22745a1-9dba-415d-8af4-0b69ae458763.png
)
在
`t = 0`
时,
`V[0](b) = 0`
在
`t > 0`
时,
![](
img/d9d073a1-0957-434c-962a-fc558a1bec1c.png
)
在
`t > 0`
,!
[](
img/d9d073a1-0957-434c-962a-fc558a1bec1c.png
)
处,
其中
`b'`
为
`b'(s') = p(s' | b, a, z)`
,即
`(b, a, z)`
和
`R(b, a)`
的状态估计是对信念状态的预期奖励,如下所示:
其中
`b'`
为
`b'(s') = p(s' | b, a, z)`
,即
`(b, a, z)`
和
`R(b, a)`
的状态估计是对信念状态的预期奖励,如下所示:
![](
img/76b35625-61ca-47bf-b1f7-a0b13e381607.png
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录