从今天起,量化投资与机器学习公众号将为大家带来一个系列的 Deep Learning 原创研究。本次深度学习系列的撰稿人为张泽旺 。希望大家有所收获,共同进步!
漫谈RNN之基本概念
RNN是一个图灵完全的模型,便意味着只要设计好RNN的外部存储机制,RNN模型的应用之广泛将远超我们的想象。为了更好地了解时序模型,从这期开始谈谈以RNN为核心的可扩展时序模型的研究状况及应用。
在神经网络模型中,一般分为非时序模型和时序模型,对于非时序模型而言,其应用场景有单一手写字识别、图像物体分类等等,最基本的模型是前馈式神经网络(FNN);而对于时序模型而言,其应用场景十分广泛,如连续手写字识别、语音识别、语义理解、机器翻译、看图说话、自动生成、数据压缩等等,最基础的模型是循环神经网络(RNN)。今天我们着重谈论的是RNN的基础概念。
图1 左:FNN,右:RNN
RNN最初也是受人类的生物神经模型启发而来,因为所有的生物神经系统都是一个动态的系统,神经元与神经元之间不是孤立的而是互相产生动态影响的,这就促发了RNN的诞生。RNN相比普通的FNN的主要区别有:
FNN的神经元是静态的,而RNN是一个动态的网络,其神经元的状态时刻处于动态变化之中
如果说FNN可以进行任意的非线性映射,那么RNN则可以拟合任意的动态系统
FNN的训练一般采用后向传播(BP)算法,而RNN一般采用随时间的后向传播(BPTT)算法
FNN在拟合非线性系统上取得了很大的成功,但是RNN在处理长时间时序问题上还存在着很大不足
RNN的数学公式也很简单,每个神经元的状态不仅与连接到它的输入有关,而且与前一时刻神经元的状态有关。即:
其中x是输入序列,h是状态序列,最后的输出是y。
RNN既可以处理有监督学习问题,也可以处理无监督学习问题,今天我们着重谈论RNN在有监督学习中的应用。对于有监督学习而言,一般的应用情景是:给定包含输入和标准输出的训练集,构建一个RNN模型学习到这个训练集输入与输出之间的映射关系,然后用测试集去验证这个模型的输出与标准输出的差异。
下面看一个运用RNN进行时序建模的例子,考虑这样一个定时问题,输入分为两部分,u1是作为触发脉冲,而u2是作为输出的duration。当u1为1时,u2便立即产生一个随机数,而此时的输出0.5,并且duration为10×u2;其他时刻,输出均为0。
那么用RNN去建模这样一个时序问题,RNN需要内部存储着duration的记忆,以及对触发具有响应的能力。下图是运用RNN对这个定时问题建模的测试结果:
在最下方图里,实线是标准的输出,而散点则是RNN模型的预测值,可以看到,预测值基本上与标准输出相吻合。这是一个简单的RNN运用的例子,后续将探讨更多更复杂的RNN建模问题。
近期文章预告:
《漫谈RNN之训练方法》
《漫谈RNN之梯度消失及梯度爆炸》
《漫谈RNN之长短期记忆模型LSTM》
《漫谈RNN之序列建模(机器翻译篇)》
关注者
从1到10000+
每天我们都在进步
阅读量前10文章
No.01 给你说个事,私募机构量化研究员的薪酬水平……
No.03 跟你讲个笑话,我是做私募的……
No.04 全网首发机器学习该如何应用到量化投资系列
No.05增强学习与量化投资初探
No.06量化缠论系列文章
No.07书籍干货国外深度学习与机器学习书籍
No.08机器学习资料整理
No.09 互联网金融之量化投资深度文本挖掘附源码
No.10 七夕没有对象的宽客都在看这篇文章
听说,置顶关注我们的人都不一般
我来说两句排行榜