随笔分类 - 硕士课题-动手学深度学习
摘要:一、前言 1、有时,在应用连续的卷积之后,我们最终得到的输出远小于输入大小。这是由于卷积核的宽度和高度通常大于1所导致的。比如,一个 240×240像素的图像,经过 10 层 5×5的卷积后,将减少到 200×200 像素。如此一来,原始图像的边界丢失了许多有用的信息。而填充是解决此问题的最有效的方
阅读全文
摘要:一、前言 1、空间不变性:我们使用的无论哪种方法都应该和物体的位置无关 局部性:神经网络的底层应该只探索输入图像中的局部区域,而不考虑图像远处区域的内容,这就是“局部性”原则 平移不变性:不管出现在图像中的哪个位置,神经网络的底层应该对相同的图像区域做类似的相应 2、卷积神经网络(convoluti
阅读全文
摘要:一、前言 1、保存训练的模型以备将来在各种环境中使用 2、当运行一个耗时较长的训练过程时,最佳的做法是定期保存中间结果(检查点),以确保在服务器电源被不小心断掉时不会损失几天的计算结果 二、加载和保存张量 1、对于单个张量,我们可以直接调用load和save函数分别读写它们 import torch
阅读全文
摘要:一、前言 深度学习成功的背后一个因素是可以用创造性的方式组合广泛的层,从而设计出适合于各种任务的结构 二、不带参数的层 1、要构建一个层,我们只需继承基础层类并实现正向传播功能 # 构造不带参数的层 # 下面的CenteredLayer类要从其输入中减去均值。 import torch import
阅读全文
摘要:一、前言 1、深度学习框架提供默认随机初始化 2、深度学习框架提供了最常用的规则,也允许创建自定义初始化方法 3、默认情况下,Pytorch会根据一个范围均匀地初始化权重和偏置矩阵,这个范围是根据输入和输出维度计算出来的 二、内置初始化 1、下面代码将所有权重参数初始化为标准差为0.01的正态分布,
阅读全文
摘要:一、前言 1、访问参数,用于调试、诊断和可视化。 2、参数初始化 3、在不同模型组件间共享参数 具有单隐藏层的多层感知机 import torch from torch import nn # 定义模型 net = nn.Sequential(nn.Linear(4, 8), nn.ReLU(),
阅读全文
摘要:一、层 1、单一输出神经网络 接受一些输入 生成相应标量输出 具有一组相关参数(这些参数可以更新以优化某些感兴趣的目标函数) 2、多个输出神经网络(利用矢量化算法来描述) 接受一组输入 生成相应的输出 由一组可调整参数描述 3、对于多层感知机而言,整个模型接受原始输入(特征),生成输出(预测),并包
阅读全文
摘要:一、前言 1、在神经网络中,我们通常需要随机初始化模型的参数。我们可以这样理解 2、假设在一个多层感知机中,输出层只有一个元素(简化处理)。如果将每个隐藏单元的参数都初始化为相同的值,那么在正向传播时每个隐藏单元将根据相同的输入计算出相同的值,并传递至输出层。在反向传递中,每个隐藏单元的参数梯度值相
阅读全文
摘要:转载:https://zhuanlan.zhihu.com/p/25631496 1、梯度爆炸(gradient exploding)问题:参数更新过大,破坏了模型的稳定收敛 2、梯度消失(gradient vanishing)问题:参数更新过小,在每次更新时几乎不会移动,导致模型不能学习 3、梯度
阅读全文
摘要:一、前言 正向传播(forward propagation/forward pass)指的是:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。 二、步骤 1、为了简单起见,我们假设输入样本是 𝐱∈ℝ𝑑x∈Rd,并且我们的隐藏层不包括偏置项。这里的中间变量是: 2、其中𝐖(1)∈ℝℎ×
阅读全文
摘要:一、从零开始实现 1、实现 dropout_layer 函数,该函数以dropout的概率丢弃张量输入X中的元素,重新缩放剩余部分:将剩余部分除以1.0-dropout import torch from torch import nn from d2l import torch as d2l #
阅读全文
摘要:一、前言 在深度学习里面,除了用权重衰退来应对过拟合外,还用丢弃法(dropout)来应对过拟合 二、概念 在现代神经网络中,我们所指的丢弃法,通常是对输入层或者隐含层进行的操作: 1、以丢失概率P随机丢掉该层的部分隐藏单元 2、丢带的隐藏单元会被清零 3、没有丢掉的隐藏单元会除以1-p做拉伸 三、
阅读全文
摘要:def train_concise(wd): net = nn.Sequential(nn.Linear(num_inputs, 1)) for param in net.parameters(): param.data.normal_() loss = nn.MSELoss() num_epoch
阅读全文
摘要:一、生成数据集 #权重衰退是最广泛使用的正则化的技术之一 %matplotlib inline import torch from torch import nn from d2l import torch as d2l #𝜖 where 𝜖∼(0,0.012):表示噪音,是一个均值为0,方差
阅读全文
摘要:一、前言 1、怎么控制一个模型的容量 模型比较小(参数比较少) 每个参数选择的值比较小 2、正则化就是用来限制参数值的取值范围来控制模型容量 二、正则化 1、正则化的目的:防止过拟合 2、正则化其实可以理解为规则化。相当于一个限制,就是说可以给训练的目标函数加上一些规则(限制),让他们不要自我膨胀
阅读全文
摘要:一、前言 将模型在训练数据上拟合得比在潜在分布中更接近的现象称为过拟合(overfitting),用于对抗过拟合的技术称为正则化(regularization)。 二、训练误差与泛化误差 1、训练误差(training error):我们的模型在训练数据集上计算得到的误差。、 2、泛化误差(gene
阅读全文
摘要:2.1经验误差与过拟合 错误率(error rate) 分类错误的样本数目占样本总数的比例 精度(accuracy) 分类正确的样本数目占样本总数的比例;精度=1-错误率 误差(error) 学习器实际预测输出与样本的真实输出之间的差异 训练误差(training error)/经验误差(empir
阅读全文
摘要:1.1引言 机器学习所研究的主要内容 关于在计算机上从数据中产生“模型”(学习器)的算法,即“学习算法” 机器学习是研究关于“学习算法”的学问 1.2基本术语 学得模型前 数据集(data set) 一组记录的集合 示例(instance)/样本(sample) 数据集中每条关于一个事件或对象的描述
阅读全文
摘要:一、前言 1、和softmax实现一样,唯一的区别是我们模型含有两个全连接层 2、直接通过高级API更简洁实现多层感知机 3、对于相同的分类问题,多层感知机的实现和softmax回归的实现完全相同,只是多层感知机的实现增加了带有激活函数的隐藏层 二、模型 1、第一层是隐藏层,包含256个隐藏单元,并
阅读全文
摘要:一、前言 使用Fashion-MNIST图像分类数据集 import torch from torch import nn from d2l import torch as d2l #批量大小等于256 batch_size = 256 train_iter, test_iter = d2l.loa
阅读全文