随笔分类 - 《动手学深度学习 Pytorch版》学习笔记
摘要:自注意力同时具有并行计算和最短的最大路径长度这两个优势。Transformer 模型完全基于注意力机制,没有任何卷积层或循环神经网络层。尽管 Transformer 最初是应用于在文本数据上的序列到序列学习,但现在已经推广到各种现代的深度学习中,例如语言、视觉、语音和强化学习领域。 10.7.1 模
阅读全文
摘要:在注意力机制中,每个查询都会关注所有的键-值对并生成一个注意力输出。由于查询、键和值来自同一组输入,因此被称为 自注意力(self-attention),也被称为内部注意力(intra-attention)。本节将使用自注意力进行序列编码,以及使用序列的顺序作为补充信息。 import math i
阅读全文
摘要:多头注意力(multihead attention):用独立学习得到的 h 组不同的线性投影(linear projections)来变换查询、键和值,然后并行地送到注意力汇聚中。最后,将这 h 个注意力汇聚的输出拼接在一起,并且通过另一个可以学习的线性投影进行变换,以产生最终输出。 对于 h 个注
阅读全文
摘要:10.4.1 模型 Bahdanau 等人提出了一个没有严格单向对齐限制的可微注意力模型。在预测词元时,如果不是所有输入词元都相关,模型将仅对齐(或参与)输入序列中与当前预测相关的部分。这是通过将上下文变量视为注意力集中的输出来实现的。 新的基于注意力的模型与 9.7 节中的模型相同,只不过 9.7
阅读全文
摘要:上一节使用的高斯核的指数部分可以视为注意力评分函数(attention scoring function),简称评分函数(scoring function)。 后续把评分函数的输出结果输入到softmax函数中进行运算。最后,注意力汇聚的输出就是基于这些注意力权重的值的加权和。该过程可描述为下图:
阅读全文
摘要:import torch from torch import nn from d2l import torch as d2l 1964 年提出的 Nadaraya-Watson 核回归模型是一个简单但完整的例子,可以用于演示具有注意力机制的机器学习。 10.2.1 生成数据集 根据下面的非线性函数生
阅读全文
摘要:10.1.1 生物学中的注意力提示 “美国心理学之父” 威廉·詹姆斯提出的双组件(two-component)框架: 非自主性提示:基于环境中物体的突出性和易见性 自主性提示:受到了认知和意识的控制 10.1.2 查询、键和值 注意力机制与全连接层或汇聚层区别开来的元素:是否包含自主性提示 在注意力
阅读全文
摘要:本节将介绍几大: 贪心搜索(greedy search)策略 穷举搜索(exhaustive search) 束搜索(beam search) 9.8.1 贪心搜索 贪心搜索已用于上一节的序列预测。对于输出序列的每一时间步 ,都从 中找到具有最高条件
阅读全文
摘要:循环神经网络编码器使用长度可变的序列作为输入,将其编码到循环神经网络编码器固定形状的隐状态中。 为了连续生成输出序列的词元,独立的循环神经网络解码器是基于输入序列的编码信息和输出序列已经看见的或者生成的词元来预测下一个词元。 要点: “<eos>”表示序列结束词元,一旦输出序列生成此词元,模型就会停
阅读全文
摘要:为了处理这种长度可变的输入和输出, 可以设计一个包含两个主要组件的编码器-解码器(encoder-decoder)架构: 编码器(encoder):它接受一个长度可变的序列作为输入,并将其转换为具有固定形状的编码状态。 解码器(decoder):它将固定形状的编码状态映射到长度可变的序列。 9.6.
阅读全文
摘要:机器翻译(machine translation)指的是将序列从一种语言自动翻译成另一种语言,基于神经网络的方法通常被称为神经机器翻译(neural machine translation)。 import os import torch from d2l import torch as d2l 9
阅读全文
摘要:之前的序列学习中假设的目标是在给定观测的情况下对下一个输出进行建模,然而也存在需要后文预测前文的情况。 9.4.1 隐马尔可夫模型中的动态规划 数学推导太复杂了,略。 9.4.2 双向模型 双向循环神经网络(bidirectional RNNs)添加了反向传递信息的隐藏层,以便更灵活地处理此类信息。
阅读全文
摘要:将多层循环神经网络堆叠在一起,通过对几个简单层的组合,产生一个灵活的机制。其中的数据可能与不同层的堆叠有关。 9.3.1 函数依赖关系 将深度架构中的函数依赖关系形式化,第 个隐藏层的隐状态表达式为: \[\boldsymbol{H}^{(l)}_t=\phi_l(\boldsymbol
阅读全文
摘要:解决隐变量模型长期信息保存和短期输入缺失问题的最早方法之一是长短期存储器(long short-term memory,LSTM)。它与门控循环单元有许多一样的属性。长短期记忆网络的设计比门控循环单元稍微复杂一些,却比门控循环单元早诞生了近 20 年。 9.2.1 门控记忆元 为了记录附加的信息,长
阅读全文
摘要:我们可能会遇到这样的情况: 早期观测值对预测所有未来观测值具有非常重要的意义。 考虑一个极端情况,其中第一个观测值包含一个校验和,目标是在序列的末尾辨别校验和是否正确。在这种情况下,第一个词元的影响至关重要。我们希望有某些机制能够在一个记忆元里存储重要的早期信息。如果没有这样的机制,我们将不得不给这
阅读全文
摘要:import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l batch_size, num_steps = 32, 35 train_iter, vocab =
阅读全文
摘要:%matplotlib inline import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l batch_size, num_ste
阅读全文
摘要:8.3.1 学习语言模型 依靠在 8.1 节中对序列模型的分析,可以在单词级别对文本数据进行词元化。基本概率规则如下: 例如,包含了四个单词的一个文本序列的概率是: \[P(
阅读全文