Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
冰.封万里
apachecn-dl-zh
提交
c1977733
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,发现更多精彩内容 >>
提交
c1977733
编写于
1月 22, 2021
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021-01-22 22:47:15
上级
b82c71c5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
24 deletion
+24
-24
new/rl-tf/04.md
new/rl-tf/04.md
+24
-24
未找到文件。
new/rl-tf/04.md
浏览文件 @
c1977733
...
...
@@ -17,15 +17,15 @@
*
策略目标函数
*
时差规则
*
策略梯度
*
使用策略梯度的
Agent
学习 Pong
*
使用策略梯度的
智能体
学习 Pong
# 策略优化方法
策略优化方法的目标是找到随机策略
!
[](
img/e183d447-5314-4850-9e50-21a8888bf8c6.png
)
,它是针对给定状态的操作分布,该状态使期望的奖励总和最大化。 它旨在直接找到该策略。 基本概述是创建一个神经网络(即策略网络),该网络处理一些状态信息并输出代理可能采取的行动的分布。
策略优化方法的目标是找到随机策略
`π[θ]`
,它是针对给定状态的操作分布,该状态使期望的奖励总和最大化。 它旨在直接找到该策略。 基本概述是创建一个神经网络(即策略网络),该网络处理一些状态信息并输出代理可能采取的行动的分布。
策略优化的两个主要组成部分是:
*
神经网络的权重参数由
!
[](
img/28e571cd-ca92-4253-ae6c-3be13f0af326.png
)
向量定义,这也是我们控制策略的参数。 因此,我们的目标是训练权重参数以获得最佳策略。 由于我们将保单视为给定保单的预期奖励总和。 在此,对于!
[](
img/28e571cd-ca92-4253-ae6c-3be13f0af326.png
)
的不同参数值,策略将有所不同,因此,最佳策略将是具有最大总体奖励的策略。 因此,具有最大预期奖励的!
[](
img/28e571cd-ca92-4253-ae6c-3be13f0af326.png
)
参数将是最佳策略。 以下是预期奖励金额的公式:
*
神经网络的权重参数由
`θ`
向量定义,这也是我们控制策略的参数。 因此,我们的目标是训练权重参数以获得最佳策略。 由于我们将保单视为给定保单的预期奖励总和。 在此,对于
`θ`
的不同参数值,策略将有所不同,因此,最佳策略将是具有最大总体奖励的策略。 因此,具有最大预期奖励的
`θ`
参数将是最佳策略。 以下是预期奖励金额的公式:
![](
img/b0592927-b05c-471e-a9f1-18b6c1bedaa4.png
)
...
...
@@ -33,7 +33,7 @@
这里,
`H`
地平线的时间步长,因此,如果开始时间步长
`t = 0`
,则总时间步长为
`H + 1`
。
*
随机策略类消除了策略优化问题,为我们提供了一组可以选择最佳策略的策略。 在网格世界环境中采用确定性策略的情况下,由于动作变化而导致的变化并不平滑,但是如果每个州都有动作分布,我们可以稍微改变分布,而这只会稍微改变预期的总和。 奖励。 这是使用随机策略的优势,其中
!
[](
img/143e641a-8be1-411e-a866-01e470d80447.png
)
给出给定状态
`s`
的动作
`a`
的概率。 因此,!
[](
img/342e31bf-6e76-40e8-a298-b03277733e73.png
)
给出了给定状态下动作的概率分布。
*
随机策略类消除了策略优化问题,为我们提供了一组可以选择最佳策略的策略。 在网格世界环境中采用确定性策略的情况下,由于动作变化而导致的变化并不平滑,但是如果每个州都有动作分布,我们可以稍微改变分布,而这只会稍微改变预期的总和。 奖励。 这是使用随机策略的优势,其中
`π[θ](a | s)`
给出给定状态
`s`
的动作
`a`
的概率。 因此,
`π[θ]`
给出了给定状态下动作的概率分布。
因此,由于随机策略,我们有一个平滑的优化问题,可以应用梯度下降来获得良好的局部最优,从而导致最优策略。
...
...
@@ -74,14 +74,14 @@
在上图中,我们看到有八个状态,其中两个奖励为 -10 的状态是要避免的不良状态,并且有一个奖励为 10 的状态是良好状态,还有目标状态。 但是,我们主要担心的是灰色阴影状态,在该状态下,代理人无法区分这两个状态,因为它们具有相同的特征。
假设任何状态的特征都为
!
[](
img/a0e8241f-a4a4-4bbc-a9b8-8912eb94ef2a.png
)
,动作为北,东,西和南。
假设任何状态的特征都为
`φ(s, a)`
,动作为北,东,西和南。
考虑到这些功能,让我们比较基于值的方法和基于策略的方法:
*
基于值的强化学习将使用近似值函数
!
[](
img/bc43afc9-6edf-43f7-9d3c-1a25a10aca56.png
)
。
*
基于策略的强化学习将使用参数化策略
!
[](
img/f0d57666-8c89-494e-9345-9b2784a5ddbc.png
)
。
*
基于值的强化学习将使用近似值函数
`Q(s, a) = f(φ(s, a), w)`
。
*
基于策略的强化学习将使用参数化策略
`π[θ](s, a) = g(φ(s, a), θ)`
。
在此,
`w`
是值函数的参数,
!
[](
img/cbfbfe03-7b6c-438f-acd5-3b0a29950004.png
)
是策略的参数。 众所周知,灰色方块具有相同的特征,即在北部和南部都有墙。 因此,由于相同的特征,这导致状态混淆。 结果,基于价值的强化学习方法学习了如下确定性策略:
在此,
`w`
是值函数的参数,
`θ`
是策略的参数。 众所周知,灰色方块具有相同的特征,即在北部和南部都有墙。 因此,由于相同的特征,这导致状态混淆。 结果,基于价值的强化学习方法学习了如下确定性策略:
*
要么在两个灰色阴影状态下向西移动
*
或在两个灰色阴影状态下向东移动
...
...
@@ -99,53 +99,53 @@
# 策略目标函数
现在让我们讨论如何优化策略。 在策略方法中,我们的主要目标是具有参数向量
!
[](
img/7f80ae4c-023b-41eb-afe0-4adc03aeaa6f.png
)
的给定策略!
[](
img/fba31d95-dfc8-484d-89a8-3f18a2a052a1.png
)
找到参数向量的最佳值。 为了测量哪个最好,我们针对参数向量!
[](
img/1d265c8a-58fb-47ad-a899-332ce8ed4b57.png
)
的不同值测量!
[](
img/f7d09ac3-d177-4d26-be11-40d62ddd2498.png
)
策略!
[](
img/7eff98de-883b-4dc2-91b2-bcf5345e6d21.png
)
的质量。
现在让我们讨论如何优化策略。 在策略方法中,我们的主要目标是具有参数向量
`θ`
的给定策略
`J(θ)`
找到参数向量的最佳值。 为了测量哪个最好,我们针对参数向量
`θ`
的不同值测量
`J(θ)`
策略
`π[θ](s, a)`
的质量。
在讨论优化方法之前,让我们首先弄清楚度量策略
!
[](
img/a87b9882-1171-43a5-9a30-cb96ac7792f1.png
)
的质量的不同方法:
在讨论优化方法之前,让我们首先弄清楚度量策略
`π[θ](s, a)`
的质量的不同方法:
*
如果是情景环境,则
!
[](
img/399546eb-fa7e-4286-a286-0bbc7b7075a9.png
)
可以是开始状态!
[](
img/a8ed5154-6128-47af-9e75-c430390a98e0.png
)
的值函数,也就是说,如果它从任何状态!
[](
img/224c25b9-df64-40a0-8d0a-cf927ef00be0.png
)
开始,则其值函数将是该状态开始时的预期奖励总和 。 因此,
*
如果是情景环境,则
`J(θ)`
可以是开始状态
`V[π[θ]](s[1])`
的值函数,也就是说,如果它从任何状态
`s[1]`
开始,则其值函数将是该状态开始时的预期奖励总和 。 因此,
![](
img/01578517-3d8f-4227-a234-94a8e6fc9985.png
)
*
如果是连续环境,则
!
[](
img/67a2605d-5b85-4ef8-8345-23f88e04c7aa.png
)
可以是状态的平均值函数。 因此,如果环境持续不断,那么策略质量的衡量标准可以是处于任何状态
`s`
的概率之和,该概率是!
[](
img/a112f968-41ba-4324-8aea-9a7362cd57dc.png
)
乘以该状态的值 也就是说,从该状态开始的预期奖励。 因此,
*
如果是连续环境,则
`J(θ)`
可以是状态的平均值函数。 因此,如果环境持续不断,那么策略质量的衡量标准可以是处于任何状态
`s`
的概率之和,该概率是
`d[π[θ]](s)`
乘以该状态的值 也就是说,从该状态开始的预期奖励。 因此,
![](
img/2cfba9ad-f36c-4239-80f2-8c4acd2b5738.png
)
*
对于连续环境,
!
[](
img/d7daa239-124e-489d-8dee-dac4ce0c67da.png
)
可以是每个时间步长的平均奖励,它是处于任何状态
`s`
的概率的总和,即!
[](
img/ff38860c-55d7-48cb-b711-96730be55ee6.png
)
乘以对该状态的不同动作的期望奖励!
[](
img/ab734c3a-740c-4d05-bee7-9fee1d71a8ec.png
)
的总和。 因此:
*
对于连续环境,
`J(θ)`
可以是每个时间步长的平均奖励,它是处于任何状态
`s`
的概率的总和,即
`d[π[θ]](s)`
乘以对该状态的不同动作的期望奖励
`E[R[s]^a] = Σ[a] π[θ](s, a) R[s]^a`
的总和。 因此:
![](
img/d42506b9-9710-4ec3-93a3-50c62b3b2991.png
)
在此,
!
[](
img/76bb83ab-8783-441c-b93f-9cb852adea36.png
)
是在状态
`s`
采取行动
`a`
的奖励。
在此,
`R[s]^a`
是在状态
`s`
采取行动
`a`
的奖励。
到目前为止,我们知道基于策略的强化学习是一个优化问题,目标是找到使
!
[](
img/29b8bcc8-8899-4036-915c-da44b0572d00.png
)
最大化的!
[](
img/ebff45ff-12c2-44e0-bda5-21cde9d251b6.png
)
。 同样,在这里,我们将使用基于梯度的方法进行优化。 使用基于梯度的优化的原因是要获得更高的效率,因为与无梯度方法相比,梯度指向了更高效率的方向。
到目前为止,我们知道基于策略的强化学习是一个优化问题,目标是找到使
`J(θ)`
最大化的
`θ`
。 同样,在这里,我们将使用基于梯度的方法进行优化。 使用基于梯度的优化的原因是要获得更高的效率,因为与无梯度方法相比,梯度指向了更高效率的方向。
让衡量策略质量的
!
[](
img/e692d5f7-a0f4-429d-88b9-76841097db58.png
)
成为我们的策略目标函数。 因此,策略梯度算法通过相对于参数!
[](
img/ea8c20d8-5c4c-48ed-92eb-d67c4fce01c2.png
)
提升策略的梯度,在!
[](
img/2db17489-4871-4766-aecf-8ceb59e3588f.png
)
中寻找局部最大值。 这是因为我们的目标是使!
[](
img/8fa96eec-d05a-4d08-823a-c94a2f12d1f2.png
)
相对于!
[](
img/a785ed7b-74a1-4b8c-a661-44cbe24676b7.png
)
最大化,因此我们进行了梯度上升,其中
为
!
[](
img/029690bc-9836-48b8-b4c6-2106aa3a2a32.png
)
的参数的增量如下:
让衡量策略质量的
``J(θ)``
成为我们的策略目标函数。 因此,策略梯度算法通过相对于参数
`θ`
提升策略的梯度,在
`J(θ)`
中寻找局部最大值。 这是因为我们的目标是使
`J(θ)`
相对于
`θ`
最大化,因此我们进行了梯度上升,其中
为
`Δθ`
的参数的增量如下:
![](
img/9ff648e7-9f6f-4a44-a52f-7d749cb6e1cf.png
)
在这里,
!
[](
img/a0ed8041-0913-44e4-8e75-4a4575f6a43e.png
)
是策略梯度,!
[](
img/08199fd7-dc55-41ad-b165-1986e4b9b3f0.png
)
是学习率,也称为
**步长参数**
,步长参数决定该参数应在每个步长上偏移多少梯度。 策略梯度还可以用以下形式阐述:
在这里,
`ᐁ[θ] J(θ)`
是策略梯度,
`α`
是学习率,也称为
**步长参数**
,步长参数决定该参数应在每个步长上偏移多少梯度。 策略梯度还可以用以下形式阐述:
![](
img/0d918775-9864-4b04-9b05-f59c0941e222.png
)
# 策略梯度定理
假设给定策略
!
[](
img/e3d26803-9858-4ea2-bd79-3e0b45a09f99.png
)
每当不为零时都是可微的,则给定策略相对于!
[](
img/1ac193f4-8848-497e-b421-fcc2c4f3be6b.png
)
的梯度为!
[](
img/bdb911f2-ef69-4a03-ad39-6d2c15e520ba.png
)
。 因此,我们可以以似然比的形式进一步利用此梯度量,如下所示:
假设给定策略
`π[θ](s, a)`
每当不为零时都是可微的,则给定策略相对于
`θ`
的梯度为
`ᐁ[θ] π[θ](s, a)`
。 因此,我们可以以似然比的形式进一步利用此梯度量,如下所示:
![](
img/0af8a486-8579-4e97-8e22-ec4b276714f5.png
)
此处,
!
[](
img/d7dd0cd7-842e-41fb-9d73-bf9ffa1d8df6.png
)
是得分函数,供将来参考。
此处,
`ᐁ[θ] log π[θ](s, a)`
是得分函数,供将来参考。
现在,让我们考虑一个简单的一步式 MDP,即马尔可夫决策过程,其中:
*
起始状态为
,发生的可能性为!
[](
img/a366eee2-685d-4db4-8eb6-bb12f82762cf.png
)
*
终止仅
在获得奖励!
[](
img/564de4ef-e5c9-433a-b305-f5727f768af8.png
)
的情况下执行一次
*
起始状态为
`s`
,发生的可能性为
`d[π[θ]](s)`
*
终止仅
发生在获得奖励
`r = R[s]^a`
的一步之后
考虑到它是一个持续的环境,因此:
![](
img/a8296a39-e2c7-4a1e-a8c4-02e15df4fd4e.png
)
因此,策略梯度
!
[](
img/b7b329f8-340c-472e-afcd-cacd7ff3a1d5.png
)
将如下所示:
因此,策略梯度
`ᐁ[θ] J(θ)`
将如下所示:
![](
img/ba08ca33-c4b3-4d33-85f9-cd7ee7413342.png
)
...
...
@@ -157,7 +157,7 @@
![](
img/b6666854-9607-4fcd-9536-6ad2779a7ffd.png
)
因此,将该方法推广到多步马尔可夫决策过程将导致状态奖励 Q 值函数
!
[](
img/5610aab6-6f91-4840-b4dc-dbb44f9ed700.png
)
代替瞬时奖励
`r`
。 这称为
**策略梯度定理**
。 该定理对前面讨论的其他类型的策略目标函数有效。 因此,对于任何这样的策略目标函数和任何可区分的!
[](
img/e3d26803-9858-4ea2-bd79-3e0b45a09f99.png
)
,策略梯度如下:
因此,将该方法推广到多步马尔可夫决策过程将导致状态奖励 Q 值函数
`Q[π](s, a)`
代替瞬时奖励
`r`
。 这称为
**策略梯度定理**
。 该定理对前面讨论的其他类型的策略目标函数有效。 因此,对于任何这样的策略目标函数和任何可区分的
`π[θ](s, a)`
,策略梯度如下:
![](
img/22aa628a-e90d-49c5-ae2d-c8f5e168393c.png
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录