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

汽车类网站外贸移动商城网站开发

汽车类网站,外贸移动商城网站开发,微网站 无锡,wordpress转代码0、前言 随着循环神经网络(RNN)在各种序列数据处理任务中被广泛应用,研究人员逐渐发现了其在处理长序列数据时会容易出现梯度消失(vanishing gradient)和梯度爆炸(exploding gradient)问题&…

0、前言

随着循环神经网络(RNN)在各种序列数据处理任务中被广泛应用,研究人员逐渐发现了其在处理长序列数据时会容易出现梯度消失(vanishing gradient)和梯度爆炸(exploding gradient)问题,限制了其在实际应用中的有效性

  • 梯度消失问题:在RNN中,信息需要通过隐藏状态在时间步之间传递,当序列很长时,如果权重矩阵的谱半径(spectral radius)小于1,那么在反向传播过程中,梯度会随着时间步的增加而指数级减小,这导致网络在处理长序列时只能捕捉到局部的模式,无法有效地利用序列中的长距离依赖信息

  • 梯度爆炸问题:与梯度消失相反,梯度爆炸指的是梯度在反向传播的过程中随着时间步的增加而指数级增大,从而导致权重更新过大,使得网络训练变得不稳定,甚至导致权重更新失效(梯度爆炸通常需要通过梯度裁剪(gradient clipping)等技术来缓解)

为了解决这些问题,研究人员提出了多种改进的RNN结构,其中最成功的两种分别是LSTM和GRU:

  • LSTM(Long Short-Term Memory,长短期记忆网络):通过引入细胞状态(cell state)和三个门控机制(输入门、遗忘门、输出门)来控制信息的流动,从而有效地解决了梯度消失问题,并允许梯度在时间步之间更稳定地传播

  • GRU(Gated Recurrent Unit,门控循环单元):作为LSTM的简化版本,GRU合并了LSTM中的遗忘门和输入门为一个更新门,同时引入了重置门,GRU的结构更简单,参数更少,但在很多情况下能够达到与LSTM相似的性能

1、LSTM基本介绍

1.1 定义

LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊类型的循环神经网络(RNN),设计用于解决标准RNN在处理长序列数据时遇到的梯度消失和梯度爆炸问题,LSTM能够学习长期依赖信息,使得它在处理序列数据方面非常有效(尤其是在时间序列预测、自然语言处理和其他需要捕捉长期依赖关系的任务中)

1.2 核心组件

LSTM的核心思想是门控思想,即:先用遗忘门丢掉一部分不重要信息,再用输入门增加重要的信息

其核心组件如下:

  • 细胞状态(Cell State):LSTM的核心是一个细胞状态(也称记忆细胞),它类似于一个传送带,可以沿着序列的长度保持信息,这个状态允许信息在序列中流动,而不会衰减

  • 遗忘门(Forget Gate):遗忘门控制细胞状态中哪些信息需要被遗忘,它也通过一个sigmoid激活函数来决定哪些值需要丢弃

  • 输入门(Input Gate):输入门控制新信息的流入,它通过一个sigmoid激活函数来决定哪些值需要更新

  • 候选记忆单元(Candidate Memory Cell):候选记忆单元是细胞状态的候选更新,通过一个tanh激活函数生成,用于在更新细胞状态时提供新的信息

  • 输出门(Output Gate):输出门控制细胞状态的哪一部分将被输出到隐藏状态,它通过一个sigmoid激活函数来决定输出的值,并通过一个tanh函数来生成新的候选值,这些值将被加到细胞状态上

1.3 调用示例

编码器nn.LSTM:

import torch 
from torch import nn# 定义输入语句
X = torch.randn(5, 3, 10)
# 定义初始短期状态
h0 = torch.zeros(1, 3, 20, dtype=torch.float32)
# 定义初始长期状态
c0 = torch.zeros(1, 3, 20, dtype=torch.float32)# 调用LSTM
lstm = nn.LSTM(input_size=10, hidden_size=20)
output, (hn, cn) = lstm(X, (h0, c0))# 查看output、hn、cn的形状和内容
print(output.shape, hn.shape, cn.shape)
print(output)
print(hn)
print(cn)

解码器nn.RNNCell:

import torch 
from torch import nnX = torch.randn(5, 3, 10)
hn = torch.zeros(3, 20, dtype=torch.float32)
cn = torch.zeros(3, 20, dtype=torch.float32)output = []lstm_cell = nn.LSTMCell(input_size=10, hidden_size=20)for x in X:hn, cn = lstm_cell(x, (hn, cn))output.append(hn)output = torch.stack(output)print(output.shape)
print(output)

2、GRU基本介绍

2.1 定义

门控循环单元(Gated Recurrent Unit,简称GRU)也是一种特殊类型的循环神经网络(RNN),具体来说,其属于LSTM的简化版,也可用于解决标准RNN在处理长序列数据时遇到的梯度消失和梯度爆炸问题

2.2 核心组件

同样是门控思想,其核心组件如下:

  • 更新门(Update Gate):更新门决定了网络在当前时间步应该保留多少过去的信息,以及应该丢弃多少新信息,它通过一个sigmoid激活函数来实现

  • 重置门(Reset Gate):重置门控制着网络在当前时间步应该忽略多少过去的信息,它也通过一个sigmoid激活函数来实现。

  • 候选隐藏状态(Candidate Hidden State):候选隐藏状态是当前时间步的潜在隐藏状态,它结合了重置门的输出和前一时间步的隐藏状态

2.3 调用示例

调用过程与RNN极其相似

编码器nn.GRU:

import torch 
from torch import nnX = torch.randn(5, 3, 10)
h0 = torch.zeros(1, 3, 20, dtype=torch.float32)gru = nn.GRU(input_size=10, hidden_size=20)
output, hn = gru(X, h0)print(output.shape, hn.shape)
print(output)
print(hn)

解码器nn.GRUCell:

import torch 
from torch import nnX = torch.randn(5, 3, 10)
hn = torch.zeros(3, 20, dtype=torch.float32)output = []gru_cell = nn.GRUCell(input_size=10, hidden_size=20)for x in X:hn = gru_cell(x, hn)output.append(hn)output = torch.stack(output)print(output.shape)
print(output)
http://www.yayakq.cn/news/725148/

相关文章:

  • vps自带ie浏览器不能访问网站学校网站建设情况说明书
  • 购物网站建设方案ppt福建seo关键词优化外包
  • 网站文章被采集什么是同ip网站
  • 上海网站建设微信开发wordpress小工具编辑
  • 怎么注册公司都需要什么手续sem优化策略
  • 网站后台邮箱设置电商怎么做营销推广w
  • 一个人做网站需要多久易企网
  • 国外创意网站设计网站备案 godaddy
  • 武昌做网站公司河南网站建设价格
  • 视差网站h5制作网站公司
  • 购物的网站功能中企动力登录
  • 济南营销型网站中文手机app开发软件
  • 网站域名域名贵阳网站建设有限公司
  • 免费企业网站建设条件智慧团建网页
  • 有了主机和域名后如何做网站o2o网站策划
  • 怎么做商业服务网站怎么用网站做word文件
  • 青海网站制作公司wordpress值得买
  • 百度商桥 手机网站html怎么做网站设计
  • 网站怎么做qq的授权登陆wordpress 公司模板
  • 科技软件公司网站模板鲜花网站源码
  • 浙江企业网站建设百度搜索推广是什么
  • 装饰网站建设运营做网站布为网
  • dedecms怎么部署网站风铃上做的网站发布时号码填写
  • 企业建站团队浙江建设信息港手机版
  • 企业网站备案信息查询附近的计算机培训班
  • 网站综合开发怎么做昆明市城市建设档案馆网站
  • 网站安全建设需求分析报告查看公司股票的网站
  • 医院网站制作多少钱深圳市建设工程招标网
  • 重庆 网站设计做影视网站会侵权犯法吗
  • 中华门窗网怎么做网站老薛主机 wordpress 打不开