随笔分类 - 深度学习
摘要:AdaGrad 算法根据自变量在每个维度的梯度值调整各个维度的学习率,从而避免统一的维度难以适应所有维度的问题。 特点: 1. 小批量随机梯度按元素累加变量,出现在学习率的分母项中。(若目标函数有关自变量的偏导数一直都较大,那么学习率下降较快;反之亦然。) 2. 若迭代早期下降过快 + 当前解仍然不
阅读全文
摘要:DenseNet与残差网络(ResNet)有区别也类似。区别如下: 在跨层连接上:ResNet(左)使⽤相加;DenseNet(右)使⽤连结。 DenseNet将模块 A 直接跟模块 B 后⾯的所有层连接在了⼀起。这也是它被称 为“稠密连接”的原因。 DenseNet的主要构建模块是稠密块(dens
阅读全文
摘要:论文连接: "Going deeper with convolutions" 之所以名为“GoogLeNet”而非“GoogleNet”,文章说是为了向早期的LeNet致敬。在2014年的ImageNet图像识别挑战赛中,⼀个名叫GoogLeNet的⽹络结构⼤放异彩 。它虽然在名字上向LeNet致敬
阅读全文
摘要:LeNet、AlexNet和VGG在设计上的共同之处是:先以由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。 其中,AlexNet和VGG对LeNet的改进主要在于如何对这两个模块加宽(增加通道数)和加深。本节我们介绍⽹络中的⽹络(NiN)—— 它提出了另外⼀个思路,即串
阅读全文
摘要:AlexNet在LeNet的基础上增加了3个卷积层。但AlexNet作者对它们的卷积窗⼝、输出通道数和构造顺序均做了⼤量的调整。虽然AlexNet指明了深度卷积神经⽹络可以取得出⾊的结果,但并没有提供简单的规则以指导后来的研究者如何设计新的⽹络。 VGG,它的名字来源于论⽂作者所在的实验室Visua
阅读全文
摘要:在上一篇提到的LeNet中,虽然LeNet可以在早期的⼩数据集上取得好的成绩,但是在更⼤的真实数据集上的表现并不尽如⼈意。因为: 1. 神经⽹络计算复杂;训练⼀个多通道、多层和有⼤量参数的卷积神经⽹络在当年很难完成。 2. 当时没有⼤量深⼊研究参数初始化和⾮凸优化算法等诸多领域,导致复杂的神经⽹络的
阅读全文
摘要:今天主要学习了利用torch中的nn模块定义 类,下面的代码包含对于模型类的构建以及参数访问,简便的可以使用‘net = nn.Sequential(NestMLP(), nn.Linear(30, 20), FancyMLP())’构建模型,默认进行初始化。 输出结果 输出结果 输出结果 输出结果
阅读全文
摘要:⽐赛数据分为训练数据集和测试数据集。两个数据集都包括每栋房⼦的特征,如街道类型、建造年份、房顶类型、地下室状况等特征值。这些特征值有连续的数字、离散的标签甚⾄是缺失值“na”。只有训练数据集包括了每栋房⼦的价格,也就是标签。我们可以访问⽐赛⽹⻚,下载这些数据集。 一、导包 二、导入数据 输出结果:
阅读全文
摘要:一、问题描述: 主要出现了‘ValueError: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216 from C header, got 192 from PyObject’问题。全部错误代码如下
阅读全文
摘要:一、衰减和爆炸 当神经⽹络的层数较多时,模型的数值稳定性容易变差。例如假设权重分别为0.2和5,$0.2^{30} \approx 1\times 10^{ 21}$(此时得到一个很小的数,会导致神经元学习非常慢,从而导致 衰减 。),$5^{30} \approx 9\times 10^{20}$
阅读全文
摘要:一、正向传播 ( 一 ) 定义 正向传播是指对神经⽹络沿着从输⼊层到输出层的顺序,依次计算并存储模型的中间变量(包括输出)。 为简单起⻅,假设输⼊是⼀个特征为 $x \in R^d$ 的样本,且不考虑偏差项,那么中间变量: $$z = W^{(1)}x$$ 其中 $$W^{(1)} \in R^{h
阅读全文
摘要:深度学习模型常常使⽤丢弃法(dropout)来应对过拟合问题。丢弃法有⼀些不同的变体。本节中提到的丢弃法特指倒置丢弃法(inverted dropout)。 1. 函数将以 的概率丢弃 中的元素。 2. 运⾏例⼦来测试⼀下 dropout 函数。其中丢弃概率分别为0、0.5和1。 丢弃率为0.5 丢
阅读全文
摘要:过拟合现象,即模型的训练误差远⼩于它在测试集上的误差。虽然增⼤训练数据集可能会减轻过拟合,但是获取额外的训练数据往往代价⾼昂。本节介绍应对过拟合问题的常⽤⽅法:权重衰减(weight decay)。 一、方法 权重衰减等价于 范数正则化(regularization)。正则化通过为模型损失函数添加惩
阅读全文
摘要:一、训练误差和泛化误差 对于一个模型,并不是在本训练集下的准确率越高越好,很可能会因为过拟合,导致在本模型的训练集测试效果好,但在其他数据集的效果差。由此,有两个误差概念: 训练误差: 指该模型在训练数据集上表现的误差。 泛化误差: 指该模型放到任一个数据集下表现的误差,取近似误差。泛化误差更具参考
阅读全文
摘要:其他博客: 多层感知机概述:https://www.cnblogs.com/somedayLi/p/12313804.html 多层感知机从零开始实现:https://www.cnblogs.com/somedayLi/p/12359167.html 1. 使⽤Gluon来实现上⼀节中的多层感知机。
阅读全文
摘要:其他博客: 多层感知机概述:https://www.cnblogs.com/somedayLi/p/12313804.html 多层感知机简洁实现:https:////www.cnblogs.com/somedayLi/p/12359420.html 下⾯实现⼀个多层感知机。⾸先导⼊实现所需的包或模
阅读全文
摘要:⾸先导⼊本节实现所需的包或模块。 1.获取数据集 使⽤Fashion MNIST数据集,并设置批量⼤⼩为256。 2.初始化模型参数 跟线性回归中的例⼦⼀样,我们将使⽤向量表示每个样本。已知每个样本输⼊是⾼和宽均为28像素的图像。模型的输⼊向量的⻓度是$28 \times 28 =784$:该向量的
阅读全文
摘要:一、Tensor用于自动求梯度 "tensor"这个单词⼀般可译作“张量”,张量可以看作是⼀个多维数组。标量可以看作是0维张量,向量可以看作1维张量,矩阵可以看作是⼆维张量。 在深度学习中,我们经常需要对函数求梯度(gradient)。PyTorch提供的 包能够根据输⼊和前向传播过程⾃动构建计算图
阅读全文
摘要:本节将介绍如何只利⽤ 和 来实现⼀个线性回归的训练。 ⾸先,导⼊本节中实验所需的包或模块,其中的matplotlib包可⽤于作图,且设置成嵌⼊显示。 ⾸先,导⼊本节中实验所需的包或模块: 一、生成数据集 我们构造⼀个简单的⼈⼯训练数据集,它可以使我们能够直观⽐较学到的参数和真实的模型参数的区 别。设
阅读全文
摘要:一、导入所需的包或模块: 运行环境:win10 运行平台: python版本:python3.7
阅读全文