股票预测,自动翻译,你想要的它都能做——RNN算法探索之旅(1)

近几年,华尔街裁员不断,高盛在2000年顶峰时期,雇佣了600名交易员,为其机构客户进行股票买卖。但时至今日,却仅剩下2名交易员“看守”柜台。

不仅高盛,瑞银、摩根士丹利等金融公司,目前都已采用机器学习算法替代普通交易员,来进行交易。

那,什么样的算法如此厉害?

它能够预测股价走势

不仅如此,

它还能搭建聊天机器人、可以翻译外文、可以写新闻稿、写小说 ……

这个看起来无所不能的算法,就是:循环神经网络,简称RNN

 

本系列教程将以RNN为主线,总共分为3个部分:

  • RNN算法之预备知识:前馈神经网络(FFNN)
  • 初识RNN算法 
  • RNN算法之变体:长短期记忆(LSTM)

今天是系列教程的第1部分:

RNN算法之预备知识:前馈神经网络(FFNN)

在讲RNN之前,首先引入前馈神经网络的部分内容,是因为了解了FFNN,再学习RNN会更加容易,遇到的阻力更小。

如果你已经对前馈神经网络很熟悉,直接跳过此部分内容。

好啦,话不多说,下面开始我们今天的内容。


先来看这样一组数据:

这只是我们随机编写的一些数字,它很简单,不使用任何模型算法,你也能轻而易举地找到x-y之间的规律:

但是如果,

我们一定要用神经网络来计算的话,

那么,这个神经网络可以简单地搭建为:

先别晕,我们举个例子,你就明白上面的逻辑了。

以第1条数据为例:

  • 输入层,让模型读入第1条数据“4”
  • 输出层,告诉模型其结果为“36”
  • 隐藏层,就像连接“输入”和“输出”之间的桥梁

这个模型的核心:就是努力找到x与y之间的联系

比如,

图中的 “1” 和 “9”,就是模型找到的其中一种连接方法。

更一般的,

如果你拥有数据(X,Y),神经网络算法就会去寻找最佳的参数W:

求解W,就是这条神经网络会替我们努力完成的工作。

上面的图,写成公式为:

(注:两个公式中的w,数值可能不相同)

这就是一条最简单的神经网络。

当然,更多的时候,你在教材上看到的是这样的:

如果我们将参数b暂时遮挡住:

“公式二”与“公式一”之间,仅仅多出一个f()函数。

这个f()函数,在学术上被称为“激活函数”,通常是一个非线性的函数。

例如,

像上面这些,均可以作为激活函数来使用。

你会问:

“为什么我们要使用激活函数?”

这是因为, 

(w*X) 和 (w*h) 仅仅是线性运算:

而我们在现实中遇到的问题,更多都是非线性的

这就好比,

家到学校,理论上是两点一线的距离;

但现实中,你要曲曲弯弯走很多路,才能抵达终点:

因而,在w*X的外面,包裹上一层激活函数 

 f(w*X) 

可以将线性问题转化为非线性问题,这样更接近真实的世界,也能使我们模型预测的准确度,得到大幅提升。

好了,前面我们一直讨论的是一条数据的情形,即

现在,如果我们把t+1条数据,全部考虑进来:

那么此时,

神经网络的形态变为:

由图可以看出,

它是t+1条数据的“堆叠”。

你会发现,像这样的神经网络,它只有横向箭头 

并没有纵向箭头

 

即“第t条数据,并不受之前数据的影响”。

你可以视它为一条“一直向前,永不回望”的神经网络,

也因此而得名“前馈神经网络”。

我们单拎出第t条数据:

此时,ht仅受Xt的影响。

在实际工作中,它适用于“上一条数据与下一条数据,彼此之间没有任何关联”的情形。

举几个例子:

图像分类

第1张图与第2张图之间,并无关联。

薪水等的预测

第1条职位所提供的薪水,并不决定第2条职位薪水的高低。

电影推荐

第1部电影的好坏,并不影响第2部电影是否受观众的欢迎。

上面这些例子,都可以借助前馈神经网络来解决。但有些例子则不然。

下一期,我们进一步来了解“会回望的”神经网络——循环神经网络(RNN)。

如果在本文中,有任何疑问,可以关注 微信公众号:AI传送门,留言给我们,我们会定期为同学进行答疑。

发表评论

电子邮件地址不会被公开。