RNNs学习总结

递归神经网络(recurrent neural networks,RNNs)

        RNNs的应用主要有两个方面:(1)根据真实世界中发生的相似度对任意的句子进行评分,从而提供一种对语法和语义的正确性进行测量方法,这种模型可以用于机器翻译系统中。(2)预测下一个将要出现的文本,这个应用的价值相对较低。

一、RNNs介绍

        在传统的神经网络中,常常假设输入(与输出)之间是互相独立的,然而这在很多应用中是不切实际的,比如要想预测下一个将要出现的文本,那么上下文的作用就不容忽视。RNNs的设计思想就是想要利用这种上下文之间连续的信息,RNNs中的recurrent的含义就是指它对序列中的每个元素都执行相同的任务,一个典型的RNNs和它的展开形式如下图所示。


         其中,右边是左边的展开形式,这里假设x是输入的句子,Xt是第t个时刻的输入,假设句子采用的是one-hot vector编码形式。

        【注:one-hot vector是NLP(自然语言编码)在单词的表示方法中最简单的一种编码形式,每个单词表示为一个向量,只有它本身对应的位置为1,其他位置均为0,这个表示方法的缺点很明显,向量的长度与要表示的所有单词的种类相同,如果新的单词来了向量还有调整,并且整个矩阵非常庞大,更重要的是,它没有办法建立起单词之间的关系。当然还有其他的表示方法,如word2Vec等,当然使用好的表示方法也可以提高RNNs的效率。

       St是隐含层第t个时刻的状态,计算公式为

其中f是一个非线性函数,如tanh、ReLU等。

      Ot是第t个时刻的输出,如果要用RNNs预测下一个单词,可以使用softmax分类器,则此时的函数为


二、RNNs的运行流程

      (1)采用一种编码形式对训练样本集进行编码表示,例如one-hot vector,得到输入输出的矩阵。如果此时算法的目的是预测下一个单词,那么对每一个样本word,它所对应的输出就是在这个句子中它紧邻的下一个单词。(这时有个问题,就是句子的第一个单词和最后一个单词分别没有输入与输出对应,此时可以采用的方式是专门设置两个值来表示句子开始和句子结束,例如,可以认为句子的第一个单词所对应的输入为0,句子的最后一个单词的输出为1。)

       【注:在对收集的文本样本集进行处理是一个非常复杂的过程,包括对样本进行分词、将词语与编号进行对应、去掉稀有词汇

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值