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

科技软件公司网站模板下载网站制作技巧

科技软件公司网站模板下载,网站制作技巧,六盘水合肥电商网站建设,wordpress 技术交流群目录 一、GRU提出的背景:1.RNN存在的问题:2.GRU的思想: 二、更新门和重置门:三、GRU网络架构:1.更新门和重置门如何发挥作用:1.1候选隐藏状态H~t:1.2隐藏状态Ht: 2.GRU: 四、底层源码…

目录

  • 一、GRU提出的背景:
    • 1.RNN存在的问题:
    • 2.GRU的思想:
  • 二、更新门和重置门:
  • 三、GRU网络架构:
    • 1.更新门和重置门如何发挥作用:
      • 1.1候选隐藏状态H~t:
      • 1.2隐藏状态Ht:
    • 2.GRU:
  • 四、底层源码:
  • 五、Pytorch版代码:

一、GRU提出的背景:

1.RNN存在的问题:

循环神经网络讲解文章

由于RNN的隐藏状态ht用于记录之前的所有序列信息,而对于长序列问题来说ht会记录太多序列信息导致序列时序特征区分度很差(最前面的序列特征因为进行了太多轮迭代往往不太好从ht中提取),因此一些比较靠前但很重要的序列特征在ht中可能就不太被重视,而一些比较靠后但没用的序列特征在ht中被过于关注。

2.GRU的思想:

GRU的思想是如何将隐藏状态ht中一些重要的序列信息给予高的关注,而一些不重要的序列信息给予低的关注。

  • 对于需要关注的序列信息,使用更新门来提高关注度
  • 对于需要遗忘的序列信息,使用遗忘门来降低关注度

二、更新门和重置门:

GRU提出更新门和重置门的思想来改变隐藏状态ht中不同序列信息的关注度。
在这里插入图片描述
更新门和重置门可以分别看做一个全连接层的隐藏层,这样的话上图就等价于两个并排的隐藏层,其中:

  • 每个隐藏层都接收之前时间步的隐藏状态Ht-1和当前时间步的输入batch。
  • 更新门和重置门有各自的可学习权重参数和偏置值,公式含义类似传统RNN。
  • Rt 和 Zt 都是根据过去的隐藏状态 Ht-1 和当前输入 Xt 计算得到的 [0,1] 之间的量(激活函数)。

三、GRU网络架构:

1.更新门和重置门如何发挥作用:

重置门对过去t个时间步的序列信息(Ht-1)进行选择,更新门对当前一个时间步的序列信息(Xt)进行选择。具体原理如下:

1.1候选隐藏状态H~t:

候选隐藏状态既保留了之前的隐藏状态Ht-1,又保留了当前一个时间步的序列信息Xt。
在这里插入图片描述
因为Rt是一个[0,1] 之间的量,所以Rt×Ht-1是对之前的隐藏状态Ht-1进行一次选择:Rt 在某个位置的值越趋近于0,则表示Ht-1这个位置的序列信息越倾向于被丢弃,反之保留。

综上,重置门的作用是对过去的序列信息Ht-1进行选择,Ht-1中哪些序列信息当前的输出是有用的,应该被保存下来,而哪些序列信息是不重要的,应该被遗忘。

1.2隐藏状态Ht:

在这里插入图片描述
因为Zt是一个[0,1] 之间的量,如果Zt全为0,则当前隐藏状态Ht为当前候选隐藏状态,该候选隐藏状态不仅保留了之前的序列信息,还保留了当前时间步batch的序列信息;如果Zt全为1,则当前隐藏状态Ht为上一个时间步的隐藏状态。

综上,更新门的作用是决定当前一个时间步的序列信息是否保留,如果Zt全为0,则说明当前时间步batch的序列信息是有用的(候选隐藏状态包含之前的序列信息和当前一个时间步的序列信息),保留下来加入到隐藏状态Ht中;如果Zt全为1,则说明当前时间步batch的序列信息是没有用的,丢弃当前batch的序列信息,直接使用上一个时间步的隐藏状态Ht-1作为当前的隐藏状态Ht。(Ht-1仅包含之前的序列信息,不包含当前一个时间步的序列信息)

2.GRU:

GRU网络架构如下,可以看做是三个隐藏层并排的架构。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、底层源码:

代码中num_hiddens表示隐藏层神经元个数,由于重置门、更新门的输出维度相同,所以重置门和更新门两个隐藏层的神经元个数也是一样的=num_hiddens。

import torch
from torch import nn
from d2l import torch as d2l# 数据预处理,获取datalodaer和字典
batch_size, num_steps = 32, 35
train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)# 初始化可学习参数
def get_params(vocab_size, num_hiddens, device):num_inputs = num_outputs = vocab_sizedef normal(shape):return torch.randn(size=shape, device=device) * 0.01def three():return (normal((num_inputs, num_hiddens)), normal((num_hiddens, num_hiddens)),torch.zeros(num_hiddens, device=device))W_xz, W_hz, b_z = three()W_xr, W_hr, b_r = three()W_xh, W_hh, b_h = three()W_hq = normal((num_hiddens, num_outputs))b_q = torch.zeros(num_outputs, device=device)params = [W_xz, W_hz, b_z, W_xr, W_hr, b_r, W_xh, W_hh, b_h, W_hq, b_q]for param in params:param.requires_grad_(True)return params# 初始化隐藏状态
def init_gru_state(batch_size, num_hiddens, device):return (torch.zeros((batch_size, num_hiddens), device=device),)# 定义门控循环单元模型
def gru(inputs, state, params):W_xz, W_hz, b_z, W_xr, W_hr, b_r, W_xh, W_hh, b_h, W_hq, b_q = paramsH, = stateoutputs = []for X in inputs:Z = torch.sigmoid((X @ W_xz) + (H @ W_hz) + b_z)R = torch.sigmoid((X @ W_xr) + (H @ W_hr) + b_r)H_tilda = torch.tanh((X @ W_xh) + ((R * H) @ W_hh) + b_h)H = Z * H + (1 - Z) * H_tildaY = H @ W_hq + b_qoutputs.append(Y)return torch.cat(outputs, dim=0), (H,)# 训练
vocab_size, num_hiddens, device = len(vocab), 256, d2l.try_gpu()
num_epochs, lr = 500, 1
model = d2l.RNNModelScratch(len(vocab), num_hiddens, device, get_params,init_gru_state, gru)
d2l.train_ch8(model, train_iter, vocab, lr, num_epochs, device)

五、Pytorch版代码:

num_inputs = vocab_size
# 调用pytorch构建网络结构
gru_layer = nn.GRU(num_inputs, num_hiddens)
model = d2l.RNNModel(gru_layer, len(vocab))
model = model.to(device)
d2l.train_ch8(model, train_iter, vocab, lr, num_epochs, device)
http://www.yayakq.cn/news/229882/

相关文章:

  • 河南网站建设定制成都网站建设详细内容
  • 潮阳网站建设公司想学网站建设优化去哪
  • html网站建设源码wordpress用户验证失败
  • 做彩票网站推广网站做关键词排名有必要吗
  • wordpress站长之家怎么做捐款网站
  • 绿色环保材料网站模板html代码编辑器
  • win 2003 网站 管理员开福区网站建设中
  • 城市建设理论研究官方网站服务好质量好的app开发
  • 怎么做网站卖东西公司简介怎么写吸引人
  • 山西科技网站建设旅游网站建设平台分析
  • cms站群管理系统wordpress图集功能
  • 上门做美容的网站网络营销战略的内容
  • 网站设计制作步骤游戏自助充值网站怎么做
  • 有什么网站可以接活做设计标志电子商务网站建设臧良运课后答案
  • jsp网站开发实例实验报告wordpress 主图截图
  • 三位数的域名网站国际军事新闻最新消息头条
  • 免费自助网站班级优化大师头像
  • 广州网站制作报价网站后台上传图片做难吗?
  • 做货代哪个网站上好找客户怎样上传网站到百度
  • 石家庄市住房建设局网站宝格丽网站建设策划案
  • 汕头如何建设网站设计外国人做汉字网站
  • 在哪些网站上做推广好网站建设的客户在哪里
  • 企业网站结构视频分享网站建设难吗
  • 教材资源网站建设网站 建设 拖拉 源码 系统
  • 网站引入百度地图wordpress多站点 用户同步
  • 给前端做网站的图片叫什么企业图标设计图案大全
  • 盐城网站建设建站如何推广自己的个人网站呢
  • 广州哪里做网站华山论剑西凤酒网站建设
  • 怎么验证网站备案密码是否正确python爬虫源码下载
  • 哪个设计网站做兼职好网页设计与制作字体设置