深入浅出Tensorflow(五):循环神经网络简介
特别专题 架构 AI5 继德国工业 4.0 的提出,中国也确立了“中国制造 2025”的目标,工业 4.0 及物联网的概念在中国大地上遍地开花,整个行业也是红红火火。 浏览所有 架构 本期主要内容:我们为什么要上链?专访章乐焱:金融区块链都经历了什么?中心化or去中心化?聊聊交易所的辩证发展;V神访谈:区块链的工程突破点是提高可扩展性,解决拥堵问题 浏览所有 AI前线循环神经网络的主要用途是处理和预测序列数据。在之前介绍的全连接神经网络或卷积神经网络模型中,网络结构都是从输入层到隐含层再到输出层,层与层之间是全连接或部分连接的,但每层之间的节点是无连接的。考虑这样一个问题,如果要预测句子的下一个单词是什么,一般需要用到当前单词以及前面的单词,因为句子中前后单词并不是独立的。比如,当前单词是很,前一个单词是天空,那么下一个单词很大概率是蓝。循环神经网络的来源就是为了刻画一个序列当前的输出与之前信息的关系。从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面结点的输出。也就是说,循环神经网络的隐藏层之间的结点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。如之前所介绍,循环神经网络可以被看做是同一神经网络结构在时间序列上被复制多次的结果,这个被复制多次的结构被称之为循环体。如何设计循环体的网络结构是循环神经网络解决实际问题的关键。和卷积神经网络过滤器中参数是共享的类似,在循环神经网络中,循环体网络结构中的参数在不同时刻也是共享的。在有些问题中,模型仅仅需要短期内的信息来执行当前的任务。比如预测短语大海的颜色是蓝色中的最后一个单词蓝色时,模型并不需要记忆这个短语之前更长的上下文信息因为这一句话已经包含了足够的信息来预测最后一个词。在这样的场景中,相关的信息和待预测的词的位置之间的间隔很小,循环神经网络可以比较容易地利用先前信息。但同样也会有一些上下文场景更加复杂的情况。比如当模型试着去预测段落某地开设了大量工厂,空气污染十分严重... 这里的天空都是灰色的的最后一个单词时,仅仅根据短期依赖就无法很好的解决这种问题。因为只根据最后一小段,最后一个词可以是蓝色的或者灰色的。但如果模型需要预测清楚具体是什么颜色,就需要考虑先前提到但离当前位置较远的上下文信息。因此,当前预测位置和相关信息之间的文本间隔就有可能变得很大。当这个间隔不断增大时,类似图4中给出的简单循环神经网络有可能会丧失学习到距离如此远的信息的能力。或者在复杂语言场景中,有用信息的间隔有大有小、长短不一,循环神经网络的性能也会受到限制。