Press "Enter" to skip to content

深度学习笔记(9):RNN、LSTM、GRU

RNN循环神经网路是用来处理有顺序性的资料,称为 序列资料

 

N-gram模型:自然语言的句子也是一种序列资料,其相关程度可以使用N-gram模型判断,与前一单字有关称为2-gram(Bi-gram)、和2个字有关的3-gram(Tri-gram)

 

时间序列Time Series资料:常见的有语言、音乐和影片资料

 

机器学习应用在NLP的应用:文件分类与资讯撷取、机器翻译、语音辨识、语句和语意分析、拼字与文法检查、问答系统

 

MLP和CNN都是前馈神经网路(FNN),训练过程中的输入与输出是相互独立的,不会保留任何状态;RNN则拥有记忆能力,能够累积之间输出的资料来分析目前的资料。

 

RNN的种类:

 

1对多:一张图片输入产出图片说明文字的序列资料(多个输出)

 

多对1:输入电影评论文字,输出正面或负面情绪的结果(1个输出) 多对多:
(1)输入和输出等长(每个输入都有对应的输出)、(2)输入与输出不等长(机器翻译,中翻英字数通常不可能完全一样)

 

RNN的梯度消失:

 

如果英文句子上下文相关的讯息间隔得相当长(时步很长),则可能会产生错误,无法将讯息连接起来,也就是梯度消失

 

例如以下例子:

 

The catwhich already ate, ( was)
full.

 

The catswhich already ate, ( were)
full

 

当梯度小于1时,使用连锁率计算会呈现指数衰减,导致只能更新附近几步的权重,即 梯度消失。(只能使用LSTM和GRU解决)

 

如果梯度大于1,会造成 梯度爆炸,
可使用 神经网路最佳化
来解决。

 

LSTM与RNN没什幺不同,唯独其隐藏层是一个LSTM单元(LSTM Cell)。

 

RNN分哪些资料是长期记忆、哪些是短期记忆;LSTM则是用闸门来筛选资料,自动学习哪些资料需要保留久一点、哪些不再使用可以删除。

 

LSTM

 

遗忘闸Forget Gate:决定保留哪些资料,是一层Sigmoid神经层。

 

输入闸Input Gate:决定需要更新长期记忆中的哪些资料,包含新增与替换资料。

 

输出闸Output Gate:决定有哪些资料需要输出至下一个时步t+1时,作为其时步t+1的输入资料。

 

GRU

 

比LSTM结构更简单的版本,可提供更快的执行速度以及减少记忆体的使用。

 

重设闸:决定是否将之前记忆忘掉

 

更新闸:控制记忆资料的保留与更新

 

Tanh神经层:产生最后须输出的候选资料

 

GRU与LSTM的主要差异:

 

 

    1. GRU有2个闸门,LSTM有3个。

 

    1. LSTM需要使用遗忘闸和输入闸来控制记忆资料的删除与输入资料的更新;GRU使用重置闸。

 

    1. LSTM长期记忆线需要经过Tanh函数和输出闸来产生输出资料;GRU使用更新闸来控制最后输出资料

 

 

文字资料向量化

 

将资料转成数值资料的张量(0与1)

 

词向量(Word Vector)与词嵌入(Word Embedding)

 

将单字转换成一个浮点数学(float)的数学空间中。

 

One-hot Encoding和Word Vector的差异如下:

 

One-hot需要用Code转换单字成向量;Word Vector则是建立神经网路来自行学习单字的词向量

 

One-hot建立一个高维度的稀疏矩阵(向量长10000,只有1个1,其他都是0);Word Vector建立低维度的矩阵,透过神经网路自行学习建立,还能自动建立上下文关係。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注