input框限制输入40个字符_RNN的输入输出以及keras参数解析

本文详细解读了RNN和LSTM的工作原理,特别介绍了参数设置如hidden_feature、timestamp和input_feature在Keras实现中的作用,并通过实例说明了不同场景的应用。重点澄清了LSTM cell与MLP的区别。涵盖了多层RNN、参数共享、时间序列处理及常见应用场景如机器翻译和情感分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RNN的输入和输出代表什么意思

如下是堆叠多层rnn在时间维度上的一个截面

e1189b2e5bcaa81f840670e263ed01c1.png

将上图中的每一个方块铺开,得到如下的多层RNN,总共有三层(输入,隐藏层,输出), 如下的时间窗口为4,这4个网络的参数是共享的。单独来看每个时刻的切面,就是一个MLP的增强版:原始的MLP的基础上,上一个时刻的hidden cell的值,需要传给本次time_step对应MLP的hidden cell作为输入。

9fa736d2e6a9cfb4d2097bf3a4375e5d.png
图1

上面讲了rnn的运行机制,至于更复杂的rnn比如LSTM、RGU,那就是在MLP的每个hidden cell(黄色circle)与下一个time_step 的hidden cell的传值机制的more sophisticated tactics。

几个容易混淆的概念

  1. lstm cell 和 mlp cell 完全不同的两个概念。lstm cell 是图2的A. 不同时刻的A的参数是共享的。图2中A的4个黄色框就代表4个MLP, 1个黄色框是包含多个mlp cell的。

3c46f3636164777199aa321e4aac592b.png
图2

15a25afaf28f8ed427c43b3c83e0342a.png
使用tensor表示时间序列数据

使用keras实现lstm的参数详解

首先看keras实现lstm的一段代码

from 

使用kera的lstm函数时,三个参数hidden_feature,timestamp,feature_size的含义分别为:

  • hidden_feature:图1中每一个切片中黄色节点的个数。图2的A中每个黄色框中(就是一个两层的MLP)隐层节点个数。
  • timestamp :时间长度,图1中切面的个数,图2中A的个数。
  • input_feature: 表示X的维度, 图1中切片中绿色圈的个数,图2中xt的维度。

那上面代码构建的lstm有多少个参数呢?

((input_feature + hidden_featrue) * hidden_featrue + hidden_featrue ) * 4

解释一下

(t时刻输入X的维度+ t-1时刻的hidden layer输出的维度 ) * t时刻的隐层的节点个数 + t时刻数据层的节点个数 ) * MLP个数

((10 + 5 ) * 5 + 5 ) * 4

RNN的常用结果举例

  • 1对1:时间步长为1,退化为MLP, 比如图像分类。
  • 1对多:图片取标题。
  • 多对1:情感分析/时序分类/时序异常检测。
  • 多对多1:机器翻译/多步骤时序预测。
  • 多对多2:视频分类,实时的对每一帧画面标记。

注意rnn模型对输入序列的长度没有限制,只要是单步时间窗的整数倍就行了,因为隐藏层是可以使用任意多次(下图中的绿色方块,对应的是上图中的黄色方块)。如下是在时间轴上的切片,每个格子代表的是多个cell。

46e3d8ee927046d43586cb3e23d612ec.png

参考资料

  1. https://www.zhihu.com/question/41949741?sort=created
  2. https://blog.youkuaiyun.com/jiangpeng59/article/details/77646186

4. https://blog.youkuaiyun.com/wyl1987527/article/details/56682347

Standford CS231n 循环神经网络 简要笔记

5. https://blog.youkuaiyun.com/wyl1987527/article/details/56682347

Keras关于LSTM的units参数,还是不理解?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值