NLP发展及其详解

ops/2024/12/23 4:23:15/

一、RNN(循环神经网络)

在这里附上一个很好的笔记

零基础入门深度学习(5) - 循环神经网络

RNN(循环神经网络)的结构特点在于其循环单元的设计,这种设计允许网络在处理序列数据时保持对之前信息的记忆。下面详细解释RNN的结构:

  1. 循环单元:RNN的循环单元是网络的核心,它通常是一个简单的神经网络层,比如一个tanh层。这个单元的输入包括当前时刻的输入 ( x_t ) 和上一时刻的隐藏状态 ( h_{t-1} ),然后它输出当前时刻的隐藏状态 ( h_t )。
  2. 隐藏状态:隐藏状态 ( h_t ) 是一个向量,它捕获了到当前时刻为止的序列信息。这个状态被传递到下一个时刻,成为下一时刻循环单元的输入之一。
  3. 输出:每个时刻的隐藏状态可以用于生成输出 ( y_t ),这个输出可以是序列的一个预测,比如下一个词的概率分布。在实际应用中,输出层通常是一个全连接层,它将隐藏状态映射到输出空间。
  4. 参数共享:在RNN中,循环单元的参数在所有时刻是共享的。这意味着无论序列有多长,处理每个时刻的单元都是使用相同的权重。这种参数共享使得RNN能够扩展到不同长度的序列。
  5. 序列处理:RNN按顺序处理序列的每个元素。对于每个时刻 ( t ),网络的输入是当前元素的表示 ( x_t ),然后网络更新隐藏状态 ( h_t ) 并生成输出 ( y_t )。
  6. 灵活性:RNN的结构使其能够处理不同长度的输入序列,这使得它非常适合于语言模型、时间序列预测和其他需要处理可变长度数据的任务。
    在这里插入图片描述

然而,传统的RNN存在一些问题,比如在训练过程中可能出现的梯度消失或梯度爆炸问题,这使得它们难以学习长距离依赖。为了解决这个问题,研究者们提出了更复杂的循环单元结构,如LSTM(长短时记忆网络)和GRU(门控循环单元),这些结构通过引入门控机制来更好地捕捉长距离依赖。
总的来说,RNN的结构使其成为处理序列数据的强大工具,而其变体如LSTM和GRU则进一步增强了其在复杂序列建模任务中的能力。

二、LSTM(长短期记忆递归神经网络)

这里递上两个我参考的文章和笔记
零基础入门深度学习(6) - 长短时记忆网络(LSTM)
LSTM - 长短期记忆递归神经网络 来自知乎作者:Mark

LSTM(长短时记忆网络,Long Short-Term Memory)是一种特殊的RNN(循环神经网络)架构,它能够学习


http://www.ppmy.cn/ops/23249.html

相关文章

软件测试之学习及复习面试路线汇总

对于很多想通过自学或面试复习软件测试的同学,痛点并不是学习动力,而是找不到清晰的学习思路。 熬夜3天,吐血整理了这份《软件测试学习路线》,全文接近6000字,请大家耐心看完! 软件测试职业成长图 第一阶…

基于JAVA的高考志愿选择辅助系统

当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统高考志愿选择辅助采取了人工的管理方法&#xf…

三维点云处理-聚类(上)

聚类(Cluster)是数据处理中常用的一种分析方法,聚类的目标是将相似的数据对象划分到同一个簇中,使得同一簇内的数据对象的相似性尽可能大,而不同簇中的数据对象的差异性也尽可能大。  这里主要是介绍两种比较经典的聚…

Java web第四次作业

要求:读取xml文件并在页面中显示出来。 采用三种方式实现,并体会其中的原理: 1.常规方式,controlller控制器不分层 代码:RestController public class PoetController { RequestMapping("/listPoet") pu…

CSS-float浮动布局、float清除浮动与flex布局

CSS布局 清除浮动额外标签法单伪元素法双伪元素法overfow法 Flex布局Flex组成主轴对齐方式(水平方向对齐)侧轴对齐方式(单行垂直方向对齐)弹性盒子换行行内对齐方式(多行垂直方向对齐)弹性盒子伸缩比修改主…

Day20.一刷数据结构算法(C语言版) 669修剪二叉搜索树;108将有序数组转换为二叉搜索树;538把二叉搜索树转换为累加树

一、669修剪二叉搜索树 这道题目比较难,比添加增加和删除节点难的多,建议先看视频理解。 题目链接:修剪二叉搜索树 文章讲解: 代码随想录 视频讲解: 你修剪的方式不对,我来给你纠正一下!| 修剪二…

Android 学习 鸿蒙HarmonyOS 4.0 第三章(TS的常用基本类型)

写之前先简单提一句。鸿蒙4.0之后呢,主推开发语言:ArkTs,如果你是零基础小白,不建议直接学习鸿蒙os开发,可以先从ts:TypeScript来开始学习。 编程语言介绍: ArkTs 是鸿蒙os 优选的主力应用开发…

pytest参数化数据驱动(数据库/execl/yaml)

常见的数据驱动 数据结构: 列表、字典、json串 文件: txt、csv、excel 数据库: 数据库链接 数据库提取 参数化: pytest.mark.parametrize() pytest.fixture()…