【pytorch】循环神经网络

如果说卷积神经网络可以有效地处理空间信息,那么循环神经网络则可以更好地处理序列信息。循环神经网络通过引入状态变量存储过去的信息和当前的输入,从而可以确定当前的输出。

1 循环神经网络

隐藏层和隐状态指的是两个截然不同的概念。隐藏层是在从输入到输出的路径上(以观测角度来理解)的隐藏的层,而隐状态则是

在给定步骤所做的任何事情(以技术角度来定义)的输入,并且这些状态只能通过先前时间步的数据来计算。

1.1 无隐状态的神经网络

让我们来看一看只有单隐藏层的多层感知机。设隐藏层的激活函数为ϕ,给定一个小批量样本X ∈ Rn×d,其中批量大小为n,输入维度为d,则隐藏层的输出H ∈ Rn×h通过下式计算:

隐藏层权重参数为Wxh ∈ Rd×h,偏置参数为bh ∈ R1×h,以及隐藏单元的数目为h

接下来,将隐藏变量H用作输出层的输入。输出层由下式给出:

O ∈ Rn×q是输出变量,Whq ∈ Rh×q是权重参数,bq ∈ R1×q是输出层的偏置参数

1.2 有隐状态的循环神经网络

假设我们在时间步t有小批量输入Xt ∈ Rn×d。换言之,对于n个序列样本的小批量,Xt的每一行对应于来自该序列的时间步t处的一个样本 。接下来,用Ht ∈ Rn×h 表示时间步t的隐藏变量。与多层感知机不同的是,我们在这里保存了前一个时间步的隐藏变量Ht−1,并引入了一个新的权重参数Whh ∈ Rh×h,来描述如何在当前时间步中使用前一个时间步的隐藏变量。具体地说,当前时间步隐藏变量由当前时间步的输入与前一个时间步的隐藏变量一起计算 得出:

从相邻时间步的隐藏变量Ht和 Ht−1之间的关系可知,这些变量捕获并保留了序列直到其当前时间步的历史信息,就如当前时间步下神经网络的状态或记忆,因此这样的隐藏变量被称为隐状态(hidden state)。

对于时间步t,输出层的输出类似于多层感知机中的计算:

隐藏层的权重 Wxh ∈ Rd×h, Whh ∈ Rh×h和偏置bh ∈ R1×h,以及输出层的权重Whq ∈ Rh×q 和偏置bq ∈ R1×q。

循环神经网络在三个相邻时间步的计算逻辑如下:

在任意时间步t,隐状态的计算可以被视为:

  1. 拼接当前时间步t的输入Xt和前一时间步t − 1的隐状态Ht−1;
  2. 将拼接的结果送入带有激活函数ϕ的全连接层。全连接层的输出是当前时间步t的隐状态Ht。
相关推荐
回眸&啤酒鸭4 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅4 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein4 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu4 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台4 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
wukangjupingbb4 天前
智能网联汽车安全能力框架
人工智能
风合星语4 天前
2026 具身智能技术实战(一):VLA 到底怎么控制机器人?——用 LeRobot 跑通 SmolVLA 推理
pytorch·机器人·具身智能·vla·lerobot·smolvla
龙亘川4 天前
明月照湾区,智启新赛道:从顶流文旅IP盛会看智慧文旅升级路径
人工智能·智慧城市·开源软件·数据可视化