人工智能-深度学习系列(4):循环神经网络
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二二、基本循环神经网网络
开始前,我们先回顾一一下,简单的MLP三层神经网网络模型:
其中x是一一个向量量,它表示输入入层的值(这里里里面面没有画出来表示神经元节点的圆圈);s是一一个向 量量,它表示隐藏层的值(这里里里隐藏层面面画了了一一个节点,你也可以想象这一一层其实是多个节点,节 点数与向量量s的维度相同);U是输入入层到隐藏层的权重矩阵;o也是一一个向量量,它表示输出层的 值;V是隐藏层到输出层的权重矩阵。 再看下图中一一个简单的循环神经网网络图,它由输入入层、一一个隐藏层和一一个输出层组成。我们可以 看到,循环神经网网络的隐藏层的值s不不仅仅取决于当前这次的输入入x,还取决于上一一次隐藏层的值
深度学习系列列(4):循环神经Βιβλιοθήκη Baidu网络
之前学习了了全连接神经网网络和卷积神经网网络,以及它们的训练与应用用。它们都只能单独的去处理理 单个的输入入,且前后的输入入之间毫无无关系。但是,在一一些任务中,我们需要更更好的去处理理序列列的 信息,即前后的输入入之间存在关系。比比如,在理理解一一整句句话的过程中,孤立立理理解组成这句句话的词 是不不够的,我们需要整体的处理理由这些词连接起来的整个序列列;当我们处理理视频时,我们也不不能 单独地仅仅分析每一一帧,而而要分析这些帧连接起来的整个序列列。这就引出了了深度学习领域中另一一 类非非常重要的神经网网络:循环神经网网络(Recurrent Neural Network)。
若反复把式2代入入带式1,我们将得到: o t = g(Vs t) = g(Vf(Ux t + Ws t − 1)) = g(Vf(Ux t + Wf(Ux t − 1 + Ws t − 2))) = g(Vf(Ux t + Wf(Ux t − 1 + Wf(Ux t − 2 + Ws t − 3))))
搜索“了了”后面面最有可能的一一个词。不不管最后电脑选的是不不是“我”,这个模型看起来并不不是那么靠 谱,因为“了了”前面面的一一大大堆实际上丝毫没起作用用。如果是3-Gram模型呢,会搜索“批评了了”后面面最 有可能的词,看⻬齐俩感觉比比2-Gram靠谱了了不不少,但还是远远不不够的。因为这句句话最关键的信 息“我”,远在9个词之前! 似乎我们可以不不断提升N的值,比比如4-Gram、9-Gram·······。实际上,这个想法是没有实用用性 的。在实际应用用中最多的是N=3的三元模型,更更高高阶的模型就很少使用用了了。主要有两个原因。首首 先,N元模型的大大小小(或者说空间复杂度)几几乎是N的指数函数,即O( | V | N),这里里里 | V | 是一一种语 言言词典的词汇量量,一一般在几几万到几几十十万个。然后,使用用N元模型的速度(或者说时间复杂度)也 几几乎是一一个指数函数,即O( | V | N − 1)。因此N不不能太大大。当N从1到2,再从2到3时,模型的效果 上升显著。而而当模型从3到4时,效果的提升就不不是很显著了了,而而资源的耗费增加却非非常快,所 以,除非非是不不惜资源为了了做到极致,很少有人人使用用四元以上的模型。Google的罗塞塔翻译系统和 语言言搜索系统,使用用的是四元模型,该模型存储于500台以上的Google服务器器中。 RNN就解决了了N-Gram的缺陷,它在理理论上可以往前看(往后看)任意多个词。
s。权重矩阵W就是隐藏层上一一次的值作为这一一次的输入入的权重。
如果我们把上面面的图展开,循环神经网网络也可以画成下面面这个样子子:
现在看起来就清楚不不少了了,这个网网络在t时刻接收到输入入X t之后,隐藏层的值是S t,输出值是o t。 关键一一点是,s t的值不不仅仅取决于X t,还取决于S t − 1。我们可以使用用下面面的公式来表示循环神经 网网络的计算方方法: o t = g(Vs t) s t = f(Ux t + Ws t − 1) 式1是输出层的计算公式,输出层是一一个全连接层,也就是它的每个节点都和隐藏层的每个节点 相连。V是输出层的权重矩阵,g是激活函数。式2是隐藏层的计算公式,它是循环层。U是输入入x 的权重矩阵,W是上一一次的值s t − 1作为这一一次的输入入的权重矩阵,f是激活函数。 从上面面的公式可以看出,循环层和全连接层的区别就是多了了一一个权重矩阵W。
一一、语言言模型
RNN是在自自然语言言处理理领域中最先使用用的,如RNN可以为语言言模型来建模。那么,何为语言言模 型? 自自然语言言从它产生生开始,逐渐演变成一一种上下文文相关的信息表达和传递的方方式,因此让计算机处 理理自自然语言言,一一个基本的问题就是为自自然语言言这种上下文文相关的特性建立立数学模型。这个数学模 型就是在自自然语言言处理理中常说的统计语言言模型(Statistical Language Model)。它最先由贾里里里尼 克提出。 我们可以和电脑玩一一个游戏,我们写出一一个句句子子前面面的一一些词,然后,让电脑帮我们写下接下来 的一一个词,比比如下面面这句句: 我昨天上学迟到了了,老老老师批评了了____。 我们给电脑展示了了这句句话前面面这些词,然后让电脑写下接下来的一一个词。在这个例例子子中,接下来 的这个词最有可能是“我”,而而不不可能是“小小明”,甚至至是“吃饭”。 语言言模型的出发点很简单:一一个句句子子是否合理理,就看看它的可能性大大小小如何。 语言言模型有很多用用处,比比如在语音音转文文本(STT)的应用用中,声学模型输出的结果,往往是若干干 个可能的候选词,这时候就需要语言言模型来从这些候选词中选择一一个最有可能的。当然,它同样 也可以用用在图像到文文本的识别中(OCR技术)。 在使用用RNN之前,语言言模型主要是采用用N-Gram。N可以是一一个自自然数,比比如2或者3.它的含义 是,假设一一个词出现的概率只和前面面N个词相关。我们以2-Gram为例例。首首先,对前面面的一一句句话进 行行行切词: 我 昨天 上学 迟到 了了 , 老老老师 批评 了了 ____。 如果用用2-Gram进行行行建模,那么电脑在预测时,只会看到前面面的“了了”,然后,电脑会在语料料库中,