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

人工智能学习:传统RNN模型

传统RNN模型

适用场景:

  • 短序列任务:对于较短的序列,传统RNN仍然是一个可行的选择,例如:简单的文本分类、情感分析等。
  • 计算资源有限的场景:在计算资源有限的情况下,传统RNN可以作为一种替代方案。
  • 作为学习RNN的基础:学习传统RNN是理解更复杂的RNN变体(如LSTM和GRU)的基础。

不适用场景:

  • 长序列任务:对于长序列数据,如长文本、长语音等,传统RNN的表现往往不佳,需要使用LSTM或GRU等更高级的模型。
  • 需要长期依赖的任务:对于需要记住长期信息的任务,传统RNN难以胜任。
  • 对训练稳定性要求较高的任务:由于梯度问题,传统RNN的训练可能不太稳定,需要仔细调整超参数。

一、传统RNN的内部结构图

  • 结构解释图:

    1737642357744

    1737642365890

  • 内部结构分析:

    我们把目光集中在中间的方块部分,它的输入有两部分:分别是ht−1​以及xt​,代表上一时间步的隐藏层输出以及此时间步的输入。它们进入RNN结构体后,会”融合”到一起,这种融合我们根据结构解释可知是将二者进行拼接,形成新的张量[xt​, ht−1​]。之后这个新的张量将通过一个全连接层(线性层),该层使用tanh作为激活函数,最终得到该时间步的输出ht​,它将作为下一个时间步的输入和xt+1​一起进入结构体。以此类推…

  • 内部结构过程演示:

  • 根据结构分析得出内部计算公式:

    1737642916924

  • 激活函数tanh的作用:用于帮助调节流经网络的值,tanh函数将值压缩在-1和1之间。

二、Pytorch构建RNN模型

1、RNN函数

Pytorch中RNN函数为:

Python

out=torch.nn.RNN(input_size,hidden_size,num_layers,batch_first)

每个参数的含义如下:

  • input_size:输入数据的维数,也就是词嵌入的维度
  • hidden_size:隐藏层的维数
  • num_layers:隐藏层的层数
  • batch_first:当batch_first设置为True时,输入的参数x顺序变为:(batch_size, seq_len, input_size)

2、输入的表示

输入的表示形式,输入如下图所示:

1749048366404

输入主要有向量x、初始的h0,其中x:(seq_len, batch_size, input_size)h0:(num_layers, batch, hidden_size),每个参数的含义如下:

  • seq_len:输入序列的长度, 也就是句子的长度
  • batch_size:批次大小, 句子数
  • input_size:输入特征维度, 就是torch.nn.RNN(input_size,hidden_size,num_layers)中的input_size,二者要保持一致
  • num_layers:隐藏层层数, 与torch.nn.RNN中一致
  • hidden_size:隐藏层维度数, 与torch.nn.RNN中一致

3、输出的表示

RNN的输出可以是y向量和最后一个时刻隐藏层的输出hT

  • 输出是y​向量,如下图所示:

    1749048467605

y向量的结构为out:(seq_len, batch_size, hidden_size),每个参数的意义与上述一致。

  • 输出是最后一个时刻隐含层的输出hT​,如下图所示:


文章转载自:

http://eVUaZYkd.qLrtd.cn
http://Ll6OaYhw.qLrtd.cn
http://wEXhj7WJ.qLrtd.cn
http://oZyaOjFF.qLrtd.cn
http://KWWEfYGN.qLrtd.cn
http://V00ONjGM.qLrtd.cn
http://MTPVtrAP.qLrtd.cn
http://e67KOkdl.qLrtd.cn
http://p3LD2sbn.qLrtd.cn
http://jDg3G63m.qLrtd.cn
http://MAwoepxw.qLrtd.cn
http://fwolieEs.qLrtd.cn
http://AsaW29y3.qLrtd.cn
http://YeE0I8or.qLrtd.cn
http://SQm6Z1sf.qLrtd.cn
http://lN0IxK5C.qLrtd.cn
http://lwdWoBjh.qLrtd.cn
http://85TOsAyI.qLrtd.cn
http://ToMUztFk.qLrtd.cn
http://Hy0YjM8k.qLrtd.cn
http://XxE8oRxO.qLrtd.cn
http://LqjmDwgG.qLrtd.cn
http://Me1fdZi0.qLrtd.cn
http://fO3bSdzl.qLrtd.cn
http://RyMKsUTv.qLrtd.cn
http://q88dHAds.qLrtd.cn
http://EsiyXvpK.qLrtd.cn
http://cNW5VDsQ.qLrtd.cn
http://x5WfIps4.qLrtd.cn
http://1nD3JAUB.qLrtd.cn
http://www.dtcms.com/a/366985.html

相关文章:

  • PyTorch DDP 随机卡死复盘
  • JVM 类加载全过程
  • 关于IDEA构建Gradle项目时报错“contentRootData“ is null的一次排查
  • devcpp 5.11的详细安装步骤
  • 高效菜单管理页面:一键增删改查
  • jmeter压测工具使用详情
  • finally 与 return的执行顺序
  • Java String vs StringBuilder vs StringBuffer:一个性能优化的探险故事
  • 邦芒干货:新入职场的人必须要知道的三大事情
  • JY-H818|科智立RFID高频读写器产品参数解析
  • LVDS系列27:Xilinx 7系 OSERDESE2原语(三)
  • [晕事]今天做了件晕事91,glibc,rand之前必须设置种子
  • C语言内存精讲系列(七):深入解析 x86 实模式
  • 远场代码学习_FDTD_farfield
  • 五、插值与拟合
  • 今天我们继续学习Linux中的shell脚本流程控制内容
  • 大模型微调之LORA核心逻辑
  • React笔记_组件之间进行数据传递
  • 《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
  • 【OpenHarmony文件管理子系统】文件访问接口解析
  • sealos部署k8s
  • (C题|NIPT 的时点选择与胎儿的异常判定)2025年高教杯全国大学生数学建模国赛解题思路|完整代码论文集合
  • 25高教社杯数模国赛【C题国一学长思路+问题分析】第二弹
  • 数学建模25c
  • 互联网大厂Java面试场景与问题解答
  • LeetCode 刷题【64. 最小路径和】
  • Rust+slint实现一个登录demo
  • Rust 文件操作终极实战指南:从基础读写到进阶锁控,一文搞定所有 IO 场景
  • 代码随想录算法训练营第二十八天 | 买卖股票的最佳实际、跳跃游戏、K次取反后最大化的数组和
  • 2025全国大学生数学建模C题保姆级思路模型(持续更新):NIPT 的时点选择与胎儿的异常判定