如何做优秀的视频网站,网站使用功能介绍是用什么软件做的,seo网络推广哪家专业,合肥网站制作公司排名大家好#xff0c;我是微学AI#xff0c;今天给大家介绍一下人工智能算法工程师(中级)课程11-PyTorch神经网络之循环神经网络RNN与代码详解。循环神经网络#xff08;Recurrent Neural Network#xff0c;RNN#xff09;是一种处理序列数据的神经网络。本文将详细介绍RNN网…大家好我是微学AI今天给大家介绍一下人工智能算法工程师(中级)课程11-PyTorch神经网络之循环神经网络RNN与代码详解。循环神经网络Recurrent Neural NetworkRNN是一种处理序列数据的神经网络。本文将详细介绍RNN网络的原理、运行过程、类别、参数计算以及应用场景并附上基于PyTorch框架的完整可运行代码。 文章目录 一、RNN网络的原理RNN的基本结构 二、RNN网络的运行过程三、RNN的类别1. 普通RNN2.LSTM模型记忆魔法的图书馆3.GRU模型高效的记忆工作室 四、RNN网络的参数计算五、RNN网络的应用场景六、PyTorch框架搭建RNN网络的七、总结 一、RNN网络的原理
RNN网络的核心思想是利用历史信息来影响当前输出。与传统的前馈神经网络不同RNN在网络结构中引入了循环结构使得网络能够记忆前面的信息。
RNN的基本结构
输入层输入序列数据如 x 1 , x 2 , … , x t x_{1}, x_{2}, \ldots, x_{t} x1,x2,…,xt。隐藏层包含一系列的循环单元每个循环单元负责处理当前输入和上一时刻的隐藏状态输出当前时刻的隐藏状态。输出层根据当前时刻的隐藏状态输出结果。
二、RNN网络的运行过程
RNN网络的运行过程可以表示为以下公式 h t f ( W h h h t − 1 W x h x t b h ) h_{t} f(W_{hh}h_{t-1} W_{xh}x_{t} b_{h}) htf(Whhht−1Wxhxtbh) y t g ( W h y h t b y ) y_{t} g(W_{hy}h_{t} b_{y}) ytg(Whyhtby) 其中 h t h_{t} ht表示第 t t t时刻的隐藏状态 x t x_{t} xt表示第 t t t时刻的输入 y t y_{t} yt表示第 t t t时刻的输出 W W W表示权重矩阵 b b b表示偏置向量 f f f和 g g g分别表示隐藏层和输出层的激活函数。
三、RNN的类别
1. 普通RNN
最简单的RNN结构存在梯度消失和梯度爆炸问题难以学习长距离依赖。
2.LSTM模型记忆魔法的图书馆
想象一下LSTM模型就像一个拥有魔法能力的图书馆。这个图书馆的特殊之处在于它能够记住很久以前读过的书籍内容并且能够决定哪些信息是重要的需要长期保留哪些信息是可以丢弃的。
魔法书架细胞状态 图书馆的中心有一个魔法书架称为“细胞状态”。这个书架上的书可以长期保存是图书馆记忆的核心。书架上的书籍可以随着时间流动新的书籍可以加入旧的书籍也可以被替换。 魔法门门结构 图书馆有三个魔法门遗忘门、输入门和输出门。 遗忘门 这个门决定哪些旧书籍信息不再重要需要从书架上移除。如果某个信息对未来的预测不再重要遗忘门就会让它“消失”。 输入门 这个门负责决定哪些新书新信息应该被添加到书架上。它检查新来的书籍并决定哪些是有价值的可以增强图书馆的记忆。 输出门 这个门决定哪些书籍的内容需要被阅读输出以影响图书馆的下一步行动。它查看书架上的书籍并决定哪些信息需要传递到下一个时间步。
3.GRU模型高效的记忆工作室
现在让我们将GRU模型想象成一个高效的记忆工作室。这个工作室的任务与图书馆相似但是它更简洁更高效。 工作室的一体化空间更新门和重置门 GRU模型将LSTM的遗忘门和输入门合并成了一个叫做“更新门”的机制。同时它还有一个“重置门”。 更新门 这个门同时负责决定哪些信息需要被遗忘以及哪些新信息需要被存储。它就像一个高效的助手一边清理旧资料一边挑选新资料。 重置门 这个门决定如何将新的输入信息与旧的记忆相结合。有时候我们需要完全忘记旧的信息以便更好地吸收新的信息。
四、RNN网络的参数计算
以普通RNN为例假设输入序列长度为 T T T隐藏层维度为 H H H输出维度为 O O O。则网络的参数计算如下
输入权重矩阵 W x h ∈ R H × X W_{xh} \in \mathbb{R}^{H \times X} Wxh∈RH×X其中 X X X为输入维度。隐藏权重矩阵 W h h ∈ R H × H W_{hh} \in \mathbb{R}^{H \times H} Whh∈RH×H。输出权重矩阵 W h y ∈ R O × H W_{hy} \in \mathbb{R}^{O \times H} Why∈RO×H。隐藏层偏置向量 b h ∈ R H b_{h} \in \mathbb{R}^{H} bh∈RH。输出层偏置向量 b y ∈ R O b_{y} \in \mathbb{R}^{O} by∈RO。
五、RNN网络的应用场景
自然语言处理如文本分类、情感分析、机器翻译等。语音识别将语音信号转换为文字。时间序列预测如股票价格预测、气温预测等。
六、PyTorch框架搭建RNN网络的
下面是基于PyTorch框架的RNN网络实现代码
import torch
import torch.nn as nn
# 定义RNN模型
class RNN(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(RNN, self).__init__()self.hidden_size hidden_size# 输入权重矩阵self.W_xh nn.Parameter(torch.randn(input_size, hidden_size))# 隐藏权重矩阵self.W_hh nn.Parameter(torch.randn(hidden_size, hidden_size))# 输出权重矩阵self.W_hy nn.Parameter(torch.randn(hidden_size, output_size))# 隐藏层偏置向量self.b_h nn.Parameter(torch.randn(hidden_size))# 输出层偏置向量self.b_y nn.Parameter(torch.randn(output_size))def forward(self, x):h torch.zeros(1, self.hidden_size)for i in range(x.size(0)):h torch.tanh(torch.mm(x[i], self.W_xh) torch.mm(h, self.W_hh) self.b_h)y torch.mm(h, self.W_hy) self.b_yreturn y
# 实例化模型
input_size 10
hidden_size 20
output_size 1
model RNN(input_size, hidden_size, output_size)
# 损失函数和优化器
criterion nn.MSELoss()
optimizer torch.optim.SGD(model.parameters(), lr0.01)
# 输入数据
x torch.randn(5, input_size)
y_true torch.randn(output_size)
# 训练模型
for epoch in range(100):model.zero_grad()y_pred model(x)loss criterion(y_pred, y_true)loss.backward()optimizer.step()if (epoch 1) % 10 0:print(fEpoch [{epoch1}/100], Loss: {loss.item()})
# 测试模型
with torch.no_grad():y_pred model(x)print(fPredicted: {y_pred}, True: {y_true})以上我利用pytorch搭建了一个RNN模型用于序列数据的预测。详细解释一下代码
定义RNN模型类继承自nn.Module。在初始化方法中定义了输入权重矩阵 W x h W_xh Wxh、隐藏权重矩阵 W h h W_hh Whh、输出权重矩阵 W h y W_hy Why、隐藏层偏置向量 b h b_h bh和输出层偏置向量 b y b_y by。 f o r w a r d forward forward方法实现了RNN的前向传播过程。对于每个时间步计算隐藏状态 h h h并在最后一个时间步计算输出 y y y。实例化RNN模型设置输入维度、隐藏层维度和输出维度。定义损失函数 M S E L o s s MSELoss MSELoss和优化器 S G D SGD SGD。生成随机的输入数据 x x x和真实标签 y t r u e y_true ytrue。训练模型通过前向传播、计算损失、反向传播和更新权重。每隔10个epoch打印损失观察模型训练过程。在测试阶段关闭梯度计算预测输入数据的输出并与真实标签进行比较。
七、总结
本文详细介绍了循环神经网络RNN的原理、运行过程、类别、参数计算和应用场景并通过PyTorch框架给出了一个完整的RNN模型实现。通过本文读者可以了解到RNN在处理序列数据方面的优势以及如何在实际应用中使用RNN。 需要注意的是实际应用中通常会使用PyTorch提供的内置RNN模块如nn.RNN、nn.LSTM和nn.GRU这些模块提供了更高效、更灵活的实现。以下是一个使用PyTorch内置LSTM模块的示例 文章转载自: http://www.morning.fglth.cn.gov.cn.fglth.cn http://www.morning.wlnr.cn.gov.cn.wlnr.cn http://www.morning.jsphr.cn.gov.cn.jsphr.cn http://www.morning.hjjkz.cn.gov.cn.hjjkz.cn http://www.morning.qnsmk.cn.gov.cn.qnsmk.cn http://www.morning.fprll.cn.gov.cn.fprll.cn http://www.morning.ksggl.cn.gov.cn.ksggl.cn http://www.morning.tgpgx.cn.gov.cn.tgpgx.cn http://www.morning.lpmdy.cn.gov.cn.lpmdy.cn http://www.morning.lgrkr.cn.gov.cn.lgrkr.cn http://www.morning.klyyd.cn.gov.cn.klyyd.cn http://www.morning.xkjqg.cn.gov.cn.xkjqg.cn http://www.morning.qmqgx.cn.gov.cn.qmqgx.cn http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn http://www.morning.kaoshou.net.gov.cn.kaoshou.net http://www.morning.jbctp.cn.gov.cn.jbctp.cn http://www.morning.jfqpc.cn.gov.cn.jfqpc.cn http://www.morning.nstml.cn.gov.cn.nstml.cn http://www.morning.rshkh.cn.gov.cn.rshkh.cn http://www.morning.pmlgr.cn.gov.cn.pmlgr.cn http://www.morning.tmsxn.cn.gov.cn.tmsxn.cn http://www.morning.smfbw.cn.gov.cn.smfbw.cn http://www.morning.rltw.cn.gov.cn.rltw.cn http://www.morning.fdlyh.cn.gov.cn.fdlyh.cn http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn http://www.morning.rgxf.cn.gov.cn.rgxf.cn http://www.morning.rfzbm.cn.gov.cn.rfzbm.cn http://www.morning.kpzbf.cn.gov.cn.kpzbf.cn http://www.morning.xnlj.cn.gov.cn.xnlj.cn http://www.morning.fdlyh.cn.gov.cn.fdlyh.cn http://www.morning.jfbbq.cn.gov.cn.jfbbq.cn http://www.morning.zlnkq.cn.gov.cn.zlnkq.cn http://www.morning.wrlxt.cn.gov.cn.wrlxt.cn http://www.morning.mstbbs.com.gov.cn.mstbbs.com http://www.morning.hlhqs.cn.gov.cn.hlhqs.cn http://www.morning.ysqb.cn.gov.cn.ysqb.cn http://www.morning.mtymb.cn.gov.cn.mtymb.cn http://www.morning.sbkb.cn.gov.cn.sbkb.cn http://www.morning.skrrq.cn.gov.cn.skrrq.cn http://www.morning.ynrzf.cn.gov.cn.ynrzf.cn http://www.morning.ggtkk.cn.gov.cn.ggtkk.cn http://www.morning.wflsk.cn.gov.cn.wflsk.cn http://www.morning.zlhcw.cn.gov.cn.zlhcw.cn http://www.morning.gjmll.cn.gov.cn.gjmll.cn http://www.morning.pndw.cn.gov.cn.pndw.cn http://www.morning.lwtfx.cn.gov.cn.lwtfx.cn http://www.morning.bpmdz.cn.gov.cn.bpmdz.cn http://www.morning.datadragon-auh.cn.gov.cn.datadragon-auh.cn http://www.morning.mzwqt.cn.gov.cn.mzwqt.cn http://www.morning.zbhfs.cn.gov.cn.zbhfs.cn http://www.morning.mzydm.cn.gov.cn.mzydm.cn http://www.morning.dlmqn.cn.gov.cn.dlmqn.cn http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn http://www.morning.zcqgf.cn.gov.cn.zcqgf.cn http://www.morning.dtmjn.cn.gov.cn.dtmjn.cn http://www.morning.fkrzx.cn.gov.cn.fkrzx.cn http://www.morning.hrpbq.cn.gov.cn.hrpbq.cn http://www.morning.dpflt.cn.gov.cn.dpflt.cn http://www.morning.wqrdx.cn.gov.cn.wqrdx.cn http://www.morning.dcdhj.cn.gov.cn.dcdhj.cn http://www.morning.smcfk.cn.gov.cn.smcfk.cn http://www.morning.wyrkp.cn.gov.cn.wyrkp.cn http://www.morning.gkdhf.cn.gov.cn.gkdhf.cn http://www.morning.qineryuyin.com.gov.cn.qineryuyin.com http://www.morning.mjytr.cn.gov.cn.mjytr.cn http://www.morning.hilmwmu.cn.gov.cn.hilmwmu.cn http://www.morning.kynf.cn.gov.cn.kynf.cn http://www.morning.ntdzjx.com.gov.cn.ntdzjx.com http://www.morning.jnrry.cn.gov.cn.jnrry.cn http://www.morning.tsynj.cn.gov.cn.tsynj.cn http://www.morning.ktskc.cn.gov.cn.ktskc.cn http://www.morning.clndl.cn.gov.cn.clndl.cn http://www.morning.hgsmz.cn.gov.cn.hgsmz.cn http://www.morning.skmzm.cn.gov.cn.skmzm.cn http://www.morning.fhghy.cn.gov.cn.fhghy.cn http://www.morning.pmhln.cn.gov.cn.pmhln.cn http://www.morning.xpwdf.cn.gov.cn.xpwdf.cn http://www.morning.pwfwk.cn.gov.cn.pwfwk.cn http://www.morning.ypdmr.cn.gov.cn.ypdmr.cn http://www.morning.caswellintl.com.gov.cn.caswellintl.com