随笔分类 - 机器学习
摘要:语言模型是自然语言处理的关键, 而机器翻译是语言模型最成功的基准测试。 因为机器翻译正是将输入序列转换成输出序列的 序列转换模型(sequence transduction)的核心问题。 序列转换模型在各类现代人工智能应用中发挥着至关重要的作用。机器翻译(machine translation)指的
阅读全文
摘要:到目前为止,我们只讨论了具有一个单向隐藏层的循环神经网络。 其中,隐变量和观测值与具体的函数形式的交互方式是相当随意的。 只要交互类型建模具有足够的灵活性,这就不是一个大问题。 然而,对一个单层来说,这可能具有相当的挑战性。 之前在线性模型中,我们通过添加更多的层来解决这个问题。 而在循环神经网络中
阅读全文
摘要:长期以来,隐变量模型存在着长期信息保存和短期输入缺失的问题。 解决这一问题的最早方法之一是长短期存储器(long short-term memory,LSTM)(Hochreiter and Schmidhuber, 1997)。 它有许多与门控循环单元( 9.1节)一样的属性。 有趣的是,长短期记
阅读全文
摘要:在 8.7节中, 我们讨论了如何在循环神经网络中计算梯度, 以及矩阵连续乘积可以导致梯度消失或梯度爆炸的问题。 下面我们简单思考一下这种梯度异常在实践中的意义: 我们可能会遇到这样的情况:早期观测值对预测所有未来观测值具有非常重要的意义。 考虑一个极端情况,其中第一个观测值包含一个校验和, 目标是在
阅读全文
摘要:我们在 4.7节中描述了多层感知机中的 前向与反向传播及相关的计算图。 循环神经网络中的前向传播相对简单。 通过时间反向传播(backpropagation through time,BPTT) (Werbos, 1990)实际上是循环神经网络中反向传播技术的一个特定应用。 它要求我们将循环神经网络
阅读全文
摘要:独热编码 回想一下,在train_iter中,每个词元都表示为一个数字索引, 将这些索引直接输入神经网络可能会使学习变得困难。 我们通常将每个词元表示为更具表现力的特征向量。 最简单的表示称为独热编码(one-hot encoding), 它在 3.4.1节中介绍过。 简言之,将每个索引映射为相互不
阅读全文
摘要:隐状态 无隐状态的神经网络 有隐状态的循环神经网络 循环神经网络(recurrent neural networks,RNNs) 是具有隐状态的神经网络。 (循环层、输出层) Xt为三维张量(时间步数num_steps,批量大小batch_size,词表大小vocab_size) Qt为三维张量(时
阅读全文
摘要:语言模型 马尔可夫模型和n元语法 自然语言统计 读取长序列数据 由于序列数据本质上是连续的,因此我们在处理数据时需要解决这个问题。 在 8.1节中我们以一种相当特别的方式做到了这一点: 当序列变得太长而不能被模型一次性全部处理时, 我们可能希望拆分这样的序列方便模型读取。 在介绍该模型之前,我们看一
阅读全文
摘要:对于序列数据处理问题,我们在 8.1节中 评估了所需的统计工具和预测时面临的挑战。 这样的数据存在许多种形式,文本是最常见例子之一。 例如,一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。 本节中,我们将解析文本的常见预处理步骤。 这些步骤通常包括: 将文本作为字符串加载到内存中。 将字符
阅读全文
摘要:在本质上,音乐、语音、文本和视频都是连续的。 如果它们的序列被我们重排,那么就会失去原有的意义。 比如,一个文本标题“狗咬人”远没有“人咬狗”那么令人惊讶,尽管组成两句话的字完全相同。 处理序列数据需要统计工具和新的深度神经网络架构。 为了简单起见,我们以 图8.1.1所示的股票价格(富时100指数
阅读全文
摘要:从ResNet到DesNet 稠密块体 DenseNet使用了ResNet改良版的“批量规范化、激活和卷积”架构(参见 7.6节中的练习)。 我们首先实现一下这个架构。 import torch from torch import nn from d2l import torch as d2l de
阅读全文
摘要:函数类 残差块 import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l class Residual(nn.Module): #@save def __in
阅读全文
摘要:训练深层神经网络是十分困难的,特别是在较短的时间内使他们收敛更加棘手。 本节将介绍批量规范化(batch normalization) (Ioffe and Szegedy, 2015),这是一种流行且有效的技术,可持续加速深层网络的收敛速度。 再结合在 7.6节中将介绍的残差块,批量规范化使得研究
阅读全文
摘要:Inception块 在GoogLeNet中,基本的卷积块被称为Inception块(Inception block)。具体结构如下图: 这四条路径都使用合适的填充来使输入与输出的高和宽一致,最后我们将每条线路的输出在通道维度上连结,并构成Inception块的输出。在Inception块中,通常调
阅读全文
摘要:NiN块 回想一下,卷积层的输入和输出由四维张量组成,张量的每个轴分别对应样本、通道、高度和宽度。 另外,全连接层的输入和输出通常是分别对应于样本和特征的二维张量。 NiN的想法是在每个像素位置(针对每个高度和宽度)应用一个全连接层。 如果我们将权重连接到每个空间位置,我们可以将其视为1*1卷积层,
阅读全文
摘要:VGG块 虽然AlexNet证明深层神经网络卓有成效,但它没有提供一个通用的模板(例如VGG块)来指导后续的研究人员设计新的网络。 在下面的几个章节中,我们将介绍一些常用于设计深层神经网络的启发式概念。 经典卷积神经网络的基本组成部分是下面的这个序列: 带填充以保持分辨率的卷积层; 非线性激活函数,
阅读全文
摘要:AlexNet相对于LeNet的主要优势包括: 1. 更深的网络结构 AlexNet有8层结构,而LeNet只有5层。网络更加深入有利于学习更抽象的高级特征。 2. 使用ReLU激活函数 AlexNet使用ReLU激活函数,避免梯度消失问题,使得深层网络的训练更加容易。 3. 引入Dropout操作
阅读全文
摘要:最大汇聚层和平均汇聚层 填充和步幅 多个通道 汇聚层的目的 1. 降低卷积层对位置的敏感性 卷积层的输出特征图对目标的位置是很敏感的。池化可以减少这种位置敏感性。比如我们做2x2最大池化,输出特征图的值就仅依赖于输入特征图2x2的区域,不再过于依赖位置信息。 2. 降低对空间采样表示的敏感性 卷积层
阅读全文
摘要:多输入通道 多输出通道 1*1卷积核 当以每像素为基础应用时,1*1卷积层相当于全连接层。 1*1卷积层通常用于调整网络层的通道数量和控制模型复杂性。
阅读全文
摘要:填充 步幅 总结: 填充可以增加输出的高度和宽度。这常用来使输出与输入具有相同的高和宽。同时填充可以解决原始图像通过卷积丢失边界有用信息的问题。 步幅可以减小输出的高和宽,例如输出的高和宽仅为输入的高和宽的(是一个大于的整数)。 填充和步幅可用于有效地调整数据的维度。
阅读全文