【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。
相关推荐
Urbano8 分钟前
工装制作全流程科普:从面料到自动化生产
网络·人工智能
武子康10 分钟前
调查研究-166 VoxCPM 详解:一个值得重点关注的开源 TTS 项目
人工智能·openai
hhzz15 分钟前
详细解读Anthropic报告《当AI构建自己时...》
人工智能
xrgs_shz19 分钟前
基于K-Means聚类分析的鸢尾花分类
人工智能·机器学习
Chef_Chen33 分钟前
论文解读:GAIA给通用AI助手泼冷水,人类92分GPT-4插件版只到30分
人工智能
Black蜡笔小新43 分钟前
自动化AI算法训练服务器DLTM训推一体工作站赋能多行业智能化升级
人工智能·算法·自动化
KaMeidebaby43 分钟前
卡梅德生物技术快报|噬菌体文库构建实验优化及偶联体系实验数据分析
大数据·人工智能·架构·spark·新浪微博
NineData1 小时前
SQL 都在等锁时,ChatDBA 先帮 MySQL 找到谁在挡路
数据库·人工智能·sql·mysql·安全·数据复制·数据迁移工具
意图共鸣1 小时前
意图共鸣科技《AI记忆链商业化白皮书3.0》技术解读:“AI焦虑的解药”——从通用AI到个人记忆链架构
人工智能·科技·架构
小e说说1 小时前
AI 时代,IT 职业教育如何为学习者赋能?——职坐标的 AI+教育实践
人工智能