循环神经网络RNN

一、循环神经网络概念以及应用场景

1.概念

处理序列的一种神经网络计算模型。

2.序列数据

数据是根据时间步生成的,前后数据有关联关系,数据可以是数字、文字序列等等。

3.应用场景

自然语言处理(NLP)、时间序列预测、语音识别、音乐生成......

4.自然语言处理概述

主要是通过计算机算法来理解自然语言。NLP涵盖了从文本到语音、从语音到文本的各个方面,它涉及多种技术,包括语法分析、语义理解、情感分析、机器翻译等。

二、词嵌入层

1.作用

将词用向量表示,输入到RNN层,这些向量能够捕捉词与词之间的语义关系;

降维,通过低维稠密向量表示单词,能够更好的捕捉词汇之间的语义相似性,即保持上下文语义

词嵌入层首先会根据输入的词的数量构建一个词向量矩阵 ,比如100个词,希望转换成128维度的向量,那么就会构建矩阵形状100*128;

2.用法

将文本通过jieba分词等模块进行分词;根据每个词下标值转换成向量

3.API

embedding = nn.Embedding(num_embeddings=len(words), embedding_dim=8)

num_embeddings:词数量

embedding_dim:表示用多少向量维度来表示每个词

三、RNN循环层

1.RNN的循环机制

RNN的循环机制使模型隐层上一时间步产生的结果, 能够作为当下时间步输入的一部分(当下时间步的输入除了正常的输入外还包括上一步的隐层输出)对当下时间步的输出产生影响。

2.网络结构

循环神经网络RNN_第1张图片

3.RNN计算

①计算隐藏状态:每个时间步的隐藏状态h_t是根据当前输入x_t和前一时刻的隐藏状态h_{t-1}计算的。

h_{t}=tanh\left ( W^{ih}+b_{ih}+W_{hh}h_{\left ( t-1 \right )}+b_{hh} \right )

计算当前时刻的输出:网络的输出y_t是当前时刻的隐藏状态经过一个线性变换得到的。

词汇表映射:输出y_t是一个向量,该向量经过全连接层后输出得到最终预测结果y{pred},y{pred}中每个元素代表当前时刻生成词汇表中某个词的得分(或概率,通过激活函数:如softmax)。词汇表有多少个词,y_{pred}就有多少个元素值,最大元素值对应的词就是当前时刻预测生成的词

小结:在循环神经网络中,词与输出的对应关系通常通过以下几个步骤建立

  1. 词嵌入:将词转化为向量表示(词向量)。

  2. RNN处理:通过RNN层逐步处理词向量,生成每个时间步的隐藏状态。

  3. 输出映射:通过线性变换将隐藏状态映射到输出,通常是一个词汇表中的词的概率分布

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