RNN 概述

1. 基础概念

       循环神经网络(Recurrent Neural Networks ,以下简称RNN)是一类用于处理序列数据的神经网络,广泛的用于自然语言处理、基因序列分析等领域,其中自然语言处理包括语音识别、机器翻译、语义分析等。

       以下是一个简单的自然语言处理应用,该应用可以识别语句中的人名。应用的输入是一段语句,输出为语句中包含的人物名称。

                   

如上图所示,在RNN算法中,我们使用表示索引位置,表示t索引位置对应的输入,表示t索引位置对应的输出。表示输入的长度,表示输出的长度,在上例中

输入采用One-hot编码表示,具体方法如下:

1. 确定字典

       假设字典的大小为10000个单词,则我们选择最常用的前10000个单词按字典顺序排序,得到一个单词数组,该数组即为RNN算法使用的单词字典。在通常的应用程序中,字典大小一般在30000-100000之间。

2. 编码

       将每一个输入单词表示为一个数组,数组大小为10000(等于字典大小),数组中除了单词所在字典位置对应的数值为1,其他数值均为0。以上面示例说明,假设Harry在字典中的位置是4075,则Harry可以表示为下面的数组,在该数组中,4075下标对应的数值为1,其余的数值均为0。

如果输入中的单词不在字典中,则可以统一表示为UNK,用One-hot向量表示,在该向量中,索引10000位置的数值为1,其他位置均为0。

       为什么不能使用标准的神经网络算法处理以上问题,主要有几个原因:

  1. 不同的输入和输出长度不一致
  2. 不同位置间的特征不能共享
  3. 特征参数过多

2. RNN模型

       下面是RNN的基本模型图:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值