第十八次实验 RNN,循环神经网络笔记+paddlepaddle学习

物联202  邱郑思毓  2008070213

实验要求:理解学习零基础入门深度学习(5) - 循环神经网络 - 作业部落 Cmd Markdown 编辑阅读器的内容,根据paddlepaddle中的RNN内容学习

完成情况:

1.理解RNN

       RNN是在自然语言处理领域中最先被用起来的,比如,RNN可以为语言模型来建模。语言模型就是这样的东西:给定一个一句话前面的部分,预测接下来最有可能的一个词是什么。例如下面的句子就是要利用简单的语言模型推测。

       在普通的N-Gram的方法中,N代表一些整数,但是对于接触这个问题而言,不是不合适就是占用空间太大,所以N-Gram方法并不是适用,用RNN算法才是最有效的。

2.理解基本神经网络

       较好理解的基本神经网络模型为下图,循环神经网络的输出值,是受前面历次输入值的影响的,这就是为什么循环神经网络可以往前看任意多个输入值的原因,才能更好地解决问题。

第十八次实验 RNN,循环神经网络笔记+paddlepaddle学习_第1张图片

       这个网络在t时刻接收到输入之后,隐藏层的值是xt,输出值是St。关键一点是,ot的值不仅仅取决于St,还取决于St-1。我们可以用下面的公式来表示循环神经网络的计算方法:

第十八次实验 RNN,循环神经网络笔记+paddlepaddle学习_第2张图片

       式1是输出层的计算公式,输出层是一个全连接层,也就是它的每个节点都和隐藏层的每个节点相连。V是输出层的权重矩阵,g是激活函数。式2是隐藏层的计算公式,它是循环层。U是输入x的权重矩阵,W是上一次的值作为这一次的输入的权重矩阵,f是激活函数。从上面的公式我们可以看出,循环层和全连接层的区别就是循环层多了一个权重矩阵 W。如果反复把式2带入到式1,我们将得到:

第十八次实验 RNN,循环神经网络笔记+paddlepaddle学习_第3张图片

 3.理解双向循环网络

       如下句子,当前边的文字无法完成问题的解决,就需要后面的句子的补充,这个时候,就可以进行结果的返回验证,也就是双向循环网络。

      如下为双向循环网络的结构图: 

第十八次实验 RNN,循环神经网络笔记+paddlepaddle学习_第4张图片

     在理解了基本神经网络的基础上,这个输出的算式就非常容易写出,只是多了一些代数而已。算式计算如下:

第十八次实验 RNN,循环神经网络笔记+paddlepaddle学习_第5张图片

      从上面三个公式我们可以看到,正向计算和反向计算不共享权重,也就是说U和U'、W和W'、V和V'都是不同的权重矩阵,通过学习,我认为之所以这样设计不同的权重,就是为了在整个句子都进行遍历计算的过程中更加突出重要的词组向量,而不遗漏任何一个向量的权重带来的作用,从而更好地判断问题的解决方案。 

4.深度循环神经网络

下图为深度循环神经网络,在双向的基础上增加了更多的隐藏层

第十八次实验 RNN,循环神经网络笔记+paddlepaddle学习_第6张图片

 第十八次实验 RNN,循环神经网络笔记+paddlepaddle学习_第7张图片

我认为这个方法是更全面的双向循环神经网络,在文字更多、更复杂的问题中可以很好地解决问题。 

 5.Skip-Gram算法模型

 skip-gram word2vec 模型是一种监督学习任务,它通过评估任何给定目标词  与上下文词  发生的可能性来学习词嵌入。 通过注意 与  相关的参数,概率 P(t|c)由下式给出:

\boxed{P(t|c)=\frac{\exp(\theta_t^Te_c)}{\displaystyle\sum_{j=1}^{|V|}\exp(\theta_j^Te_c)}}

        备注:在 softmax 部分的分母中对整个词汇表求和,使得该模型的计算成本很高。 CBOW 是另一个 word2vec 模型,它使用周围的词来预测给定的词。
 

你可能感兴趣的:(rnn,深度学习)