当前位置:   article > 正文

Tensorflow 循环神经网络 文本情感分析概述02_ensorflow.net语义分析

ensorflow.net语义分析

上一节讲了时序表示形式,那么完成了相关的转换,这一节将以文本-词向量为例展示回顾循环神经网络的内部构成

这里提一点就是关于embedding的好坏与否,那么如上图,两个语义相近的词他们的词向量在空间上是否距离较近代表了其好坏。相类似的词距离越近其相似度越高,那么在之后的情感分析或者是语义分析的过程中才能产生好的结果。

这里对应有5个词组成的一句话 i hate this boring movie 那么按照之前的时序化方法,每个词将分别作为五个input输入网络然后综合这5个input的结果来计算最后的情感是positive还是negative(相当于一个二分类问题)

此时问题来了,这是个短句子,那么如果我们遇到的是一个长句字,有100+个单词组成,那么每一个单词会有一组[wn,bn]组成,我们将面临参数量爆炸的情况,假设我们embedding每个词的word_vec设置的也不小的话,众所周知参数量过多那么神经网络模型训练起来会非常缓慢。

由此产生了一个思想,结合之前的CNN中的卷积层的权值共享,这里RNN循环神经网络也是基于权值共享的思想,大大缩减了参数量

每一个输入的词汇有共用一个[w1,b1]那么接下来问题就来了,前馈的过程基本可以实现了,那么如何对共享权值进行更新呢?这里引入Consistent memory的概念,这个称为连续存储的概念可以如下图表示。

权值共享实现,既然是循环神经网络,里边h这个就是一个在多个权值共享的输入层中传递的矩阵变量,首先初始化h0也就是对应我们之后cell构建形式的state0,然后依次输入到第一个词向量input中进行矩阵乘运算,由输入的xt和ht-1经过w运算输出得到下一个ht,依次迭代,那么最后一个h5也就是本例中的movie所对应输出的值将包含了前面h1-h4的4个词汇的信息,因为都是以一定的形式由之前的一个变量转变而来的。具体过程参考下图

那么这里共享权值的一个折叠过程可以称之为一个循环,输出的ht又会回到这个权值共享层里边,同时还会有一个输出值作为这个节点的输出值ot。其中的计算公式如下,大概理解下即可,注意不同于CNN这里的激活函数我们用的是tanh

现在最后一个问题,前馈的过程大致明晰了,如何进行梯度下降实现参数更新呢?

那么根据链式法则我们知道,损失函数E我们对其中某个wr权值求偏导,其依照链式法则,前边两个是全连接层的更新,这个是固定的,后边的就是hi对hi-1的迭代求导了,这个依据链式法则,最后的整理后的形式如最后一个公式

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/358161
推荐阅读
相关标签
  

闽ICP备14008679号