当前位置: 首页 > news >正文

递归神经网络

递归神经网络RNN

专门用于处理序列数据的神经网络结构,RNN具有循环连接,能够捕捉序列数据中的时间依赖关系。使RNN在自然语言处理、语音识别、时间序列预测等任务中表现出色。
在这里插入图片描述

核心思想

通过循环结构在时间步之间传递信息。每个时间步的输入不仅包括当前时刻的数据,还包括前一时刻的隐藏状态。
在这里插入图片描述

  • 隐藏状态

每个时间步t的隐藏状态 h t h_t ht由当前输入 x t x_t xt和前一状态 h t − 1 h_{t-1} ht1共同决定

h t = f ( W h h ⋅ h t − 1 + W x h ⋅ x t + b h ) h_t = f(W_{hh}·h_{t-1} + W_{xh}·x_t +b_h) ht=f(Whhht1+Wxhxt+bh)

  • h t − 1 h_{t-1} ht1:上一时刻的隐藏状态
  • x t x_t xt:当前时刻的输入
  • W h h W_{hh} Whh W x h W_{xh} Wxh:权重矩阵
  • b h b_h bh:偏置
  • f f f:激活函数(tanh或ReLU)

参数共享:所有时间步共享同一组权重( W x h 、 W h h W_{xh}、W_{hh} WxhWhh),大幅减少参数量并增强对变长序列的泛化能力。

  • 输出公式: y t = g ( W h ⋅ h t + b y ) y_t = g(W_h·h_t + b_y) yt=g(Whht+by)

W y W_y Wy:输出权重矩阵
b y b_y by:输出偏置
g g g:输出激活函数

特点

  • 时间依赖性:可以捕捉序列数据不同时间步之间依赖关系
  • 可变长度输入:可以处理任意长度的序列数据
  • 循环结构:通过隐藏状态的传递,RNN在时间步直接共享信息

局限性

  • 梯度消失和梯度爆炸:反向传播过程中,RNN的梯度可能随着时间步的增加而指数级衰减或增长,导致训练困难
  • 长距离依赖问题:难以捕捉序列中较长时间步之间的依赖关系。
  • 所有词都进行训练,没有重点

变体

  • 长短期记忆网络LSTM(Long Shot-Term Memory)

特殊RNN,通过引入门控制机制(输入门,遗忘门,输出门)来解决梯度消失问题,并更好地捕捉长距离依赖。

  • 门控制循环单元GRU(Gated Recurrent Unit)

LSTM的简化版本,通过合并部分门控机制,减少参数数量,同时保持良好性能。

  • 双向RNN

BiRNN通过同事考虑正向和反向的时间步信息,增强对序列数据的建模能力。

  • 堆叠RNN

堆叠多层RNN,增强模型的表达能力

应用

  • 自然语言处理(NLP):语言建模、机器翻译、文本生成、情感分析
  • 语音识别:处理语音信号的时间序列数据
  • 时间序列预测:股票价格预测、天气预测
  • 视频分析:动作识别、视频描述生成

其他概念

  • 负采样:处理大规模分类问题时,用于优化模型训练过程。目的通过减少计算复杂度来提高训练效率

正样本:上下文中出现的词或者推荐系统中用户选择的商品
负样本:随机选择的词或者推荐系统中用户未交互的商品
核心思想:从大量负样本中随机选择小部分,而不是所有负样本进行计算。

  • hard训练:通过引入更具挑战性的样本或任务来提高模型性能。

词向量模型

一种将词语或短语映射到低位向量空间的技术。核心:通过数学表示捕捉词语之间的语义和语法关系,使语义相似的词语在向量空间中距离较近,有了向量就可以计算相似度。

基本概念

  • 词向量:每个词语被表示为一个固定长度的实数向量。(如300维)
  • 低维空间:通常映射到低维连续向量空间(如50维、100维),而不是传统高维系数表示(One-Hot编码)
  • 语义相似性:在向量空间中,语义相似的词语距离较近,可通过余弦相似度等度量方法计算。

发展

  • 早期方法
  • One-Hot Encoding:每个词用一个高维稀疏向量表示,维度等于词汇表大小,但无法捕捉语义信息。
  • 共现矩阵:通过统计词语在上下文中的共线频率构建矩阵,但维度高难以扩展。

高维稀疏向量:一个向量具有​​非常高的维度(即特征数量)​​,但其中​​大部分元素的值为零​​。

  • 现代词向量模型
  • Word2Vec(2013,Goole):通过神经网络学习词向量,包括CBOW(通过上下文预测中心词)和Skip-Gram(通过中心词预测上下文)两种模型。训练速度快,能捕捉语义关系,无法处理未登录词。
  • GloVe(2014,斯坦福):基于全局词共现矩阵,结合矩阵分解技术学习词向量。训练效率高,能捕捉词语间线性关系。
  • FastText(2016,Facebook):将词语分解为字符级别的n-gram,可以通过字符组合推断语义,能处理未登录词(OOV)。德语、土耳其语表现优异。
  • ELMo(2018,Allen Institute for AI):基于双向LSTM的上下文相关词向量模型。同一个词在不同上下文中向量不同。
  • BERT(2018,Goole):基于Transformer的预训练模型,推断语义,生成上下文相关的词向量。预训练任务包括掩码语言模型(MLM)和下一句预测(NSP)。

未登录词:指在词向量模型或语言模型的词汇表中不存在的词语。当模型遇到一个不在其训练词汇表中的词时,就会将其视为未登录词。

  • 应用

文本分类、情感分析、机器翻译、信息检索、推荐系统

  • 优缺点
  • 能捕捉词语的语义和语法关系
  • 降低维度,提高计算效率
  • 可扩展性强,适用于多种NLP任务
  • 传统模型(Word2Vec、GloVe)无法处理未登录词
  • 上下文无关的模型(如Word2Vec、GloVe)无法捕捉词语在不同上下文中的语义变化。
  • 训练需要大规模语料,计算资源消耗较大。
  • 发展方向
  • 上下文相关词向量:BERT、GPT等模型,能生成动态词向量
  • 多语言词向量:支持跨语言语义表示
  • 轻量化模型:降低训练和推理计算成本,提高效率
  • 领域自适应:针对特定领域(医学、法律)优化词向量

相关文章:

  • 栈和队列--数据结构初阶(2)(C/C++)
  • 大数据系列 | 详解基于Zookeeper或ClickHouse Keeper的ClickHouse集群部署--完结
  • 查看MAC 地址以及简单了解
  • jvm-描述符与特征签名的区别
  • JavaScript-原型、原型链详解
  • Office文件内容提取 | 获取Word文件内容 |Javascript提取PDF文字内容 |PPT文档文字内容提取
  • 聊透多线程编程-线程互斥与同步-13. C# Mutex类实现线程互斥
  • 图片压缩工具,多种压缩方案可选
  • requestAnimationFrame是什么?【前端】
  • 基于瑞芯微RK3576国产ARM八核2.2GHz A72 工业评估板——ROS2系统使用说明
  • MH2103系列coremark1.0跑分数据和优化,及基于arm2d的优化应用
  • 鸿蒙NEXT开发LRUCache缓存工具类(单例模式)(ArkTs)
  • Gmssl实战
  • OpenSSL1.1.1d windows安装包资源使用
  • 【C++编程入门】:从零开始掌握基础语法
  • Python常用的第三方模块【openpyxl库】读写Excel文件
  • Vue路由传参的几种方式-案例
  • 系统分析师知识点:访问控制模型OBAC、RBAC、TBAC与ABAC的对比与应用
  • ONLYOFFICE协作空间3.1发布:虚拟数据房间中基于角色的表单填写、房间模板、改进访客管理等
  • 利用WSL2的镜像功能访问Windows下的所有网卡
  • 教育部召开全国中小学幼儿园安全工作视频会议:加强校园安防建设
  • 人民日报头版开新栏:收官之年干劲满,决战决胜勇争先
  • 德国男中音马蒂亚斯·格内:古典音乐的未来在亚洲
  • 解除近70家煤电厂有毒物质排放限制,特朗普能重振煤炭吗?
  • “走进电影”:虚拟现实电影产业有新进展
  • 关于沪泰创新合作,泰州市委书记姜冬冬谈到了三个“合”