深度学习研究系列之漫谈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建模问题。

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。
如果觉得文章对你有用,请随意赞赏收藏
相关推荐
相关下载
登录后评论
Copyright © 2019 宽客在线