基于深度神经网络的股票多因子预测模型

RNN 不同于传统神经网络的感知机的最大特征就是跟时间挂上钩,即包含了一 个循环的网络,就是下一时间的结果不仅受下一时间的输入的影响,也受上一 时间输出的影响,进一步地说就是信息具有持久的影响力。放在实际中也很容 易理解,人们在看到新的信息的时候产生的看法或者判断,不仅仅是对当前信 息的反应,先前的经验、思想的也是参与进去这次信息的推断的。人类的大脑 不是一张白纸,是包含许多先验信息的,即思想的存在性、持久性是显然的。

举个例子,你要对某电影中各个时点发生的事件类型进行分类:温馨、烂漫、 暴力等等,如果利用传统神经网络是很难做到这一点的,但是 RNN因为具备一 定的记忆功能,可以较好处理这个问题。 

从图中我们也可以看出,RNN 是具备链式结构特征的。递归神经网络因为该循 环结构而具有一定的记忆功能,可以被用来解决很多问题,例如:语音识别、 语言模型、机器翻译等。但是它并不能很好地处理长时依赖问题,这一问题在 (Yoshua Bengio,1994 )这篇论文中阐释得很明白。文章指出,最直接的的 原因是原始 RNN 模型也是采用 BP 算法进行权重和阈值的调整优化,梯度消失 问题依然得不到解决,虽然由于记忆功能的存在使得该问题比传统神经网络有 所缓解。但是类似于人类的记忆,人总是会忘事的,即在后面的时间步难以走 不回过去了,过去的时间步传递到现在也效果甚微了。所以这使得难以习得远 距离的影响。 

长期依赖问题

RNN 的一个核心思想是,既然网络结构是时间列表特征的,那么可以将以前的信息用到当前的任务中来,例如,在语义推断中,通过前面的话来猜测接下来 的话。如果 RNN 真的能够这样做的话,那么它们将会极其有用。但是事实真是 如此吗?我们来看下面的例子。

考虑一个语言模型,通过前面的单词来预测接下来的单词。如果我们想预测句 子“the birds are flying in the sky”中的最后一个单词,我们不需要考虑上下文 信息,就可以得到答案,很明显下一个单词应该是 sky。在这种情况下,当前 要预测位臵(sky)与相关信息(birds 和 fly)所在位臵之间的距离相对较小,RNN可以被训练来使用这样的信息。 

 

但是如果当前位臵和相关信息位臵距离很远时候,RNN 就会遇到困难了。比如 “I grew up in China, when I was ten years old,...,I speak Chinese ”,如果要 预测最后一个单词 Chinese,那么我们得搜索较长距离,才能获取到有用的信 息 China。但令人失望的是,当需预测信息和相关信息距离较远时,原始 RNN结构的传输的效率并不让人满意。虽然有学者证明了,我们可以通过精心设计 参数来达到预测较远处信息的目的,但是这样无疑是成本很高的,实现起来也很困难,也就失去了实践意义。

从上面分析可以看出,原始 RNN 中存在的长期依赖问题本质上还是梯度消失问 题。 

LSTM

LSTM (long-short term memory),长短期记忆网络,就是为了解决上面的长 期依赖问题而生的。LSTM 是一种经过精心巧妙设计的 RNN 网络,尽管 LSTM和原始 RNN 总的来看都会三大层,即输入层、隐含层、输出层。但是 LSTM和原始 RNN 在隐含层设计上有较大的差异,主要是 LSTM 是在隐含层具备特 殊的 cell 结构。我们用下面两个对比图来进行较好的说明。 

LSTM 的隐含层设计中图标解释 

每一条黑线传输着一整个向量,从一个节点的输出到其他节点的输入。粉色的圈代表 pointwise 的操作,诸如向量的和,积等运算,而黄色的矩阵就是学习到的神经网络层。合在一起的线表示向量的连接,分开的线表示内容被复制, 然后分发到不同的位臵。

LSTM 结构设计与思想

LSTM,长短期记忆网络,从上面的图中也可以看出,LSTM 是将一个简单型的 激活改成几部分的线性组合的储存单元 cell 去激活。相当于每次都可以控制下 一步的输出信息,如是否要包含前面的信息,包含多少的问题等。类似于进行下一步操作前,根据情况提醒你需要注意的信息。好记性不如烂笔头,就是这 个 道理。

每个存储单元由三大构件组成,输入门,输出门和跨越时间干扰的传入自身的 内部状态。 

输入门(input gate):控制当前输入和前一步输出 ,他们能进入新的 cell单元的信息量。

忘记门(forget gate):为了更有效传输,需要对信息进行过滤,决定哪些信息可以遗忘。

输出门:cell 的新状态下信息更新。

LSTM 详细实现步骤图解

为了更好地说明,我们下面在进行每一步图解时候,都结合语义识别功能进行 说 明,这样有更直观的认识。

第一步,先由忘记门决定丢弃哪些信息。 

即结合当前输入和前一步输出,经激活函数,得到一个概率变量,再与原 cell结构 做运算得到遗忘后的信息。比如 f=0 时,表示 的所有信息都会被遗 忘,f=1 时表示 的信息都会被保存。

让我们回头看看语义预测的例子中来基于已经看到的词去预测下一个词。在这个问题中,细胞状态可能包含当前主语的性别,因此正确的代词可以被选择出 来。当我们看到新的主语时要想匹配对应的代词,则我们希望忘记旧的主语和代词。

第二步, 由输入 层决定 什么样 的信息 会被存 储到细 胞中。 

这一步这里包含两个部分。第一,sigmoid 层决定什么值我们将要更新。然后,

一个 tanh 层创建一个新的候选值向量 ,会被加入到状态中。 

在我们语义预测的例子中,我们希望增加新的主语的性别或者别的信息添加到细胞状态中,来替代旧的主语并完善新的主语的信息。 下一步,我们会讲这两个信息来产生对状态的更新。 

即我们 cell 的更新是由经忘记门剩下的信息和需要更新的信息的结合,在语义预测中就是,我们忘记了旧的主语,我们在换成新的主语的时候可以由输入层决定需要更新的信息,比如性别、年龄等。这些作为整体保存在新的 cell 中。

再接着,就是输出信息。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。首先,我们运行一个 sigmoid 激活函数来确定细胞状态的哪个部分将输出出去。接着,我们把细胞状态通过 tanh 进行处理(得到一个在 -1 到1 之间的值)并将它和 sigmoid 的输出相乘,最终我们仅仅会输出我们确定输 出的那部分。

在语义预测的例子中,当我们看到了一个代词,可能需要输出与一个动词相关的信息。例如,由 sigmoid 决定可能输出是否代词是单数还是负数,这样如果经过 tanh 函数的细胞状态是动词的话,sigmoid 和 tanh 结合我们也就知道了动词需要进行的词形变化 。具体如下图所示:

LSTM的发展

上面我们已经把标准的 LSTM 解释清楚了,但是为了满足更复杂的需求,LSTM出现很多变形。其中最流行的是由 Gers & Schmidhuber (2000) 提出的,增加 了 “peepholeconnection”。是说,我们让“门”也要接受细胞状态的输入。 

另一个变体是通过使用复合忘记和输入门。不同于之前是分开确定什么忘记和需要添加什么新的信息,这里是一同做出决定。 

 

还有比较流行的是改动较大的变体是 Gated Recurrent Unit (GRU),这是由Cho, et al. (2014) 提出。它将忘记门和输入门合成了一个单一的更新门。同样还混合了细胞状态和隐藏状态,和其他一些改动。最终的模型比标准的LSTM模型要简单 

推荐阅读:

1.如何设计量化交易策略?

2.经典量化选股方法——没有秘密的多因子

3.量化交易领域最重要的10本参考书推荐!

4.如何构建一个属于自己的择时体系

5.市面上经典的量化交易策略都在这里了!

 

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值