【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

本文介绍了序列模型在多种应用场景中的重要性,并深入探讨了循环神经网络(RNN)的工作原理,包括其结构、前向传播过程及如何解决梯度消失问题的GRU和LSTM单元。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

循环序列模型

为什么选择序列模型

语音识别音乐生成情感分类DNA序列分析机器翻译视频识别命名实体识别等任务中,共同特点是输入X和/或输出Y都是序列。
这里写图片描述

数学符号

例如,对于命名实体识别的问题:

这里写图片描述

  • 对于输入序列,用x<1>,x<2>,...,x<t>,...,x<9>x<1>,x<2>,...,x<t>,...,x<9>来表示,其中x<t>x<t>表示tt位置的单词。
  • 对于输出序列用y<1>,y<2>,...,y<9>来表示。
  • TxTx表示输入序列长度,TyTy表示输出序列长度,在本例中Tx=Ty=9Tx=Ty=9
  • x(i)<t>x(i)<t>表示第ii个样本输入的第t个位置的值,T(i)xTx(i)表示第ii个训练样本的输入序列长度。
  • y(i)<t>表示第ii个样本的输出第t个位置的值,T(i)yTy(i)表示第ii个训练样本的输出序列长度。
怎样表现句子里的某一个单词:

one-hot编码:在词典中,该词的编码为1,其余位置编码为0,形成该词的向量。

循环神经网络模型

无法选择标准的神经网络的原因:
  • 在不同的样本中,输入输出长度都是可变的。
  • 不共享跨文本不同位置学习的功能。
循环神经网络RNN

这里写图片描述

在每一个时间步中,循环神经网络传递一个激活值到下一个时间步中,用于计算。对于零时刻,则输入一个零向量(或者随机初始化的)作为伪激活值。
循环神经网络是从左往右扫描数据,同时每个时间步的参数也是共享的。
限制:在某一时刻的预测仅仅使用了序列中之前的输入信息,而没有使用该时刻之后的输入信息。(解决方法:双向循环神经网络BRNN)

RNN前向传播过程如下:
这里写图片描述

其中,wax表示与XX相乘的用来计算a的权重,同理,wyawya表示与aa相乘的用来计算y的权重。
这里写图片描述

穿越时间的反向传播

这里写图片描述

不同类型的循环神经网络

这里写图片描述

结构:
多对一:如文本输入
一对多:如音乐生成、序列生成等(输入一个数字等或空,输出一段·音乐)
多对多:如机器翻译,输入和输出的长度不同,因此网络分为编码器和解码器两个部分。

语言模型和序列生成

训练语料:大的英文文本 。
预处理
- 将句子标记化(tokenize)
- 将每个单词转化成one-hot编码,在句子结尾加上<EOS><EOS>标记。
- 对于训练集中不在字典中的词,用<UNK><UNK>代替。

RNN model

这里写图片描述

对新序列采样

即对词的概率分布进行采样,来生成一个新的单词序列。

这里写图片描述

带有神经网络的梯度消失

存在的问题
RNN从左到右前向传播,由于梯度消失的原因,后面层的输出误差很难影响到前面层的计算。
梯度爆炸:采用梯度修剪的方法。
梯度消失则比较棘手(下一节GRU单元)

这里写图片描述

GRU单元

GRU(Gated Recurrent Unit)门控循环单元,通过改变RNN的隐藏层,使其能捕捉深层连接,并改善梯度消失的问题。

c~<t>=tanh(Wc[c<t1>,X<t>]+bc)c~<t>=tanh(Wc[c<t−1>,X<t>]+bc)

Γu=σ(Wu[c<t1>,X<t>]+bu)Γu=σ(Wu[c<t−1>,X<t>]+bu)

c~<t>c~<t>计算记忆细胞cc的更新值,用Γu来判断是否需要更新。

c<t>=Γuc~<t>+(1Γu)c<t1>c<t>=Γu∗c~<t>+(1−Γu)∗c<t−1>

由公式可以看出,如果ΓuΓu值为1,则说明需要更新,为0则保持原值。

这里写图片描述

公式中的c<t>c<t>c~<t>c~<t>ΓuΓu可以是维数相同的向量,*代表元素对应相乘(element-wise)的乘法。

这里写图片描述

长短期记忆LSTM

LSTM(Long Short Time Memory)和GRU的对比图:

这里写图片描述
GRU中,有两个门:c~<t>c~<t>——代替记忆细胞的候选值,还有ΓuΓu——更新门来决定是否要更新。

这里写图片描述

双向神经网络 Bidirectional RNN

这里写图片描述

缺点:需要完整的数据序列,才能够预测任意位置。

深层循环神经网络 Deep RNNs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值