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

Day07-RNN层(循环网络层)

一、RNN网络原理

文本数据是具有序列特性的

例如: "我爱你", 这串文本就是具有序列关系的,"爱" 需要在 "我" 之后,"你" 需要在 "爱" 之后, 如果颠倒了顺序,那么可能就会表达不同的意思。

为了表示出数据的序列关系,需要使用循环神经网络(Recurrent Nearal Networks, RNN) 来对数据进行建模,RNN 是一个作用于处理带有序列特点的样本数据。

RNN 计算过程是什么样的呢?

h 表示隐藏状态, 保存了序列数据中的历史信息,并将这些信息传递给下一个时间步,从而允许RNN处理和预测序列数据中的元素。

每一次的输入包含两个值: 上一个时间步的隐藏状态、当前状态的输入值x。

每一次的输出也会包含两个值:当前时间步的隐藏状态、当前时间步的预测结果y。

隐藏状态作用:

1、记忆功能:隐藏状态就像RNN的记忆,它能够在不同的时间步之间传递信息。当一个新的输入进入网络时,当前的隐藏状态会结合这个新输入来生成新的隐藏状态。

2、上下文理解:由于隐藏状态携带了过去的信息,它可以用于理解和生成与上下文相关的输出。这对于语言模型、机器翻译等任务尤其重要。

3、连接不同时间步:隐藏状态通过网络内部的循环连接将各个时间步连接起来,使得网络可以处理变长的序列数据。

上面一共画了 3 个神经元, 但是实际上只有一个神经元,"我爱你" 三个字是重复输入到同一个神经元中。

我们举个例子来理解上图的工作过程,假设我们要实现文本生成,也就是输入 "我爱" 这两个字,来预测出 "你",其如下图所示:

将上图展开成不同时间步的形式,如下图所示:

首先初始化出第一个隐藏状态h0,一般都是全0的一个向量,然后将 "我" 进行词嵌入,转换为向量的表示形式,送入到第一个时间步,然后输出隐藏状态 h1,然后将 h1 和 "爱" 输入到第二个时间步,得到隐藏状态 h2, 将 h2 送入到全连接网络,得到 "你" 的预测概率。

RNN神经元内部是如何计算的呢?

计算隐藏状态:每个时间步的隐藏状态h_t是根据当前输入x_t和前一时刻的隐藏状态h_{t-1}计算的。

上述公式中:

1、Wih 表示输入数据的权重

2、bih 表示输入数据的偏置

3、Whh 表示输入隐藏状态的权重

4、bhh 表示输入隐藏状态的偏置

5、ht-1 表示输入隐藏状态

6、ht 表示输出隐藏状态

最后对输出的结果使用 tanh 激活函数进行计算,得到该神经元你的输出隐藏状态。

计算当前时刻的输出:网络的输出yt是当前时刻的隐藏状态经过一个线性变换得到的。

词汇表映射:

输出yt是一个向量,该向量经过全连接层后输出得到最终预测结果Ypred,Ypred中每个元素代表当前时刻生成词汇表中某个词的得分(或概率,通过激活函数如softmax)。词汇表有多少个词,Ypred就有多少个元素值,最大元素值对应的词就是当前时刻预测生成的词。

神经元工作机制总结:

1、接收输入:每个RNN神经元接收来自输入数据xt和前一时刻的隐藏状态ht-1。

2、更新隐藏状态:神经元通过一个加权和(由权重矩阵和偏置项组成)更新当前时刻的隐藏状态ht,该隐藏状态包含了来自过去的记忆以及当前输入的信息。

3、输出计算:基于当前隐藏状态ht,神经元生成当前时刻的输出yt,该输出可以用于任务的最终预测。

文本生成示例:

二、PyTorch RNN层的使用

1、API介绍

2、输入数据和输出结果

将RNN实例化就可以将数据送入其中进行处理,处理的方式如下所示:

3、输入数据:输入主要包括词嵌入的x 、初始的隐藏层h0

(1)x的表示形式为[seq_len, batch, input_size],即[句子的长度,batch的大小,词向量的维度]

(2)h0的表示形式为[num_layers, batch, hidden_size],即[隐藏层的层数,batch的大,隐藏层h的维数]

4、输出结果:主要包括输出结果output,最后一层的hn

(1)output的表示形式与输入x类似,为[seq_len, batch, hidden_size],即[句子的长度,batch的大小,输出向量的维度]

(2)hn的表示形式与输入h0一样,为[num_layers, batch, hidden_size],即[隐藏层的层数,batch的大,隐藏层h的维度]

http://www.jsqmd.com/news/723002/

相关文章:

  • 根据“十五五”规划制定的容灾备份体系
  • 如何高效抽取财报信息
  • 2025亲测好用的10款降AI工具 附避坑指南
  • 校庆(2026)书法展览作品
  • 设备巡检数据都填了,风险还是漏了,利用风塔设备管理系统如何破局?
  • AI Agent不是未来,是现在——程序员该如何抓住这波红利
  • VMware Workstation Pro 17 终极免费激活指南:5000+许可证密钥完整教程
  • 实验室装修设计哪家好?通风柜定制安装哪家好?2026杭州实验室规划设计公司合集:实验台定制厂家推荐+实验室通风柜厂家推荐 - 栗子测评
  • 二维数组传参本质解析
  • 2025_NIPS_Train Once, Get a Family: State-Adaptive Balances for Offline-to-Online Reinforcement L...
  • TVA在齿轮箱零部件及其装配质检中的应用(二)
  • 【AI 编程工具进阶用法】如何在Cursor、Trae等工具中使用Skills
  • 软件需求管理:核心价值、挑战与最佳实践
  • 户外LED照明电路保护设计与器件选型指南
  • :RAG 入门-LangChain 读取文本
  • C/C++语言动态内存管理宝典
  • 17.18.动态规划,背包问题
  • Dify - (一)、本地部署Dify+聊天助手/Agent
  • 解读C++11 原生字符串
  • 路由器1111111111
  • 2025_NIPS_Understanding the Expressive Power and Mechanisms of Transformer for Sequence Modeling
  • C 基础(16) - C 预处理和C库
  • 终极指南:如何用OnStep将普通望远镜升级为智能寻星系统
  • 手把手带你了解C++最小栈
  • 2026年3月靠谱的汽车增压器组件口碑推荐,欧曼增压器/船机增压器/7830增压器/工程机械增压器,汽车增压器供应商推荐 - 品牌推荐师
  • MIMO稀疏信道估计:MOMPnet算法与硬件损伤校准
  • 95%小白选手持喷码机的误区
  • 华硕笔记本性能调校终极指南:G-Helper完全替代Armoury Crate
  • 国网低压侧, 智能融合终端, 微应用基础库
  • 2025_NIPS_Table2LaTeX-RL: High-Fidelity LaTeX Code Generation from Table Images via Reinforced Mu...