Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
大唐爆破僧
apachecn-dl-zh
提交
b676492d
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,体验更适合开发者的 AI 搜索 >>
提交
b676492d
编写于
1月 18, 2021
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021-01-18 22:04:42
上级
fc05311a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
18 addition
and
18 deletion
+18
-18
new/rl-tf/04.md
new/rl-tf/04.md
+17
-17
new/rl-tf/15.md
new/rl-tf/15.md
+1
-1
未找到文件。
new/rl-tf/04.md
浏览文件 @
b676492d
...
...
@@ -42,7 +42,7 @@
在本节中,我们将介绍策略优化方法相对于基于价值的方法的优缺点。 优点如下:
*
它们提供了更好的融合。
*
在高维/连续状态动作空间的情况下,它们非常有效。 如果动作空间很大,则基于值的方法中的
max 函数将在计算上昂贵。 因此,基于策略的方法通过更改参数来直接更改策略,而不是在每个步骤中求解 max
函数。
*
在高维/连续状态动作空间的情况下,它们非常有效。 如果动作空间很大,则基于值的方法中的
`max`
函数将在计算上昂贵。 因此,基于策略的方法通过更改参数来直接更改策略,而不是在每个步骤中求解
`max`
函数。
*
学习随机策略的能力。
与基于策略的方法相关的缺点如下:
...
...
@@ -72,7 +72,7 @@
![](
img/c3a614ea-6981-49ca-b3a3-65614cdb7db6.png
)
在上图中,我们看到有八个状态,其中两个奖励为-10 的状态是要避免的不良状态,并且有一个奖励为 10 的状态是良好状态,还有目标状态。 但是,我们主要担心的是灰色阴影状态,在该状态下,代理人无法区分这两个状态,因为它们具有相同的特征。
在上图中,我们看到有八个状态,其中两个奖励为
-10 的状态是要避免的不良状态,并且有一个奖励为 10 的状态是良好状态,还有目标状态。 但是,我们主要担心的是灰色阴影状态,在该状态下,代理人无法区分这两个状态,因为它们具有相同的特征。
假设任何状态的特征都为!
[](
img/a0e8241f-a4a4-4bbc-a9b8-8912eb94ef2a.png
)
,动作为北,东,西和南。
...
...
@@ -111,7 +111,7 @@
![](
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
)
的总和。 因此:
*
对于连续环境,!
[](
img/d7daa239-124e-489d-8dee-dac4ce0c67da.png
)
可以是每个时间步长的平均奖励,它是处于任何状态
`s`
的概率的总和,即!
[](
img/ff38860c-55d7-48cb-b711-96730be55ee6.png
)
乘以对该状态的不同动作的期望奖励!
[](
img/ab734c3a-740c-4d05-bee7-9fee1d71a8ec.png
)
的总和。 因此:
![](
img/d42506b9-9710-4ec3-93a3-50c62b3b2991.png
)
...
...
@@ -136,7 +136,7 @@
此处,!
[](
img/d7dd0cd7-842e-41fb-9d73-bf9ffa1d8df6.png
)
是得分函数,供将来参考。
现在,让我们考虑一个简单的一步式 MDP,即
Markov
决策过程,其中:
现在,让我们考虑一个简单的一步式 MDP,即
马尔可夫
决策过程,其中:
*
起始状态为,发生的可能性为!
[](
img/a366eee2-685d-4db4-8eb6-bb12f82762cf.png
)
*
终止仅在获得奖励!
[](
img/564de4ef-e5c9-433a-b305-f5727f768af8.png
)
的情况下执行一次
...
...
@@ -157,13 +157,13 @@
![](
img/b6666854-9607-4fcd-9536-6ad2779a7ffd.png
)
因此,将该方法推广到多步马尔可夫决策过程将导致状态奖励 Q 值函数!
[](
img/5610aab6-6f91-4840-b4dc-dbb44f9ed700.png
)
代替瞬时奖励
r
。 这称为
**策略梯度定理**
。 该定理对前面讨论的其他类型的策略目标函数有效。 因此,对于任何这样的策略目标函数和任何可区分的!
[](
img/e3d26803-9858-4ea2-bd79-3e0b45a09f99.png
)
,策略梯度如下:
因此,将该方法推广到多步马尔可夫决策过程将导致状态奖励 Q 值函数!
[](
img/5610aab6-6f91-4840-b4dc-dbb44f9ed700.png
)
代替瞬时奖励
`r`
。 这称为
**策略梯度定理**
。 该定理对前面讨论的其他类型的策略目标函数有效。 因此,对于任何这样的策略目标函数和任何可区分的!
[](
img/e3d26803-9858-4ea2-bd79-3e0b45a09f99.png
)
,策略梯度如下:
![](
img/22aa628a-e90d-49c5-ae2d-c8f5e168393c.png
)
# 时差规则
首先,
**时间差**
(
**TD**
)是两个时间步之间的值估计值之差。 这与基于结果的蒙特卡洛方法不同,后者基于前瞻性的观点直到情节结束才完成,以更新学习参数。 在时间差异学习的情况下,仅需完成一个步骤,而下一步的状态值估计将用于更新当前状态的值估计。 因此,学习参数会不断更新。 进行时差学习的不同规则是
`TD(1)`
,
`TD(0)`
和
TD(!
[](
img/d3a3ee65-880c-4e12-8cf6-1be47b234d13.png
)
)
规则。 所有方法中的基本概念是,下一步的值估计用于更新当前状态的值估计。
首先,
**时间差**
(
**TD**
)是两个时间步之间的值估计值之差。 这与基于结果的蒙特卡洛方法不同,后者基于前瞻性的观点直到情节结束才完成,以更新学习参数。 在时间差异学习的情况下,仅需完成一个步骤,而下一步的状态值估计将用于更新当前状态的值估计。 因此,学习参数会不断更新。 进行时差学习的不同规则是
`TD(1)`
,
`TD(0)`
和
`TD(λ)`
规则。 所有方法中的基本概念是,下一步的值估计用于更新当前状态的值估计。
# `TD(1)`规则
...
...
@@ -224,14 +224,14 @@ Episode T
# TD 规则
`TD(1)`
和
`TD(0)`
规则产生一个通用规则
TD(!
[](
img/d6400b9d-6c9e-4370-b506-ff40da00344d.png
)
),即 TD(λ)
,因此对于!
[](
img/4b1123cb-72a4-481e-81e9-6835853ffc68.png
)
并应满足以下条件:
`TD(1)`
和
`TD(0)`
规则产生一个通用规则
,即
`TD(λ)`
,因此对于!
[](
img/4b1123cb-72a4-481e-81e9-6835853ffc68.png
)
并应满足以下条件:
*
如果!
[](
img/d6400b9d-6c9e-4370-b506-ff40da00344d.png
)
= 0,则
TD(!
[](
img/d6400b9d-6c9e-4370-b506-ff40da00344d.png
)
)
趋于
`TD(0)`
*
如果!
[](
img/d6400b9d-6c9e-4370-b506-ff40da00344d.png
)
= 1,则
TD(!
[](
img/d6400b9d-6c9e-4370-b506-ff40da00344d.png
)
)
趋于
`TD(1)`
*
如果!
[](
img/d6400b9d-6c9e-4370-b506-ff40da00344d.png
)
= 0,则
`TD(λ)`
趋于
`TD(0)`
*
如果!
[](
img/d6400b9d-6c9e-4370-b506-ff40da00344d.png
)
= 1,则
`TD(λ)`
趋于
`TD(1)`
`TD(0)`
和
`TD(1)`
都基于时间连续预测之间的差异进行更新。
因此,
TD(!
[](
img/d6400b9d-6c9e-4370-b506-ff40da00344d.png
)
)
的伪代码如下:
因此,
`TD(λ)`
的伪代码如下:
```
py
Episode
T
...
...
@@ -275,12 +275,12 @@ Output: final
![](
img/bdee56e7-7167-4d77-a478-710505461008.png
)
这产生了著名的
**演员评论家算法**
。 顾名思义,
actor-critic
算法出于以下目的维护两个网络:
这产生了著名的
**演员评论家算法**
。 顾名思义,
演员评论家
算法出于以下目的维护两个网络:
*
一个网络充当评论者,它更新状态动作函数逼近器的权重
`w`
参数向量
*
其他网络充当
Actor
,它根据批评者给出的方向更新策略参数向量!
[](
img/49aece0d-9f5a-4d27-8ccc-13b01329f2de.png
)
*
其他网络充当
演员
,它根据批评者给出的方向更新策略参数向量!
[](
img/49aece0d-9f5a-4d27-8ccc-13b01329f2de.png
)
下图代表了
actor-critic
算法:
下图代表了
演员评论家
算法:
![](
img/ca78b5e5-1459-4f34-ad61-de744f663054.png
)
...
...
@@ -290,7 +290,7 @@ Output: final
![](
img/d9896c48-a57d-45e1-974e-3d9bed7c4af3.png
)
因此,为了估计状态作用值函数,评论者网络使用
`TD(0)`
(先前讨论)来更新权重参数
`w`
,并更新策略参数向量!
[](
img/86eb3024-7437-442e-b21a-1b2c1ccffbfc.png
)
actor 网络使用策略梯度。 行动者批评
算法的一种简单方法如下所示:
因此,为了估计状态作用值函数,评论者网络使用
`TD(0)`
(先前讨论)来更新权重参数
`w`
,并更新策略参数向量!
[](
img/86eb3024-7437-442e-b21a-1b2c1ccffbfc.png
)
演员网络使用策略梯度。 演员评论家
算法的一种简单方法如下所示:
```
py
Initialize
s
,
...
...
@@ -346,7 +346,7 @@ for iteration = 1,2,......N do
end
for
```
# 使用策略梯度的
Agent
学习 Pong
# 使用策略梯度的
智能体
学习 Pong
在本节中,我们将创建一个策略网络,该策略网络将使用来自 pong 环境的原始像素(来自 OpenAI 体育馆的
**pong-v0**
)作为输入。 策略网络是一个单独的隐藏层神经网络,它全连接到输入层上 pong 的原始像素,还全连接到包含单个节点的输出层,该单个节点返回了桨上升的可能性。 我要感谢 Andrej Karpathy 提出了一种使代理使用策略梯度进行学习的解决方案。 我们将尝试实现类似的方法。
...
...
@@ -402,7 +402,7 @@ import cPickle as pickle #to save/load model
import
gym
```
*
**超参数初始化**
:由于我们正在使用
`RMSProp`
优化器进行梯度下降,因此超参数(例如隐藏层节点的数量,批量大小,学习率,折现系数
gamma
,衰减率)。 我们将使用以下代码进行初始化:
*
**超参数初始化**
:由于我们正在使用
`RMSProp`
优化器进行梯度下降,因此超参数(例如隐藏层节点的数量,批量大小,学习率,折现系数
`gamma`
,衰减率)。 我们将使用以下代码进行初始化:
```
py
#hyperparameters
...
...
@@ -457,7 +457,7 @@ def preprocess(image): #where image is the single frame of the game as the input
return
image
.
astype
(
'float'
).
ravel
()
#flattening to 1D
```
*
**折扣奖励**
:
`discount_rewards(r)`
函数将与不同时间步长对应的奖励列表
r
作为参数,并返回与不同时间步长对应的折扣奖励列表,如以下代码所示 :
*
**折扣奖励**
:
`discount_rewards(r)`
函数将与不同时间步长对应的奖励列表
`r`
作为参数,并返回与不同时间步长对应的折扣奖励列表,如以下代码所示 :
```
py
def
discount_rewards
(
r
):
...
...
new/rl-tf/15.md
浏览文件 @
b676492d
...
...
@@ -27,7 +27,7 @@ TRPO 由 Schulman 等(2017)发布在名为[《信任区域策略优化》](h
![](
img/c5f5537b-51ac-414c-9dd1-d8461a257262.png
)
可以将先前的更新规则合并到策略网络中,在该策略网络中使用随机梯度上升来更新参数。 这可以通过确定性的行为者批判方法来实现,其中批评者估计动作值函数,而行为者从批评者获得其梯度以更新其参数。 如 Silver 等人在
[
《确定性策略梯度算法》
](
http://proceedings.mlr.press/v32/silver14.pdf
)
中所述。 在实验之后,他们能够成功得出结论,确定性的策略梯度比随机的梯度更有效率。 此外,确定性
行动者批评
者的表现优于随机行动者。 有关此主题的详细说明超出了本书的范围。 因此,请转到前面提到的研究出版物链接。
可以将先前的更新规则合并到策略网络中,在该策略网络中使用随机梯度上升来更新参数。 这可以通过确定性的行为者批判方法来实现,其中批评者估计动作值函数,而行为者从批评者获得其梯度以更新其参数。 如 Silver 等人在
[
《确定性策略梯度算法》
](
http://proceedings.mlr.press/v32/silver14.pdf
)
中所述。 在实验之后,他们能够成功得出结论,确定性的策略梯度比随机的梯度更有效率。 此外,确定性
演员评论家
者的表现优于随机行动者。 有关此主题的详细说明超出了本书的范围。 因此,请转到前面提到的研究出版物链接。
# NLP 顺序模型中的评分机制
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录