打印本文 打印本文  关闭窗口 关闭窗口
用中文传话游戏理解 RNN
作者:佚名  文章来源:本站原创  点击数  更新时间:2018/6/11 6:06:20  文章录入:admin  责任编辑:admin

 

  轮回神经收集(RNN)是人工神经收集中很是风行的一个版本,其能够很好地处置序列数据类型。该数据类型指的是将一组数据点以特定挨次陈列,从而使相关的数据点一个挨着一个,具体的例子有:股票市场价钱、音频和视频数据、DNA 序列、传感器数据、天然言语文本等等。

  为了直观地领会 RNN 是若何工作的,假设我们正在玩一个很受接待的儿童游戏--中文传话。该游戏的目标是最初一小我能精确预测出句子中所漏掉的词语,好比「The brown dog has four _____」。

  玩家们需要排成一队,而且按照句子中词语的陈列,每小我城市获得此中的一个词语,好比玩家 1 获得词语「the」,玩家 2 获得词语「brown」,玩家 3 获得词语「dog」,以此类推。起首,步队中的第一小我把他听到的词语悄然地告诉步队中站在他死后的玩家。然后这个玩家将这个词语和本人的词语一路悄然地告诉他死后的人。接下来,整个步队不竭反复这个过程直到最初一个玩家。最初的玩家需要预测出所漏掉的词语,并高声地把这个动静告诉整个集体。

  显而易见的是,最初一个玩家能够精确地猜出漏掉的词语是「legs」。这是由于前一个玩家告诉了他这个句子的前面部门:「The brown dog has four」,所以他可以或许通过该语境推导出这个词语。

  由上文可知,RNN 可以或许通过对整个序列反复同样的过程,从而做出预测。左下图显示了轮回收集的根基布局。它同时领受序列数据输入向量(x)和躲藏形态消息(a),然后利用二者去预测序列数据的输出。

  为了准确地将系统工作体例可视化,我们凡是把 RNN 展开成与序列数据长度分歧的连续串反复的单位或称之为时间步(如右上图所示)。好比我们需要处置的序列是一个有三个词语的句子时,那么其将被展开成有三个时间步的 RNN 收集,每一个时间步处置一个词语。

  序列数据的输入和输出有各类各样的形式和长度。好比在感情阐发使命中,输入凡是是一串文本,而期望的输出是一个整数(1-5 的评分范畴)或是单个文本(好的、坏的,积极的、消沉的、中性的)。然而在语音文本使命中,输入则是声波中的一串声音信号,其输出则是一串对应的文本。

  当需要处置输入和输出序列的数量不分歧时,我们便可采用多对多架构的另一种版本。而机械翻译使命就是如许的一个使用实例:输入是原文的一串词语(好比法文),而输出是译文的一串词语(好比英文)。这个架构有两个分歧的模块:编码器息争码器。前者接管输入的句子,将其映照成内部形态表征,然后将其传给后者,以供其生成输出的句子。

  在此架构中,当编码器将全数的输入序列处置完后,解码器才起头对输出的序列进行预测。这与前面提到的不异序列长度架构完全分歧,在阿谁架构中,其每收到一个输入序列对象后,顿时起头对每一个输出序列对象进行预测。

  此处的 RNN 在第一个时间步接管一个单一值,然后在残剩的时间步中输出一串值。基于此架构的使用凡是会取得每个时间步的预测输出,并把它传送给下一层,作为该层的输入值。一个使用实例是图像标注:RNN 接管一幅图像作为输入,然后输出描述图像中所发生工作的一串词语。

打印本文 打印本文  关闭窗口 关闭窗口