
动手学深度学习
l_yiyu
这个作者很懒,什么都没留下…
展开
-
Task06 凸优化与深度学习
优化与深度学习1.优化与估计尽管优化方法可以最小化深度学习中的损失函数值,但本质上优化方法达到的目标与深度学习的目标并不相同。优化方法目标:训练集损失函数值 深度学习目标:测试集损失函数值(泛化性)2.优化在深度学习中的挑战局部最小值 鞍点 梯度消失2.1局部最小值对于目标函数f(x),如果f(x)在x上的值比在x邻近的其他点更小,那么f(x)可能是一个局部...原创 2020-02-23 13:16:33 · 1085 阅读 · 0 评论 -
Task06 残差网络 ResNet
残差网络(ResNet)深度学习的问题:深度CNN网络达到一定深度后再一味地增加层数并不能带来进一步地分类性能提高,反而会招致网络收敛变得更慢,准确率也变得更差。恒等映射:左边:f(x)=x右边:f(x)-x=0 (易于捕捉恒等映射的细微波动)残差块的设计:class Residual(nn.Module): # 本类已保存在d2lzh_pytorch包中方便以后使用...原创 2020-02-21 14:27:28 · 195 阅读 · 0 评论 -
Task06 批量归一化
批量归一化批量归一化层,它能让较深的神经网络的训练变得更加容易。• 对输入的标准化(浅层模型)处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。标准化处理输入数据使各个特征的分布相近• 批量归一化(深度模型)利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更稳定。1.对全连接层做批量归一化全连接层的批量归一化...原创 2020-02-21 14:09:50 · 239 阅读 · 0 评论 -
Task03 循环神经网络进阶(pytorch代码实现)
循环神经网络进阶⻔控循环神经⽹络(GRU)当时间步数较⼤或者时间步较小时, 循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但⽆法解决梯度衰减的问题。通常由于这个原因,循环神经⽹络在实际中较难捕捉时间序列中时间步距离较⼤的依赖关系。⻔控循环神经⽹络(GRU):捕捉时间序列中时间步距离较⼤的依赖关系CNN:GRU:• 重置⻔有助于捕捉时间序列⾥短期的依赖关系;...原创 2020-02-18 11:58:11 · 599 阅读 · 0 评论 -
Task02 循环神经网络基础
循环神经网络本节介绍循环神经网络,下图展示了如何基于循环神经网络实现语言模型。•裁剪梯度循环神经网络中较容易出现梯度衰减或梯度爆炸,这会导致网络几乎无法训练。裁剪梯度(clip gradient)是一种应对梯度爆炸的方法。假设我们把所有模型参数的梯度拼接成一个向量 g ,并设裁剪的阈值是 θ 。裁剪后的梯度的 L2 范数不超过 θ 。•困惑度我们通常使用困惑度(perplexit...原创 2020-02-17 18:26:57 · 152 阅读 · 0 评论 -
Task03 梯度消失、梯度爆炸、Kaggle房价预测
梯度消失、梯度爆炸以及Kaggle房价预测深度模型有关数值稳定性的典型问题是消失(vanishing)和爆炸(explosion)。当神经网络的层数较多时,模型的数值稳定性容易变差。假设一个层数为 L 的多层感知机的第 l 层 H(l) 的权重参数为 W(l) ,输出层 H(L) 的权重参数为 W(L) 。为了便于讨论,不考虑偏差参数,且设所有隐藏层的激活函数为恒等映射(identity m...原创 2020-02-17 16:07:26 · 229 阅读 · 0 评论 -
Task03 过拟合、欠拟合及其解决方案
1 模型选择、过拟合和欠拟合阅前小思考:在训练模型的时候,如果改变了实验中的模型结构和超参数的时候,会出现:当模型在训练数据集上更加准确时,它在测试数据集却不一定更加准确。这是为什么呢?1.1 训练误差和泛化误差在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error)。通俗来讲,前者指模型在训练数据集上表现出的误差,后者...原创 2020-02-17 15:48:05 · 232 阅读 · 0 评论