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的主要差异:
- GRU有2个闸门,LSTM有3个。
- LSTM需要使用遗忘闸和输入闸来控制记忆资料的删除与输入资料的更新;GRU使用重置闸。
- 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