Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
coolalex776
apachecn-dl-zh
提交
3817f649
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,发现更多精彩内容 >>
提交
3817f649
编写于
1月 22, 2021
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021-01-22 16:56:16
上级
73330217
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
23 deletion
+23
-23
new/rl-tf/08.md
new/rl-tf/08.md
+4
-4
new/rl-tf/10.md
new/rl-tf/10.md
+19
-19
未找到文件。
new/rl-tf/08.md
浏览文件 @
3817f649
...
...
@@ -138,7 +138,7 @@ AlphaGo 的神经网络训练流水线和架构,摘录自 Google DeepMind 的
*
`a`
:快速部署策略
`ρ[π]`
和监督学习策略网络
`ρ[σ]`
受过专家训练 播放包含 3000 万个董事会职位的数据集,以像人类专家一样学习预测动作。 通过学习的监督学习策略网络的权重初始化强化学习策略网络,并通过使用策略梯度来最大化策略质量,从而改进其策略
`ρ[ρ]`
策略网络的早期版本。 通过使用此更新的策略网络进行自我播放,将生成一个新的数据集。 数据集包含棋盘位置的图像及其相应的最终结果,即获胜或失败。 最后,使用该自玩数据集通过回归训练值网络
`ν[θ]`
,以输出获胜的概率。
*
`b`
:该流程的架构流程,其中策略网络将棋盘位置(游戏状态)的图像表示作为输入,并通过参数
`σ`
的卷积层传播(如果它 是一个有监督的学习策略网络)或
`ρ`
(如果它是强化学习策略网络),并针对所有可能的动作
`a`
返回概率分布
!
[](
img/a20e03f6-d7b8-4a24-9ed4-c0e49948b873.png
)
或!
[](
img/b319e230-6055-4a7d-97eb-3b94f0b8886e.png
)
输出。 值网络还使用参数
`θ`
的许多卷积层,返回标量值!
[](
img/e967cc42-4300-4276-8f1b-e362c4705662.png
)
,该标量值表示在给定位置
`s'`
中获胜或失败的结果(最终结果)的概率:
*
`b`
:该流程的架构流程,其中策略网络将棋盘位置(游戏状态)的图像表示作为输入,并通过参数
`σ`
的卷积层传播(如果它 是一个有监督的学习策略网络)或
`ρ`
(如果它是强化学习策略网络),并针对所有可能的动作
`a`
返回概率分布
`p[σ](a | s)`
或
`p[ρ](a | s)`
输出。 值网络还使用参数
`θ`
的许多卷积层,返回标量值
`v[θ](s')`
,该标量值表示在给定位置
`s'`
中获胜或失败的结果(最终结果)的概率:
![](
img/8d06defa-4382-48e4-a4c2-2a831bdf246f.png
)
...
...
@@ -147,10 +147,10 @@ Silver 等人
让我们讨论前面详细显示的在 AlphaGo 中使用的
**蒙特卡罗树搜索**
(
**MCTS**
):
*
`a`
:在每次仿真过程中,遍历树时选择了该边,该边具有作用值
`Q`
和值
`u(P)`
之和的最大值。
`u(P)`
是该边存储的先验概率
`P`
的函数。
*
`b`
:扩展叶节点,即在策略网络
!
[](
img/401ce6a8-cd7f-48ee-8df4-f55cb8e8747b.png
)
之后处理新节点,并将每个操作的输出概率存储为先验概率
`P`
。
*
`b`
:扩展叶节点,即在策略网络
`p[σ]`
之后处理新节点,并将每个操作的输出概率存储为先验概率
`P`
。
*
`c`
:在仿真结束时,以两种方式对叶节点进行评估:
*
使用值网络
!
[](
img/e9c40645-7e2f-403d-b976-413405948161.png
)
*
使用学习到的快速推广策略
!
[](
img/a453b581-4415-4d30-81e6-96e93018c288.png
)
进行推广,直到游戏结束,并使用函数
`r`
计算获胜者
*
使用值网络
`v[θ]`
*
使用学习到的快速推广策略
`p[π]`
进行推广,直到游戏结束,并使用函数
`r`
计算获胜者
*
`d`
:更新动作值
`Q`
,以跟踪该动作下方子树中所有评估值
`r(·)`
和
`v[θ](·)`
的平均值。
如前所述,对一个策略网络进行了 3000 万个游戏职位的训练。 在不使用树搜索的情况下,AlphaGo 赢得了与 Pachi(最强的围棋 AI 程序)对战的 85% 的比赛,其中 Pachi 依靠基于蒙特卡洛搜索树的 100,000 次模拟。 值网络接受了 3000 万个游戏位置的训练,并学习了预测获胜概率的模型。 策略网络输出充当树搜索的指南。 对于给定的游戏状态,策略网络为每个可能的移动提供了概率。 这有助于减少树搜索期间的候选动作。
...
...
new/rl-tf/10.md
浏览文件 @
3817f649
...
...
@@ -84,28 +84,28 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
*
最低价
*
收盘价
对于连续市场(例如我们的测试用例),资产在
`t`
期间的开盘价是其在前一时期
`t-1`
的收盘价。 投资组合由
`m`
个资产组成。 在时间段
`t`
中,所有
`m`
资产的收盘价都创建了价格向量
!
[](
img/bbb31a02-f108-4331-8fa0-769b24ae6ed6.png
)
。 因此,!
[](
img/ceb658b2-d2d3-40d8-862b-90030863c9e9.png
)
的!
[](
img/49f29652-be4c-4277-99bf-aac6fa0908c5.png
)
元素即!
[](
img/cebf0414-d4f0-4ccb-a1e2-9ceaf7c9e371.png
)
是该!
[](
img/819e2605-a4e4-4983-a172-a572657cba70.png
)
时间段内!
[](
img/fb0f46f7-d5f7-4646-8688-5eaa57f7fac4.png
)
资产的收盘价。
对于连续市场(例如我们的测试用例),资产在
`t`
期间的开盘价是其在前一时期
`t-1`
的收盘价。 投资组合由
`m`
个资产组成。 在时间段
`t`
中,所有
`m`
资产的收盘价都创建了价格向量
`v[t]`
。 因此,
`v[t]`
的第
`i`
个元素即
`v[i, t]`
是该
`t`
时间段内第
`i`
个
资产的收盘价。
同样,我们有向量
!
[](
img/a2b0ca94-b2a2-41ba-9143-a04f126d5ac2.png
)
和!
[](
img/a4c89b4c-2ee3-4552-bf2a-406695979538.png
)
,其中:
同样,我们有向量
`v[t]^(hi)`
和
`v[t]^(lo)`
,其中:
*
!
[](
img/e15e5efc-ac35-4f33-ae54-852cbd21ec5f.png
)
:包含时间段
`t`
中所有
`m`
资产的最高价格的向量
*
!
[](
img/dad09205-78cb-49e8-bb91-ce4661d53f24.png
)
:包含时间段
`t`
中所有
`m`
资产的最低价格的向量
投资组合中的第一个资产是特殊资产,从现在开始将被称为现金。 之所以认为与众不同,是因为所有资产的价格均以现金面额报价。 由于第一个资产定义了基础货币,因此
!
[](
img/24839153-1253-4920-9b88-f92515edbadb.png
)
,!
[](
img/6a0f6f77-c677-496c-97db-a9f5020387e5.png
)
和!
[](
img/836fc004-8c70-4bc8-a213-a939040406a5.png
)
的第一个元素将始终为 1,即:
投资组合中的第一个资产是特殊资产,从现在开始将被称为现金。 之所以认为与众不同,是因为所有资产的价格均以现金面额报价。 由于第一个资产定义了基础货币,因此
`v[t]`
,
`v[t]^(hi)`
和
`v[t]^(lo)`
的第一个元素将始终为 1,即:
![](
img/76ab6d97-24a6-497b-ad74-52ab45c8180b.png
)
在这里,比特币被认为是现金。 因此,所有资产定价都将按照比特币进行。 正如我们已经讨论过的,这是一个连续的市场,
`t + 1`
期的开盘价将等于
`t`
期的收盘价。 周期
`t`
的
**价格相对向量**
表示为
!
[](
img/34451324-c76b-499f-a4b1-45277a0573d7.png
)
,它是!
[](
img/a4df4314-5bed-4832-a8d8-d607e99bdca8.png
)
和!
[](
img/84106486-87e4-45b3-9b15-fd787ea0a4df.png
)
的按元素划分,如下所示:
在这里,比特币被认为是现金。 因此,所有资产定价都将按照比特币进行。 正如我们已经讨论过的,这是一个连续的市场,
`t + 1`
期的开盘价将等于
`t`
期的收盘价。 周期
`t`
的
**价格相对向量**
表示为
`y[t]`
,它是
`v[t]`
和
`v[t - 1]`
的按元素划分,如下所示:
![](
img/6f77290e-0f5f-4d51-a141-b0c16e69ce76.png
)
这是时间段
`t`
中资产的收盘价和时间段
`t-1`
*中资产收盘价的按元素划分,换句话说,按元素划分 时间段`t`中资产的收盘价和开盘价的百分比。 因此,
![](img/29ccb3a9-9f33-4f15-acfa-df1094d76c6e.png)
的元素是时间段`t`中单个资产的收盘价和开盘价之比。 **价格相对向量*
*
用于计算一个时期内投资组合总价值的变化。
这是时间段
`t`
中资产的收盘价和时间段
`t-1`
*中资产收盘价的按元素划分,换句话说,按元素划分 时间段`t`中资产的收盘价和开盘价的百分比。 因此,
`y[t]`
的元素是时间段`t`中单个资产的收盘价和开盘价之比。 **价格相对向量*
*
用于计算一个时期内投资组合总价值的变化。
令时间段
`t`
开头的投资组合值为
!
[](
img/ee415008-efa9-4c28-89f7-e407997a4a3d.png
)
。 因此,忽略交易成本:
令时间段
`t`
开头的投资组合值为
`p[t]`
。 因此,忽略交易成本:
![](
img/d9dbe264-2382-4e91-98f6-280ea978c83e.png
)
在这里,
!
[](
img/effca474-2a88-435b-8c03-3ce967e85635.png
)
是
**投资组合权重向量**
,也称为
**投资组合向量**
在时间段
`t`
的开始时,其!
[](
img/077fd386-c950-484b-9423-c424fba9976b.png
)
元素是: !
[](
img/660a699f-b12b-4274-93ef-a0807db02cb4.png
)
是资产
`i`
在当前投资组合中的比例。 因为!
[](
img/d04bd1aa-5a8b-4268-a305-d6c93be647f0.png
)
是权重(比例)的向量,所以从定义上讲!
[](
img/8962956c-d7cb-4032-be60-d400459264e4.png
)
的元素总和将总和为 1,即!
[](
img/46719739-28f1-4015-8fb2-664eaaa02d3a.png
)
。
在这里,
`w[t-1]`
是
**投资组合权重向量**
,也称为
**投资组合向量**
在时间段
`t`
的开始时,其第
`i`
元素是:
`w[i, t-1]`
是资产
`i`
在当前投资组合中的比例。 因为
`w[t]`
是权重(比例)的向量,所以从定义上讲
`w[t]`
的元素总和将总和为 1,即
`Σ[i] w[t, i] = 1, ∀t`
。
时间段
`t`
的
**回报率**
由下式给出:
...
...
@@ -115,7 +115,7 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
![](
img/782cc33c-1733-4019-8983-4aa994c0cdee.png
)
初始投资组合权重向量
!
[](
img/f5b3efd8-fee3-470f-865a-4b3e7cee169c.png
)
表示进入市场之前,该金额是以交易货币(称为
**现金**
,此处现金为比特币)表示,因为初始投资金额为 以交易货币计。 由于金额是以交易货币为单位的,因此投资组合向量的第一个资产是指交易货币资产,因此:
初始投资组合权重向量
`w[0]`
表示进入市场之前,该金额是以交易货币(称为
**现金**
,此处现金为比特币)表示,因为初始投资金额为 以交易货币计。 由于金额是以交易货币为单位的,因此投资组合向量的第一个资产是指交易货币资产,因此:
![](
img/c206bb58-ca68-4265-b11b-46ed01e17d1b.png
)
...
...
@@ -123,7 +123,7 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
![](
img/7cdf6685-9162-4e04-9fe7-43eb26e2b6c4.png
)
在此,
!
[](
img/0157c331-8d73-404a-8260-d81bd0f22d93.png
)
是初始投资金额。 因此,投资组合经理的目标是在给定的时间范围内最大化!
[](
img/c2652a2d-73c7-4d45-8008-0745aaa4751a.png
)
。 实验中有两个假设:
在此,
`p[0]`
是初始投资金额。 因此,投资组合经理的目标是在给定的时间范围内最大化
`p[f]`
。 实验中有两个假设:
*
**零滞后**
:每笔定单在下单时均以最后价格执行,没有滞后,立即进行交易
...
...
@@ -133,7 +133,7 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
交易实验在名为 Poloniex 的加密货币交易所中进行了测试。 为了测试当前方法,预先选择了
`m = 11`
具有最高交易量的非现金资产作为投资组合。 由于第一基础资产是现金,即比特币,因此投资组合的大小为
`m + 1 = 12`
。 如果我们在交易量较大的市场(例如外汇市场)中进行了测试,则
`m`
将与市场中资产的总数一样大。
资产的历史数据被馈送到神经网络,该神经网络输出投资组合权重向量。 在周期
`t`
结束时输入到神经网络的是张量
!
[](
img/f28dfd41-c91d-45ab-8d0e-e035b983f056.png
)
,其阶数为 3(
`f`
,
`n`
,
`m`
),其中:
资产的历史数据被馈送到神经网络,该神经网络输出投资组合权重向量。 在周期
`t`
结束时输入到神经网络的是张量
`X[t]`
,其阶数为 3(
`f`
,
`n`
,
`m`
),其中:
*
`m`
是预选的非现金资产的数量
*
`n`
是
`t`
之前的输入周期数(此处
`n = 50`
)
...
...
@@ -149,14 +149,14 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
这里:
*
!
[](
img/62360d75-d221-431f-a2b1-ab779d86c6c7.png
)
,!
[](
img/183f53f3-f0c7-4b7e-a5fe-8d3f42b7361f.png
)
和!
[](
img/0a96f887-f5c5-444f-adef-65cff402e4b8.png
)
是归一化价格矩阵
*
!
[](
img/b77e56aa-5315-4fbd-95d7-9b9a0cac8538.png
)
和!
[](
img/a08bed2b-9a39-41fb-8294-81a187a725ba.png
)
是逐元素除法运算符
*
`V[t]`
,
`V[t]^(hi)`
和
`V[t]^(lo)`
是归一化价格矩阵
*
`1 = [1, 1, ..., 1]^T`
和
`Φ`
是逐元素除法运算符
因此,
!
[](
img/a7cbc3bc-35b6-4fbd-9249-faa1d29855a6.png
)
是三个归一化价格矩阵的堆栈:
因此,
`X[t]`
是三个归一化价格矩阵的堆栈:
![](
img/d4c0367b-bfe2-4e38-8ee5-421da65351e6.png
)
投资组合管理代理使用输入张量
!
[](
img/c1e0ef2c-cf3a-4717-83be-959adfb42759.png
)
和上一个时间段的(即
`t-1`
),投资组合权重向量!
[](
img/6846580a-7d21-4b71-91f9-91d8f633b0fa.png
)
输出时间段
`t`
的投资组合权重向量!
[](
img/dd524d90-bbb5-4924-a3de-aaf546c51181.png
)
。 根据策略!
[](
img/457ca884-7518-44ef-9c9a-56020d4de853.png
)
。
投资组合管理代理使用输入张量
`X[t]`
和上一个时间段的(即
`t-1`
),投资组合权重向量
`w[t-1]`
输出时间段
`t`
的投资组合权重向量
`w[t]`
。 根据策略
`π`
。
因此:
...
...
@@ -166,7 +166,7 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
![](
img/5823adac-98b7-4222-b1ff-5a652a4def2a.png
)
因此,通过对前面的陈述进行强化学习的框架化,我们可以说先前的权重向量
!
[](
img/f502967d-dd9c-4c96-8626-b08f6c522abd.png
)
是在时间段
`t-1`
的动作,收到了立即奖励!
[](
img/bd652412-b910-4449-b920-73cda590a423.png
)
。
因此,通过对前面的陈述进行强化学习的框架化,我们可以说先前的权重向量
`w[t-1]`
是在时间段
`t-1`
的动作,收到了立即奖励
`r[t]`
。
# 强化学习
...
...
@@ -175,7 +175,7 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
*
**周期性特征提取**
:将时间离散化为多个时段,然后提取每个时段的开盘价,最高价,最低价和收盘价
*
**数据切片**
:仅考虑最近时间段的数据,并避免使用较旧的历史数据,以便进行环境的当前状态表示
代理根据时段输出的投资组合权重向量
!
[](
img/ae0ed081-d2b6-4980-bda0-ab8224c0ed3f.png
)
,在时段
`t`
结束时,即在时段
`t + 1`
的开始进行了一些买卖交易。 神经网络。 因此,主体在时间
`t`
的动作仅由投资组合权重向量!
[](
img/ae0ed081-d2b6-4980-bda0-ab8224c0ed3f.png
)
表示。 因此,在当前框架中,!
[](
img/ca7f8384-0365-47e5-8367-e72df668cd15.png
)
被视为环境的一部分,并作为输入输入到代理中,以输出下一个时间段即!
[](
img/ae0ed081-d2b6-4980-bda0-ab8224c0ed3f.png
)
的代理的操作策略。 因此,在时期
`t`
,即!
[](
img/0d59408e-76cd-47f8-a007-793daf7e29dd.png
)
的状态由价格张量!
[](
img/f6107c6c-1964-4070-adb7-ba3ab87b87f0.png
)
和前一时期!
[](
img/ca7f8384-0365-47e5-8367-e72df668cd15.png
)
的投资组合权重向量表示:
代理根据时段输出的投资组合权重向量
`w[t]`
,在时段
`t`
结束时,即在时段
`t + 1`
的开始进行了一些买卖交易。 神经网络。 因此,主体在时间
`t`
的动作仅由投资组合权重向量
`w[t]`
表示。 因此,在当前框架中,
`w[t-1]`
被视为环境的一部分,并作为输入输入到代理中,以输出下一个时间段即
`w[t]`
的代理的操作策略。 因此,在时期
`t`
,即
`s[t]`
的状态由价格张量
`X[t]`
和前一时期
`w[t-1]`
的投资组合权重向量表示:
![](
img/64a779b3-9055-47fd-831e-92c8c108a54d.png
)
...
...
@@ -183,11 +183,11 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
![](
img/d5f51e96-dd52-43ae-b0f9-9e032433e0d0.png
)
如前所述,投资组合管理代理的目标是使最终投资组合价值最大化,即
!
[](
img/d2a37417-e144-4f24-9323-bd333e529280.png
)
,其中:
如前所述,投资组合管理代理的目标是使最终投资组合价值最大化,即
`p[f]`
,其中:
![](
img/bba610ef-98f6-4e3c-9da9-080f917f3770.png
)
因此,在
!
[](
img/cfb6ec00-fbcc-4c60-b851-0e18c1bc6ad2.png
)
时间段内的总收益为!
[](
img/2c7ba9e0-53a0-4fae-961a-abf98f5c5e31.png
)
。 因此,总回报对数的平均值为:
因此,在
`t[f]`
时间段内的总收益为
`p[f] / p[0]`
。 因此,总回报对数的平均值为:
![](
img/c0709ff1-5108-418c-9a34-9e6a023f4e4c.png
)
...
...
@@ -197,7 +197,7 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
创建了三个具有深度神经网络的三个不同变体的策略网络,分别是 CNN,RNN 和 LSTM。 前一个时间段的输出是当前时间段内网络的输入。 因此,使用策略梯度和深层 Q 网络中的经验回放的想法,创建了一个 PVM,用于存储网络输出,也就是说,它将包含每个时间步骤的投资组合权重向量。
PVM 是按时间步长顺序(即时间顺序)收集投资组合向量的集合。 在训练周期的每个时间步
`t`
,策略网络从
`t-1`
的存储位置取最后时间段的投资组合权重向量
!
[](
img/ca7f8384-0365-47e5-8367-e72df668cd15.png
)
,并进行覆盖
`t`
处的内存与输出投资组合权重向量!
[](
img/ae0ed081-d2b6-4980-bda0-ab8224c0ed3f.png
)
的关系。 由于策略网络参数的收敛,PVM 中的值随着训练时期的增加而收敛。
PVM 是按时间步长顺序(即时间顺序)收集投资组合向量的集合。 在训练周期的每个时间步
`t`
,策略网络从
`t-1`
的存储位置取最后时间段的投资组合权重向量
`w[t-1]`
,并进行覆盖
`t`
处的内存与输出投资组合权重向量
`w[t]`
的关系。 由于策略网络参数的收敛,PVM 中的值随着训练时期的增加而收敛。
单个内存堆栈(例如 PVM)还有助于使用小批量提高训练过程的并行性,从而提高训练过程的效率。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录