一、序列模型-sequence model

简介: 一、序列模型-sequence model

在生活中,有许多领域都用到了序列模型,如语音识别,音乐创作,情感分类,DNA序列分析,机器翻译,视频动作检测,名称实体识别等。


1、符号定义


对于训练数据中的输入序列X和输出序列Y,令  x(i)<t>表示第  i个训练数据输入序列中,第 t个位置的序列元素;令y(i)<t>表示第  i个训练数据输出序列中,第 t个位置的序列元素;令 Tx(i)表示第 i i i个训练数据输入序列的长度;令  Ty(i)表示第 i i i个训练数据输出序列的长度。one-hot向量表示法表示 x(i)<t>:对于构建的词库vocabulary,词库中 x(i)<t>位置的取值为1,其余位置取值均为0;伪词<UNK>-Unknown Word,用来代替没有在vocabulary中出现的词。



2、构建循环神经网络-Recurrent Neural Network



使用标准神经网络(ANN)处理序列问题问题的缺陷:首先,序列问题下不同的训练数据的输入和输出很大可能下会不同;其次,也是比较重要的缺陷在于,ANN不会共享从不同文本文职学习到的特征。


循环神经网络(RNN)的结构如下图所示:

b792eae67758445c90c3ec86bdc84b97.png


其中, a<i>表示通过神经网络层和激活函数计算之后的值,其中  a<0>一般初始化为全0向量; w a x , w a a , w y a w_{ax},w_{aa},w_{ya} wax,waa,wya表示权重系数。如:

image.png

其中,g表示激活函数,计算  a时候的激活函数和计算 y时候的激活函数不一定为一种激活函数。计算 a 时候的激活函数通常使用 tanh或者 Relu;计算  y的时候,激活函数通常使用sigmoid(用于二元分类问题)或者softmax(用于多元分类问题)。上述拓展公式扩展到第 t步时的计算方法如下所示:


image.png

使用 [waa;wax]=wa,可以将上式 at的表达形式进行简化为:

image.png

使用 w y 代 替 w y a w_y代替w_{ya} wy代替wya可以将上式 y

<t>的表达形式变为:

image.png


2.1 RNN中的反向传播


  RNN正向传播的简化示意图如下图所示:


b3c40d4b72f6404caea8a5fb4ce88081.png


下面定义出序列模型的单个时间步下的交叉熵误差计算式:

image.png

所以总的误差为将所有时间步下的误差进行累和得到:



误差反向传播的示意图如下图所示:

0190cfd248de4d4b84598bfa8ebe196d.png


2.2 不同架构的RNN


多对多RNN,many-to-many,输入序列有多个元素,输出序列也有多个元素,输入输出序列长度相同的示意如下所示:


5e3d96cc746c4a4c9ce3868ae46f1d16.png


多对多RNN,many-to-many,输入序列有多个元素,输出序列也有多个元素,输入输出序列长度不同的示意如下所示:

5aadac3a746243c3b590ad7ef7d88f7a.png


多对一RNN,输入序列中有多个元素,输出序列中只有一个元素:

38b99a2689c3412abd5faaeedf8878ba.png


一对多RNN,输入序列只有一个元素,输出序列中包含多个元素:


13a7555a38b64c61b7b1adaa3365990f.png

3、语言模型的RNN架构


3.1 架构


基于RNN的语言模型的架构如下所示:


28e99ee3dfe2448dad48b9be228636be.png


损失函数使用交叉熵误差,形式如下所示:

image.png


3.2 序列采样


下图展示了怎样从一个训练好的RNN模型中提取出结果序列。

79c3f66ad80b43ef8d943be359fe733b.png




4、RNN的梯度消失问题-vanishing gradients



若输入序列的长度过长,后续RNN在预测时,对于很早之前的输入信息会变得不太“敏感”,若很早之前输入的信息对于RNN后续预测影响很大,则会使得RNN的效果变得很差,使得RNN不擅长捕捉远程依赖关系。


4.1 门控制单元-Gate Recurrent Unit

GRU通过修改RNN的隐藏层,使得RNN可以更好地捕捉长距离的关系,有助于减少梯度消失的问题。

     简化版的GRU单元如下所示:


850b926a54d8432f93abd3bdb8698ef5.png


其中     C表示记忆单元(memory cell),

C  <t>=tanh(wc[C<t1>x<t>]+bc)


表示 t时间步下的记忆单元,在GRU中,  a<t>=C<t>;

Γu=sigmoid(wu[C<t1>,x<t>]+bu)


表示更新门控;

C<t>=ΓuC  <t>+(1Γu)C<t1>


用来计算  t时间步下的输出值;


完整版的GRU需要引入一个新的门控单元-相关性门控 Γr表示  t−1时间步的记忆单元和 t时间步的记忆单元之间的相关性,所以需要对 C<t>的计算进行调整:




4.2 长短期记忆单元-Long Short Term Memory

下图罗列出了在GRU中使用的机制:


6f0be9316ca7464394a20baa46023560.png



LSTM相对于GRU是一种更加有效,更加泛化的克服梯度消失问题的工具。在LSTM中,a<t>和 C<t>不再是一个相同的值;LSTM通常不需要相关性控制门 Γr,但是增加了两个额外的控制门 Γf表示遗忘控制门和  Γo表示输出控制门。所以LSTM的核心等式如下所示:


image.png


LSTM的示意图如下图所示:

c056f6cc46714c96966c597d2b48e26f.png



5、双向RNN-Bidirectional RNN


BRNN是为了同时考虑过去的信息和未来的信息,在某个时间步                                  t                              t下进行决策,BRNN的示意图如下图所示:

09ac29ed428b4a5aac1d262234709b7e.png


其中,在某个时间步    t下的预测值区别于RNN,需要同时考虑前向输入和后向输入


image.png





相关文章
|
27天前
|
Java 测试技术 API
CompletableFuture 异步编程全解:核心能力、编排方案、异常处理与超时控制
本文深入解析Java异步编程核心工具CompletableFuture:涵盖底层原理(接口实现、线程模型、状态流转)、40+核心API用法(任务创建、串行转换、扁平化thenCompose、双/多任务编排),并详解生产级方案——异常处理、超时控制、电商订单页实战及五大避坑指南,助你写出高性能、高可靠异步代码。
264 1
|
5月前
|
缓存 人工智能 开发者
大模型推理优化实战:从延迟到吞吐的工程权衡
在人工智能从“能用”迈向“好用”的关键阶段,大语言模型(LLM)的部署效率已成为产品落地的核心瓶颈。开发者常面临一个现实困境:模型在实验室跑得飞快,上线后却响应迟缓、成本飙升。本文将深入探讨大模型推理中的关键技术挑战与优化策略,帮助工程师在延迟(Latency)、吞吐量(Throughput)和成本之间找到最佳平衡点。
|
11月前
|
Ubuntu Linux 数据安全/隐私保护
Windows中安装WSL 2和Ubuntu系统的教程
回看这一路,有趣吧?你已经跨界成为了一个Windows和Linux的桥梁。期待在代码的世界里,把一切玩得风生水起!
557 1
|
人工智能 开发框架 数据可视化
【AI大模型应用开发】【RAG评估】0. 综述:一文了解RAG评估方法、工具与指标
【AI大模型应用开发】【RAG评估】0. 综述:一文了解RAG评估方法、工具与指标
2265 0
|
机器学习/深度学习 运维 计算机视觉
TimesNet:时间序列预测的最新模型
2023年4月发表了一个新的模型,它在时间序列分析的多个任务中实现了最先进的结果,如预测、imputation、分类和异常检测:TimesNet。
1611 0
|
JSON JavaScript Linux
绘图框架 plotly 知识点补充(绘制子图,图表保存)
绘图框架 plotly 知识点补充(绘制子图,图表保存)
868 13
|
机器学习/深度学习 自然语言处理 达摩院
长文本口语语义理解技术系列①:段落分割实践
数智化浪潮下,越来越多的企业开始将现代信息网络作为数据资源的主要载体,并通过网络通信技术进行数据传输;网络作为主要的信息交流和分享的方式,海量不同源的网络信息,使得企业与个人消化信息的成本越来越高。音视频数据作为其中重要的信息来源之一,也随着远程视频会议、在线课堂、直播教学、电话销售等领域有了爆炸性的增长。
4015 0
长文本口语语义理解技术系列①:段落分割实践
|
JavaScript 前端开发 Java
2024 年顶级自动化测试工具
2024 年顶级自动化测试工具
730 0
|
机器学习/深度学习 算法 搜索推荐
Elasticsearch:崭新的打分机制 - Learning To Rank (LTR)
【6月更文挑战第8天】Elasticsearch 的 Learning To Rank (LTR) 打分机制通过机器学习改进搜索结果排序,以适应复杂需求和用户行为。传统打分基于词频等,而 LTR 利用训练数据学习更合理的排序,考虑文本、用户行为等特征。示例代码展示了如何在 Elasticsearch 中运用 LTR。尽管实施 LTR 需要高质量训练数据和专业选择算法,但它能处理模糊搜索、多因素排序,提升搜索体验,增强应用价值和竞争力。随着技术发展,LTR 将在 Elasticsearch 中发挥更大作用。
484 6
|
缓存 Android开发 开发者
安卓系统优化:提升手机性能的秘诀
【5月更文挑战第31天】本文将探讨如何通过一系列简单的步骤和技巧,对安卓系统进行优化,以提升手机的性能。我们将从清理无用文件、管理后台应用、调整系统设置等方面入手,帮助你的安卓设备运行更加流畅。

热门文章

最新文章