层和块块块(block):描述单个层、由多个层组成的组件或整个模型本身。使用块进行抽象的一个好处是可以将一些块组合成更大的组件, 这一过程通常是递归的。 通过定义代码来按需生成任意复杂度的块, 我们可以通过简洁的代码实现复杂的神经网络。代码实现:从编程的角度来看,块由类(class)表示。 它的任何子类都必须定义一个将其输入转换为输出的前向传播函数,并且必须存储任何必需的参数(有些块不需要任...
自定义层、读写文件、GPU自定义曾深度学习成功背后的一个因素是神经网络的灵活性: 我们可以用创造性的方式组合不同的层,从而设计出适用于各种任务的架构。 例如,研究人员发明了专门用于处理图像、文本、序列数据和执行动态规划的层。 未来,你会遇到或要自己发明一个现在在深度学习框架中还不存在的层。
不带参数的层CenteredLayer类要从其输入中减去均值。 要构建它,我们只需继承基础层类并实现...
序列模型输入或者输出中包含有序列数据的模型叫做序列模型。
语音识别: 输入输出都为序列。
音乐生成: 输出为序列。
情感分析:输入为序列。
DNA序列分析:输入为序列。
机器翻译:输入输出都为序列。
视频行为识别:输入为序列。
命名实体识别:输入输出都为序列。
序列数据举例
统计工具
如何求p
小结
内插法(在现有观测值之间进行估计)和外推法(对超出已知观测范围进行预测)...
循环神经网络输出发生在观察之前预测输出
n次交叉熵的平均值
语言模型本质是分类模型 判断下一个词是词典中的类别
困惑度对平均交叉熵做个指数
小结
对隐状态使用循环计算的神经网络称为循环神经网络(RNN)。
循环神经网络的隐状态可以捕获直到当前时间步序列的历史信息。
循环神经网络模型的参数数量不会随着时间步的增加而增加。
我们可以使用循环神经网络创建字符级语言模型。
我们可以使用困惑度来评...
语言模型和数据集语言模型用途:
预测文本出现的概率
生成文本
判断哪个序列更常见
小结
语言模型是自然语言处理的关键。
n元语法通过截断相关性,为处理长序列提供了一种实用的模型。
长序列存在一个问题:它们很少出现或者从不出现。
齐普夫定律支配着单词的分布,这个分布不仅适用于一元语法,还适用于其他n元语法。
通过拉普拉斯平滑法可以有效地处理结构丰富而频率不足的低频词词组。
读取...
从全连接层到卷积多层感知机适合处理表格数据,其中行对应样本,列对应特征。对于表格数据,我们寻找的模式可能涉及特征之间的交互,但是不能预先假设任何与特征交互相关的先验结构。 积神经网络(convolutional neural networks,CNN)是机器学习利用自然图像中一些已知结构的创造性方法。
不变性
平移不变性(translation invariance):不管检测对象出现在图像...
图像卷积互相关运算严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cross-correlation),而不是卷积运算。在卷积层中,输入张量和核张量通过互相关运算产生输出张量。
12345678910111213141516171819import torchfrom torch import nnfrom d2l import torch as d2ldef corr2...
填充、步幅、多输入多输出通道填充为什么要填充由于我们通常使用小卷积核,因此对于任何单个卷积,我们可能只会丢失几个像素。 但随着我们应用许多连续卷积层,累积丢失的像素数就多了。 解决这个问题的简单方法即为填充(padding)。
填充定义以及举例在输入图像的边界填充元素(通常填充元素是0)。输出大小:(输入-卷积核+步幅+填充)/ 步幅
12345678910111213141516...
汇聚层与卷积神经网络LeNet汇聚层双重目的:降低卷积层对位置的敏感性,同时降低对空间降采样表示的敏感性。
最大汇聚层和平均汇聚层与卷积层类似,汇聚层运算符由一个固定形状的窗口组成,该窗口根据其步幅大小在输入的所有区域上滑动,为固定形状窗口(有时称为汇聚窗口)遍历的每个位置计算一个输出。 不同于卷积层中的输入与卷积核之间的互相关计算,汇聚层不包含参数。 相反,池运算是确定性的,我们通常计算汇...