李沐-动手学习深度学习v2

1前面的一些QA

1.1 reshape和view的差别

reshape的地址没有变(所以b要是改了的话,a也改了),view拷贝了一份。

1.2 detach

还是不太理解

2. 前置知识

2.1 矩阵计算

亚导数,将导数扩展到不可微的地方

矢量求导

(大概知道它们后面长什么样)
在这里插入图片描述
内积比较奇怪orz
在这里插入图片描述

分子布局

在这里插入图片描述
一般用分子布局方法

向量关于向量的求导

在这里插入图片描述
在这里插入图片描述
上图的解释:
自己对自己求导得到一个I矩阵,有些公式挺重要的。

2.2 自动求导

还不太懂orz

2.3 基础优化算法

梯度下降

在这里插入图片描述

小批量随机梯度下降(SGD)

·计算整个训练数据的梯度太昂贵了
DNN模型需要几分钟到几小时

在这里插入图片描述
批量值太大,(内存消耗太大了)浪费计算资源
批量值太小,难以充分利用计算资源

总结

  • 梯度下降通过不断沿着反梯度方向更新参数求解
  • SGD是深度学习的默认求解算法
  • 两个重要的超参数是批量大小和学习率

2.4 环境配置

!pip install d2l==0.14.
在这里插入图片描述

2.5 模型选择+过拟合和欠拟合

2.5.1 训练误差和泛化误差

训练误差:模型在训练数据上的误差
泛化误差:模型在新数据上的误差

2.5.2 验证数据集、测试数据集的分配

验证数据集:可用来调参
测试数据集: 只是能用1次,最终的,不允许再学了,相当于高考了(笑)
一般数据集不够用的话,把70%作为训练数据集,把30%作为测试数据集。对70%的训练数据集可以采取k折交叉验证的方法。

2.5.3 k-则交叉验证

在没有足够多数据时使用(这是常态)
算法:

  • 将训练数据分割成k块
  • for i=1,…,K
    • 使用第i块作为验证数据集,其余的作为训练数据集
  • 报告k个验证集误差的平均
  • 常用:k=5或10

2.5.4 过拟合和欠拟合

在这里插入图片描述

模型容量
  • 拟合各种函数的能力
  • 低容量的模型难以拟合训练数据
  • 高容量的模型可以记住所有的训练数据

在这里插入图片描述

VC维
  • 统计学习理论的一个核心思想
  • 对于一个分类模型,VC等于一个最大的数据集的大小,不管如何给定标号,都存在一个模型来对它进行完美分类

在这里插入图片描述
VC维度的效用
·提供理论解释模型的工作原理
·限制了训练误差和泛化误差之间的差距
在深度学习的实践中很少使用
·边界过于宽松
·难以计算深度神经网络的VC维数
·其他统计学习理论工具也是如此

2.6 权重衰退

2.6.1 使用均方范数作为硬性限制

在这里插入图片描述
限不限制b都差不多

2.6.2 使用均方范数作为柔性限制

在这里插入图片描述
在这里插入图片描述
这个\lambda使得w往下拉,使得模型的复杂性变低。

参数更新法则

在这里插入图片描述
解释:每次把W_t的值变小一点点,因为(1-n\lambda,在减一下原本的梯度方向。
在这里插入图片描述

2.6.3 代码

2.6.4 QA

3. 方法

3.1 丢弃法

3.1.1 使用动机

一个好的模型需要对输入数据的扰动鲁棒。

  • 使用有噪音的数据=Tikhonov正则,避免模型过拟合化
  • 丢弃法:在层之间加噪音

在这里插入图片描述

3.1.2 使用方法在这里插入图片描述

推理中的丢弃法

  • 正则项只在训练中使用;他们影响模型参数的更新
  • 在推理过程中,丢弃法直接返回输入
    h=dropout(h)
  • 这样也能保证确定性的输出,现在主流的话,把dropout当做一个正则项来看。

3.1.2 总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值