《动手学深度学习 Pytorch版》 8.4 循环神经网络

news2024/12/22 15:26:04

8.4.1 无隐状态的神经网络

对于无隐藏装态的神经网络来说,给定一个小批量样本 X ∈ R n × d \boldsymbol{X}\in\mathbb{R}^{n\times d} XRn×d,则隐藏层的输出 H ∈ R n × h \boldsymbol{H}\in\mathbb{R}^{n\times h} HRn×h 通过下式计算:

H = ϕ ( X W x h + b h ) \boldsymbol{H}=\phi(\boldsymbol{XW}_{xh}+\boldsymbol{b}_h) H=ϕ(XWxh+bh)

  • ϕ \phi ϕ 是隐藏层的激活函数
  • n n n 是批量大小
  • d d d 是输入维度
  • W x h ∈ R d × h \boldsymbol{W}_{xh}\in\mathbb{R}^{d\times h} WxhRd×h 是隐藏层权重
  • b h ∈ R 1 × h \boldsymbol{b}_h\in\mathbb{R}^{1\times h} bhR1×h 是偏置参数
  • h h h 是隐藏层数目。

接下来将隐藏变量 H \boldsymbol{H} H 作为输出层的输入:

O = H W h q + b q \boldsymbol{O}=\boldsymbol{HW}_{hq}+\boldsymbol{b}_q O=HWhq+bq

  • O ∈ R n × q \boldsymbol{O}\in\mathbb{R}^{n\times q} ORn×q 是输出变量
  • H W h q ∈ R h × q \boldsymbol{HW}_{hq}\in\mathbb{R}^{h\times q} HWhqRh×q 是权重参数
  • b q ∈ R 1 × q \boldsymbol{b}_q\in\mathbb{R}^{1\times q} bqR1×q 是输出层的偏置参数。

如果是分类问题,则可以用 s o f t m a x ( O ) softmax(\boldsymbol{O}) softmax(O) 计算输出的概率分布,此处无需多言。

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

引入隐状态后,情况就完全不同了。具体地说,当前时间步隐藏变量由当前时间步的输入与前一个时间步的隐藏变量一起计算得出:

H t = ϕ ( X t W x h + H t − 1 W h h + b h ) \boldsymbol{H}_t=\phi(\boldsymbol{X}_t\boldsymbol{W}_{xh}+\boldsymbol{H}_{t-1}\boldsymbol{W}_{hh}+\boldsymbol{b}_h) Ht=ϕ(XtWxh+Ht1Whh+bh)

  • X t ∈ R n × d \boldsymbol{X}_t\in\mathbb{R}^{n\times d} XtRn×d 是时间步 t t t 的小批量输入
  • H t ∈ R n × h \boldsymbol{H}_t\in\mathbb{R}^{n\times h} HtRn×h 是时间步 t t t 的隐藏变量
  • H t − 1 \boldsymbol{H}_{t-1} Ht1 是前一个时间步的隐藏变量
  • W h h ∈ R h × h \boldsymbol{W}_{hh}\in\mathbb{R}^{h\times h} WhhRh×h 是权重参数

由于在当前时间步中,隐状态使用的定义与前一个时间步中使用的定义相同,因此此计算是循环的(recurrent)。于是基于循环计算的隐状态神经网络被命名为循环神经网络(recurrent neural network)。

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

O t = H t W h q + b q \boldsymbol{O}_t=\boldsymbol{H}_t\boldsymbol{W}_{hq}+\boldsymbol{b}_q Ot=HtWhq+bq

在不同的时间步,循环神经网络也总是使用这些模型参数。因此,循环神经网络的参数开销不会随着时间步的增加而增加。

在这里插入图片描述

import torch
from d2l import torch as d2l
X, W_xh = torch.normal(0, 1, (3, 1)), torch.normal(0, 1, (1, 4))
H, W_hh = torch.normal(0, 1, (3, 4)), torch.normal(0, 1, (4, 4))
torch.matmul(X, W_xh) + torch.matmul(H, W_hh)
tensor([[-0.9743,  0.4619, -0.7949,  0.3287],
        [ 5.9413,  2.1961,  0.6053,  0.1704],
        [-1.0903, -0.2396, -1.0930, -0.8530]])
torch.matmul(torch.cat((X, H), 1), torch.cat((W_xh, W_hh), 0))
tensor([[-0.9743,  0.4619, -0.7949,  0.3287],
        [ 5.9413,  2.1961,  0.6053,  0.1704],
        [-1.0903, -0.2396, -1.0930, -0.8530]])

8.4.3 基于循环神经网络的字符级语言模型

以 “machine” 为例:

在这里插入图片描述

8.4.4 困惑度(Perplexity)

我们使用困惑度来评估模型。

一个更好的语言模型应该能让我们更准确地预测下一个词元,所以我们可以通过一个序列中所有的 n n n 个词元的 交叉熵损失的平均值 来衡量:

1 n ∑ t = 1 n − log ⁡ P ( x t ∣ x t − 1 , … , x 1 ) \frac{1}{n}\sum^n_{t=1}-\log{P(x_t|x_{t-1},\dots,x_1)} n1t=1nlogP(xtxt1,,x1)

由于历史原因,自然语言处理的科学家更喜欢使用困惑度(perplexity)的。简而言之,它是上式的指数:

exp ⁡ ( − 1 n ∑ t = 1 n log ⁡ P ( x t ∣ x t − 1 , … , x 1 ) ) \exp\left(-\frac{1}{n}\sum^n_{t=1}\log{P(x_t|x_{t-1},\dots,x_1)}\right) exp(n1t=1nlogP(xtxt1,,x1))

练习

(1)如果我们使用循环神经网络来预测文本序列中的下一个字符,那么任意输出所需的维度是多少?

啥叫“任意输出”?输出应该和输入是一个形状。


(2)为什么循环神经网络可以基于文本序列中所有先前的词元,在某个时间步表示当前词元的条件概率?

因为每个时间步的输入都有上一个时间步的输出。


(3)如果基于一个长序列进行反向传播,梯度会发生什么状况?

更容易出现梯度消失或者梯度爆炸。


(4)与本节中描述的语言模型相关的问题有哪些?

略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1083664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2023研电赛】商业计划书命题:基于三维视觉感知的可重构智能表面通信设计

该作品参与极术社区组织的2023研电赛作品征集活动,欢迎同学们投稿,获取作品传播推广,并有丰富礼品哦~ 基于三维视觉感知的可重构智能表面通信设计 参赛单位:华北水利水电大学 参赛队伍:创新小组 指导老师:邵…

揭秘光耦合器继电器:了解其功能和应用

在现代电子领域,光耦合器继电器已成为重要组件,可实现各种电路之间的无缝通信。这些小型但功能强大的设备广泛用于从家庭自动化到工业控制系统的各种应用。在本文中,我们将深入研究光耦合器继电器的工作原理,并探讨其广泛采用背后…

外汇天眼:又一平台被假冒,投资者交友误入假BOQ惨遭杀猪盘!

我们都知道,现在网站制作的门槛越来越低,只要懂点皮毛就很容易模仿别人的网站。因为道理很简单,拷贝正规网站前台的样式表和前端代码,然后找个开源的后台程序一对接,网站就做好了。正是如此,一些骗子就利用…

ikuai配置

ikuai配置 一.安装爱快路由二.进入爱快路由web界面三.配置外网设置四.配置DHCP服务器(爱快默认未启用此服务,不配置此步网段内主机获取不到ip也就无法上网) 一.安装爱快路由 爱快路…

【SCSS篇】Vite+Vue3项目全局引入scss文件

文章目录 前言一、安装与使用1.1 安装1.2 scss 全局文件编写1.2.1 概述 1.3 全局引入和配置1.4 组件内使用 vue2 项目引入 sass附:忽略ts类型检测 前言 Sass 是世界上最成熟、最稳定、最强大的专业级CSS扩展语言!在日常项目开发过程中使用非常广泛&…

信钰证券:9月以来A股20家银行 获机构不同批次调研

Wind数据显现,自9月份以来,已经有20家银行获安排不同批次调研。其间常熟银行、瑞丰银行被调研次数较多,别离为20次、11次;宁波银行、渝农商行获安排调研家数居前,别离为206家、128家。从上市银行宣布的调研情况来看&am…

知识图谱03——安装pytorch与torch-geometric

参考自https://blog.csdn.net/Andrew_zjc/article/details/117914736 下载pytorch 查阅自己电脑cuda版本 打开命令行,输入 nvidia-smi可以看到我电脑cuda版本12.0,pytorch版本向下兼容 登陆torch官网下载,https://pytorch.org/ 没有12.0,…

【保姆级】网络安全工程师学习成长路线,就业前景,薪资待遇分享

前言 最近总能在网上看到很多诸如:“怎样成为网络信息安全工程师”等相关问题,这可能与近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,似乎网络信息安全工程师随之成为炙手可热的职业。 待…

智能照片修复软件Topaz Video AI mac中文新增功能

Topaz Video AI mac是一款使用人工智能技术对视频进行增强和修复的软件。它可以自动降噪、去除锐化、减少压缩失真、提高清晰度等等。Topaz Video AI可以处理各种类型的视频,包括低分辨率视频、老旧影片、手机录制的视频等等。 使用Topaz Video AI非常简单&#xf…

视频美颜SDK,提升企业视频通话质量与形象

在今天的数字时代,视频通话已经成为企业与客户、员工之间不可或缺的沟通方式。然而,由于网络环境、设备性能等因素的影响,视频通话中的画面质量往往难以达到预期效果。为了提升视频通话的质量与形象,美摄美颜SDK应运而生&#xff…

顶顶通ASR安装配置说明

联系顶顶通申请Asrproxy授权,勾选asrproxy和asrserver模块。 下载语音识别模型 链接:https://pan.baidu.com/s/1IuDkDeytZOqf7tAbIb6h1Q 提取码:6vg6 安装asrproxy到/ddt/asrproxy,模型解压到 /ddt/asrproxy/model 对接mod_vad asrproxy.…

如何一站式解决跨境电商难题?

跨境电商经营面临着众多挑战,如海外IP访问限制、账号封禁风险等。然而,借助指纹浏览器的一站式解决方案,跨境电商可以轻松应对这些难题,实现顺畅的全球业务拓展。 一、跨境电商面临的挑战: 跨境电商经营面临以下挑战…

安道亮相深圳国际全触与显示展,展示最新商显研发成果!

10月11日,2023深圳国际全触与显示展在深圳举行,安道及晟沃携最新智能交互一体机、会议配件等最新商显产品亮相,现场真实智能会议场景,全面展现安道在智慧终端方面的卓越研发实力和创新应用能力,吸引了众多观众前来展台…

【AGC】云托管状态一直是“上线中”的问题

【关键字】 AGC、云托管、网址域名 【问题描述】 有开发者反馈开通了云托管服务,然后进行了相关域名设定,等待激活,无法活动,状态一直是‘上线中’。 ​ ​ 开通托管已经一天了一直卡着,状态一直是“上线中”。并且…

Kafka保证消息幂等以及解决方案

1、幂等的基本概念 幂等简单点讲,就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会产生任何副作用。幂等分很多种,比如接口的幂等、消息的幂等,它是分布式系统设计时必须要考虑的一个方面。 查询操作(天然幂等…

如何使用数字化系统赋能企业营销?数字化系统对于企业的作用?

数字化系统对于企业的营销活动能够提供多方面的帮助。 1. 数字化系统可以帮助企业更精准地了解客户的需求和行为,从而更好地定位产品和服务。如蚓链数字化营销系统可以通过数据分析和挖掘,帮助企业深入了解客户群体的特点和喜好,进而调整企业…

zabbix监控项

一、监控项(items) 1、获取监控数据的方式: ① zabbix-agent:代理程序是在被监控主机上运行的软件,负责收集和报告有关主机性能和状态的数据,监控系统通过与代理程序通信来获取数据。 ② SNMP&#xff1…

java基础 递归

递归注意事项: 递归算法遍历目录 递归算法删除目录: package wwx;import jdk.swing.interop.SwingInterOpUtils;import java.io.File; import java.io.IOException;public class Test {public static void main(String[] args) {File f new File(&quo…

【HarmonyOS】低代码平台组件拖拽使用技巧之滚动容器

【关键字】 HarmonyOS、低代码平台、组件拖拽、滚动容器 1、写在前面 上一篇中我们介绍了低代码平台组件库中的堆叠容器的一些拖拽技巧,本篇我们继续,今天带大家一些来看一个新的组件——滚动容器。关于滚动容器的直接使用其实很简单,所以这…

2023年医药商业行业发展研究报告

第一章 行业概况 1.1 定义 医药商业行业,作为医药领域的重要组成部分,扮演着至关重要的角色。这一行业专注于医药商品的经营与流通,确保药品能够有效、安全地到达消费者手中。随着医药科技的进步和市场需求的增长,医药商业行业在…