Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
coolalex776
apachecn-dl-zh
提交
15b093d5
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,发现更多精彩内容 >>
提交
15b093d5
编写于
1月 16, 2021
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021-01-16 17:53:05
上级
ae8e9769
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
8 deletion
+8
-8
new/pt-ai-fund/7.md
new/pt-ai-fund/7.md
+7
-7
new/pt-ai-fund/8.md
new/pt-ai-fund/8.md
+1
-1
未找到文件。
new/pt-ai-fund/7.md
浏览文件 @
15b093d5
...
...
@@ -18,9 +18,9 @@ RL 是**人工智能**(**AI**)的领域,与我们在前面各章中介绍
# 深入了解 RL
**
代理**
是任何 RL 问题的核心。 它是 RL 算法的一部分,它处理输入信息以执行操作。 它探索和利用重复试验中的知识,以学习如何最大化奖励。 代理必须处理的场景称为
**环境**
,而
**动作**
是代理可以在给定环境中进行的动作。 采取行动后从环境中获得的回报称为
**奖励**
,代理根据当前状态决定使用下一行动的行动过程称为
**策略**
。 相对于短期奖励,带有折扣的预期长期回报称为
**值**
。
`q`
-
**
值**
与该值相似,但具有附加的当前动作参数。
**
智能体**
是任何 RL 问题的核心。 它是 RL 算法的一部分,它处理输入信息以执行操作。 它探索和利用重复试验中的知识,以学习如何最大化奖励。 代理必须处理的场景称为
**环境**
,而
**动作**
是代理可以在给定环境中进行的动作。 采取行动后从环境中获得的回报称为
**奖励**
,代理根据当前状态决定使用下一行动的行动过程称为
**策略**
。 相对于短期奖励,带有折扣的预期长期回报称为
**值**
。
**Q
值**
与该值相似,但具有附加的当前动作参数。
现在,我们已经了解了 RL 的上下文,让我们理解为什么我们应该使用
**
较深的
RL**
(
**DRL**
)而不是 RL。 DRL 将 RL 与深度学习相结合,后者使用 NN 解决 RL 问题。
现在,我们已经了解了 RL 的上下文,让我们理解为什么我们应该使用
**
深度
RL**
(
**DRL**
)而不是 RL。 DRL 将 RL 与深度学习相结合,后者使用 NN 解决 RL 问题。
深度学习算法可以学习抽象出环境状态的细节,然后学习状态的重要特征。 由于深度学习算法仅具有有限数量的参数,因此我们可以使用它将可能的状态压缩为更少的状态,然后使用该新表示形式来选择一个动作。
...
...
@@ -195,7 +195,7 @@ def cartpole_model(observation_space, action_space):
# 做好准备
在完成本食谱之前,您应该完成本章的
*OpenAI 健身房介绍– Cartpole*
食谱,以便设置
`gym`
程序包。
在完成本食谱之前,您应该完成本章的
“OpenAI Gym 介绍 – Cartpole”
食谱,以便设置
`gym`
程序包。
# 怎么做...
...
...
@@ -334,7 +334,7 @@ if not self.explore_limit:
# 怎么做...
在本食谱中,我们将继续使用
*DQN 类*
食谱。 按着这些次序:
在本食谱中,我们将继续使用
“DQN 类”
食谱。 按着这些次序:
1.
首先,我们需要导入
`gym`
:
...
...
@@ -660,7 +660,7 @@ return total_reward
# 这个怎么运作...
在本食谱中,我们完成了深度遗传算法的一些关键功能。 我们研究了三个不同的功能-第一个功能
`eval_agent()`
与我们在
*Training DQN*
配方中看到的功能非常相似,其中我们使用了代理,该代理是一种神经网络模型,可以预测 并执行直到
`MAX_STEP`
(对于
`cartpole-v1`
为 500)或终端为
`True`
并返回分数的动作。
在本食谱中,我们完成了深度遗传算法的一些关键功能。 我们研究了三个不同的功能-第一个功能
`eval_agent()`
与我们在
“训练 DQN”
配方中看到的功能非常相似,其中我们使用了代理,该代理是一种神经网络模型,可以预测 并执行直到
`MAX_STEP`
(对于
`cartpole-v1`
为 500)或终端为
`True`
并返回分数的动作。
然后,我们使用第二个函数
`agent_score()`
返回指定数量
`runs`
之上的平均分数,并返回该平均分数,以确保模型的随机性能不佳。 最后一个函数
`all_agent_score()`
仅循环遍历一代中的所有代理,并获得一代中所有代理的平均分数。
...
...
@@ -885,11 +885,11 @@ Rewards: 350.0
# 这个怎么运作...
在此配方中,我们改进了深度遗传算法。 根据论文
*深度神经进化:我们将超参数设置为*
,将
`MUTATION_POWER`
设置为
`0.02`
。遗传算法是用于训练深度神经网络以进行强化学习
*的一种竞争选择。 我们不需要使用 PyTorch 来进行梯度计算,因为我们不需要依靠梯度下降来改善模型和创建环境。*
在此配方中,我们改进了深度遗传算法。 根据论文
《深度神经进化:遗传算法是用于训练深度神经网络以进行强化学习的一种竞争选择》,我们将超参数
`MUTATION_POWER`
设置为
`0.02`
。 我们不需要使用 PyTorch 来进行梯度计算,因为我们不需要依靠梯度下降来改善模型和创建环境。
然后,我们创建了一些代理,以开始我们的进化,并通过遍历
`generations`
将它们运行了预定的代数,在其中我们获得了每一代所有代理的奖励。 然后,我们选择了得分最高的父母,并通过
`child_agent`
函数传递这些父母指数以获得下一代。 之后,我们打印出前 5 个得分的平均值。
最后,我们使用了与
*Training DQN*
配方中相同的
`play_agent`
函数,并进行了较小的修改,以补偿模型预测值的差异。 在这里,我们使用精英模型来显示卡特彼勒的性能,每一代之后。 位于代理商列表的末尾。 这是使用
`play_agent`
功能完成的。
最后,我们使用了与
“训练 DQN”
配方中相同的
`play_agent`
函数,并进行了较小的修改,以补偿模型预测值的差异。 在这里,我们使用精英模型来显示卡特彼勒的性能,每一代之后。 位于代理商列表的末尾。 这是使用
`play_agent`
功能完成的。
# 还有更多...
...
...
new/pt-ai-fund/8.md
浏览文件 @
15b093d5
...
...
@@ -571,7 +571,7 @@ CNN(
# 这个怎么运作...
在此食谱中,我们将正常的 PyTorch 模型导出为 ONNX 格式,并使用 ONNX 运行时运行
`onnx`
模型。 为此,我们采用了权重模型。 在这里,我们使用了第 3 章
和
*卷积神经网络
的 CIFAR-10 模型,用于计算机视觉*
。 我们从训练中使用了模型的权重,并将模型设置为评估模式,以进行快速,轻便的计算。
在此食谱中,我们将正常的 PyTorch 模型导出为 ONNX 格式,并使用 ONNX 运行时运行
`onnx`
模型。 为此,我们采用了权重模型。 在这里,我们使用了第 3 章
“卷积神经网络”
的 CIFAR-10 模型,用于计算机视觉
*
。 我们从训练中使用了模型的权重,并将模型设置为评估模式,以进行快速,轻便的计算。
然后,我们使用了一个随机变量,其形状与输入张量的形状相同,在本例中为三通道 32 x 32 像素图像。 我们将此随机输入传递到模型中并获得输出。 然后,我们使用输出将其与模型的 ONNX 版本中的模型进行比较。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录