【LLM_04】自然语言处理基础_2

  • 一、神经网络
    • 1、循环神经网络(RNN)
    • 2、门控循环单元(GRU)
    • 3、长短期记忆网络(LSTM)
    • 4、双向RNN
    • 5、卷积神经网络(CNN)
  • 二、注意力机制
    • 1、注意力机制原理介绍
    • 2、注意力机制的各种变式
    • 3、注意力机制的特点

一、神经网络

1、循环神经网络(RNN)

  • RNN的一个关键点在于它在处理序列数据的期间会进行一个顺序记忆。
  • 序列数据:一段话或者一个音频都可以理解为序列数据。
  • 顺序记忆是一种会使大脑更容易识别这个序列模式的数据的一个机制。而RNN可以很好的利用这个机制,来递归地进行更新我们这个生命记忆,以此来对我们这些序列数据进行一个很好的建模。

在这里插入图片描述
在这里插入图片描述

  • RNN是顺序记忆的原因:因为其每一个时间步下的隐藏状态变量计算都包含了我们过去的一个时间,是一个一个计算,按照顺序来的。

在这里插入图片描述

  • 最终会经过softmax,然后输出词表上每个词的概率,我们选择概率最大的词来做我们的最终预测词。
  • 整个RNN的结构就是每一个RNN单元的不断复制,因此每个RNN单元的功能都是一样的。所以 W i , W h W_i,W_h Wi,Wh都是相同的,代表输入的矩阵。这里面的权重
  • RNN的优点:(1)可以处理变量的数据(2)模型的大小不会随着输入的增加而增大,因为这里的权重基本是共享的,有很好的参数共享。
  • RNN的缺点:(1)由于我们是顺序的计算,因此我们需要计算前一个单元的学习结果,才能得到后面的这个结果,因此时间上较慢。(2)实际应用当中,随着时间步不停地往后进行推移,后面信息单元的计算就较难获取到之前信息单元的计算。
  • 下面介绍两种RNN的变体:GRU和LSTM

2、门控循环单元(GRU)

在这里插入图片描述

  • 门控机制:对当前的信息进行筛选,像阀门一样。GRU有两个门控:(1)更新门:update gate。(2)重置门:reset gate。它们的作用在于权衡我们过去的信息和当前的输入信息之间的比重问题。

3、长短期记忆网络(LSTM)

在这里插入图片描述

  • 黄色方块:神经网络层。
  • 粉色圈圈:元素之间的操作。
  • 箭头:向量的传递。向量的合并与复制。

在这里插入图片描述

  • LSTM关键在于加了一个新的值,cell state。用它来学习长期的依赖关系。

在这里插入图片描述

  • 第一个门称之为:遗忘门。它的作用主要来决定我们当前上一个状态,有哪些信息可以从cell状态中进行移除。
  • 如果 f t = 0 f_t=0 ft=0,即遗忘门的最终计算结果为0,则表示过去的某些信息我们可以直接进行丢弃。

在这里插入图片描述

  • 输入门是决定有哪些信息可以存入cell状态里面去的,其计算方法与遗忘门叫类似。

在这里插入图片描述

在这里插入图片描述

  • 最后是输出门,决定了哪些信息可以输出。
  • 综上,LSTM很强大,因为我们每个隐藏层都是已经有一个内部的神经单元网络已经计算好了,所以在我们做堆叠或者我们做的很深的时候,LSTM会表现的性能很好。并且,由于我们引入了门控机制,它会对神经网络的输入和输出进行一个动态的控制,会增强我们对信息的利用能力。最后,LSTM可以有效的缓解梯度的问题。

4、双向RNN

  • 前面提到的RNN都有一个特点,就是每一个时间步下的状态里面的隐藏状态变量都是从我们过去序列,以及当前输入来捕获信息的。或者允许过去的值来影响我们当前的状态。
  • 但是在有些时候,我们计算当前的时候,不仅是依赖过去,还会依赖未来的输入,相当于我们会依赖整个输入序列。
    在这里插入图片描述
  • 例如:我们对手写体进行识别的时候,不仅会取决于过去,还会取决于未来的几个字,还有语音识别。
    在这里插入图片描述

5、卷积神经网络(CNN)

在这里插入图片描述

  • CNN刚出现的时候,是运用在计算机视觉领域。但是由于其结构的特殊性,也可以运用在NLP领域。例如:情感分类、心态分类当中都有较好的运用。【这是归功于CNN比较擅长提取局部和位置不变的模式。】

在这里插入图片描述

  • CNN提取局部模式的步骤主要是用来计算一个句子当中所有可能的N元组短语的一个表示。
  • N元组:表示我们选取几个相邻的词作为短语。
  • CNN的运用领域:目标检测、语音识别、文本分类、视频分类等。

在这里插入图片描述

在这里插入图片描述

  • CNN比较擅长提取局部的特征。RNN可以很好的处理变长的文本。来对变长的文本依赖进行很好的建模。
  • 模型机制不同导致RNN参数更多一些。
  • CNN主要是使用卷积核,卷积核在计算的时候是没有相互依赖的,因此可以很好的并行计算。RNN则依赖于过去的数据。

二、注意力机制

1、注意力机制原理介绍

  • Encoder将可变长度的输入序列编码成一个固定长度的向量;
  • Decoder将固定长度的向量解码成一个可变长度的输出序列;
  • Encoder-Decoder阶段的编码与解码的方式可以是CNN、RNN、LSTM、GRU等;

首先,以RNN模型为例,这个模型当中存在一个信息瓶颈的问题。

decoder端需要输出一个完整的句子,这要求encoder端得到的最后一个向量表示需要包含它输入句子的所有信息。但是这样的向量无法表达所有句子的多种多样的信息。
研究人员也发现这样的向量容量会限制模型encoder端的表示。因为在encoder端的每一个位置的隐向量都包含有丰富的信息,而其实最后的向量是整个encoder和decoder模型之间的一个信息瓶颈。
在这里插入图片描述
注:上图当中写的Seq2Seq其实是一个抽象的理论,只要满足输入序列生成输出序列的模式,都可以归类为Seq2Seq的模型。

而注意力机制就是为了解决信息瓶颈的问题提出的。

在这里插入图片描述

  • encoder端得到的每一个隐藏向量用h1到h7来表示,在decoder端得到的第一个隐向量用s1来表示。
  • 与之前RNN模型不同的是,我们不用s1直接来计算这一步生成单词的概率,而是利用s1来选择关注输入句子中的哪些部分,并计算得到一个新的隐向量,来得到生成单词的一个概率。

那么这样一个decoder端如何根据s1来对encoder端的向量进行选择呢?

  • 首先需要计算注意力分数,将s1与h1进行点积得到标量,称其为 e 1 1 e_{1}^{1} e11 ,之后将s1与h1进行点积得到 e 2 1 e_{2}^{1} e21 ,将这个过程一直重复直到这个句子的末尾。

在这里插入图片描述
最后我们就可以得到一个长度为7的向量,其中每个元素都是s1和对应位置的隐向量点积得到的。
我们将这样一个长度为7的向量,称为encoder端隐向量的一个注意力分数。

而这分数其实就表示s1与每一个encoder端隐向量hi的一个相似程度。值越高,表示s1与对应的隐向量相似程度越高。

在这里插入图片描述
之后,使用softmax函数将其变成概率分布。概率越接近于1,则decoder端就会越关注这些位置的向量。

  • 如上图所示,前两个位置的概率分布值较高,说明会更加关注前两个位置的隐向量。

在第三步,我们利用之前得到的注意力分布,对encoder端的隐向量进行加权求和,然后可以得到一个与隐向量维度相同的输出向量o1。

在这里插入图片描述

o1向量也就包含了decoder端当前所需要的encoder端的所有信息。

在这里插入图片描述
最后,将o1与RNN得到的隐向量s1进行拼接,可以得到一个新的表示,来表示decoder端这一步的一个状态。用这样一个向量来预测下一步需要生成的单词。

  • 在这个例子当中,我们输出的是many这个词,对应的就是汉语当中的多个,这也可以从注意力分布的高低看出对应关系。

在这里插入图片描述

  • s1输出的是many,而many就作为下一轮的输入。

接下来就是不断重复,之后我们对于decoder端的每一步,都可以自主的关注到encoder不同位置的隐向量。并且预测出一个新的单词。最后得到整个的输出句子。

在这里插入图片描述

2、注意力机制的各种变式

变体一:加上权重矩阵

如果两个向量的维度不一样,我们就需要在中间加上一个权重矩阵,来实现两者的相乘,最后得到一个标量。
在这里插入图片描述

变体二:additive attention

additive attention使用了一层的前馈神经网络,来将两个向量变成一个标量,从而得到注意力分数。

在这里插入图片描述

在这里插入图片描述

3、注意力机制的特点

  • 注意力机制的出发点是解决信息瓶颈的问题存在的。
  • 注意力机制可以缓解RNN当中梯度消失的问题。通过在encoder和decoder之间提供了一种直接连接的方式,防止梯度在RNN当中会传播过长,进而导致梯度消失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/169270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

保护您的IP地址:预防IP地址盗用的关键措施

随着互联网的发展,IP地址作为标识互联网设备的重要元素,成为网络通信的基石。然而,IP地址盗用威胁正不断增加,可能导致敏感信息泄露、未经授权的访问和网络攻击。本文将介绍一些有效的方法,以帮助组织和个人预防IP地址…

Acrel-2000电力监控系统在上海大世界保护修缮工程项目中的应用

摘要:安科瑞生产厂家1876150/-6237黄安南 介绍上海大世界电力监控系统,采用智能电力仪表采集配电现场的各种电参量和开关信号。系统采用现场就地组网的方式,组网后通过现场总线通讯并远传至后台,通过Acrel-2000型电力监控系统实现…

Vue与UserEcharts、DataV的协同

文章目录 引言一、Vue.js简介二、ECharts和UserEcharts1.ECharts简介2.UserEcharts:Vue和ECharts的结合 三、DataV简介四、Vue与DataV的结合1.DataV的Vue插件2.Vue和DataV的数据交互 结论我是将军,我一直都在,。! 引言 接着上一篇…

ubuntu22.04 arrch64版在线安装java环境

脚本 #安装java#!/bin/bashif type -p java; thenecho "Java has been installed."else#2.Installed Java , must install wgetwget -c https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-arm64-vfp-hflt.tar.gz;tar -zxvf ./jdk-8u151-linux-arm6…

【数据分享】我国12.5米分辨率的山体阴影数据(免费获取)

地形数据,也叫DEM数据,是我们在各项研究中最常使用的数据之一。之前我们分享过源于NASA地球科学数据网站发布的12.5米分辨率DEM地形数据,这个DEM数据的优点是精度高!基于该数据我们处理得到12.5米分辨率的坡度数据(以上…

外贸分享|如何从外贸小白成长为大咖?这10件事值得你坚持做

外贸成功不是一朝一夕的事,而是需要有充分的准备和持续的努力。作为一位有着丰富经验的外贸人员,我总结了成功的秘诀,分享了一个优秀的外贸人应该做好的10项工作。 1 找不到客户怎么办? 有很多各种各样的原因值得思考&#xff1a…

【数字图像处理】均值滤波与中值滤波

在数字图像处理中,均值滤波和中值滤波是常见的空间域处理方法,可以用于过滤图像中的噪声。本文主要介绍数字图像均值滤波与中值滤波的基本原理,并记录在紫光同创 PGL22G FPGA 平台的布署与实现过程。 目录 1. 均值滤波与中值滤波 2. FPGA 布署与实现 2.1 功能与指标定义

基于减法平均算法优化概率神经网络PNN的分类预测 - 附代码

基于减法平均算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于减法平均算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于减法平均优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

Python----函数的参数----形参(定义函数时编写的),实参(调用函数时传递的)

在函数定义与调用时,我们可以根据自己的需求来实现参数的传递。在Python中,函数的参数一共有两种形式:① 形参 ② 实参 形参:在函数定义时,所 编写 的参数就称之为 形式参数 实参:在函数调用时&#…

Spring Boot配置文件 Spring日志文件相关的知识

在上文中,小编带领大家创建了一个Spring Boot项目,并且成功的执行了第一个SPring Boot项目(在网页上运行hello world) 那么,本文的主要作用便是带领大家走进:Spring Boot配置文件 && Spring日志文件…

flutter之graphic图表自定义tooltip

renderer graphic中tooltip的TooltipGuide类提供了renderer方法&#xff0c;接收三个参数Size类型&#xff0c;Offset类型&#xff0c;Map<int, Tuple>类型。可查到的文档是真的少&#xff0c;所以只能在源码中扒拉例子&#xff0c;做符合需求的修改。 官方github示例 …

枚举与应用

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 枚举简介 枚举是一种特…

CentOS 7 使用异步网络框架Libevent

CentOS 7 安装Libevent库 libevent github地址&#xff1a;https://github.com/libevent/libevent 步骤1&#xff1a;首先&#xff0c;你需要下载libevent的源代码。你可以从github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2&#xff1a;下载完成后&…

C语言 - 基础

C 语言 1. Hello World #include <stdio.h>int main(int argc, const char *argv[]) {printf("hello world\n");return 0; }注意: 所有的标点符号必须在英文状态下输入单词不要写错注意空格 创建 C语言 程序步骤&#xff1a; 1、创建一个文档&#xff0c;以…

Springboot 南阳旅游平台-计算机毕设 附源码 31829

Springboot 南阳旅游平台 目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3 论文结构与章节安排 2 南阳旅游平台系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析…

芙蓉花 欣赏

芙蓉&#xff08;Hibiscus mutabilis Linn&#xff09;是一种锦葵科、木槿属植物原名&#xff1a;木芙蓉&#xff0c;别名&#xff1a;芙蓉花、拒霜花、木莲、地芙蓉、华木、酒醉芙蓉。其花或白或粉或赤&#xff0c;皎若芙蓉出水&#xff0c;艳似菡萏展瓣&#xff0c;故有“芙蓉…

Ubuntu服务器/工作站常见故障修复记录

日常写代码写方案文档&#xff0c;偶尔遇上服务器出现问题的时候&#xff0c;也需要充当一把运维工程师&#xff0c;此帖用来记录服务器报错的一些解决方案&#xff0c;仅供参考&#xff01; 文章目录 一、服务器简介二、机箱拆解三、基本操作3.1 F2进入BIOS3.2 F12进入Boot Me…

教你IDEA解决GIT冲突

前言 GIT基本上贯穿我们的开发生涯&#xff0c;之所以要使用git也是有很多优点的 &#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339; 1.通俗易懂点&#xff0c;保存代码不丢失&#xff1a;防止因内存&#xff0c;操…

字符串函数

读取字符串的函数 1.gets()函数 说明&#xff1a;gets函数简单易用&#xff0c;它读取整行输入&#xff0c;直至遇到换行符&#xff0c;然后丢掉换行符&#xff0c;储存其余字符&#xff0c;并在末尾添加一个空字符使其成为一个C字符串。它经常和puts&#xff08;&#xff09;…

从零开始的RISC-V模拟器开发(一)环境搭建

前言 博主这系列文章是跟随中科院吴伟老师的b站公开课&#xff1a;[完结]从零开始的RISC-V模拟器开发第一季2021春季_哔哩哔哩_bilibili 记录的笔记。仅供学习使用&#xff0c;侵删&#xff01; 苦逼的博主现在自己毕设也是要设计类似的东西。哎。我需要做的是给一个现成的 R…