当前位置:网站首页>学习笔记5-梯度爆炸和梯度消失(K折交叉验证)
学习笔记5-梯度爆炸和梯度消失(K折交叉验证)
2022-04-23 06:19:00 【什么时候才能像大佬一样厉害】
1、梯度消失、梯度爆炸
- 梯度消失和梯度爆炸
- 考虑到环境因素的其他问题
1.1 本次课程主要任务
- 了解学习梯度消失与梯度爆炸产生的原因以及怎么样解决。
- 考虑到环境因素的其他问题(协变量偏移,标签偏移,概念偏移)
1.2 学习收获总结
- 当神经网络的层数较多时,模型的数值稳定性容易变差。容易发生梯度消失以及梯度爆炸。
- 随机初始化可以有效减缓梯度爆炸。
- 协变量偏移:用A训练集训练的模型,被用于B测试集。(A:真实的猫狗图片,B:卡通猫狗图片)
- 标签便宜:测试集出现训练集中没有的标签。
2、梯度消失和梯度爆炸
深度模型有关数值稳定性的典型问题是消失(vanishing)和爆炸(explosion)。
当神经网络的层数较多时,模型的数值稳定性容易变差。
假设一个层数为 L L L的多层感知机的第 l l l层 H ( l ) \boldsymbol{H}^{(l)} H(l)的权重参数为 W ( l ) \boldsymbol{W}^{(l)} W(l),输出层 H ( L ) \boldsymbol{H}^{(L)} H(L)的权重参数为 W ( L ) \boldsymbol{W}^{(L)} W(L)。为了便于讨论,不考虑偏差参数,且设所有隐藏层的激活函数为恒等映射(identity mapping) ϕ ( x ) = x \phi(x) = x ϕ(x)=x。给定输入 X \boldsymbol{X} X,多层感知机的第 l l l层的输出 H ( l ) = X W ( 1 ) W ( 2 ) … W ( l ) \boldsymbol{H}^{(l)} = \boldsymbol{X} \boldsymbol{W}^{(1)} \boldsymbol{W}^{(2)} \ldots \boldsymbol{W}^{(l)} H(l)=XW(1)W(2)…W(l)。此时,如果层数 l l l较大, H ( l ) \boldsymbol{H}^{(l)} H(l)的计算可能会出现衰减或爆炸。举个例子,假设输入和所有层的权重参数都是标量,如权重参数为0.2和5,多层感知机的第30层输出为输入 X \boldsymbol{X} X分别与 0. 2 30 ≈ 1 × 1 0 − 21 0.2^{30} \approx 1 \times 10^{-21} 0.230≈1×10−21(消失)和 5 30 ≈ 9 × 1 0 20 5^{30} \approx 9 \times 10^{20} 530≈9×1020(爆炸)的乘积。当层数较多时,梯度的计算也容易出现消失或爆炸。
2.1 随机初始化模型参数
在神经网络中,通常需要随机初始化模型参数。下面我们来解释这样做的原因。
回顾多层感知机一节描述的多层感知机。为了方便解释,假设输出层只保留一个输出单元 o 1 o_1 o1(删去 o 2 o_2 o2和 o 3 o_3 o3以及指向它们的箭头),且隐藏层使用相同的激活函数。如果将每个隐藏单元的参数都初始化为相等的值,那么在正向传播时每个隐藏单元将根据相同的输入计算出相同的值,并传递至输出层。在反向传播中,每个隐藏单元的参数梯度值相等。因此,这些参数在使用基于梯度的优化算法迭代后值依然相等。之后的迭代也是如此。在这种情况下,无论隐藏单元有多少,隐藏层本质上只有1个隐藏单元在发挥作用。因此,正如在前面的实验中所做的那样,我们通常将神经网络的模型参数,特别是权重参数,进行随机初始化。
2.2 PyTorch的默认随机初始化
随机初始化模型参数的方法有很多。在线性回归的简洁实现中,我们使用torch.nn.init.normal_()
使模型net
的权重参数采用正态分布的随机初始化方式。不过,PyTorch中nn.Module
的模块参数都采取了较为合理的初始化策略(不同类型的layer具体采样的哪一种初始化方法的可参考源代码),因此一般不用我们考虑。
2.3 Xavier随机初始化
还有一种比较常用的随机初始化方法叫作Xavier随机初始化。
假设某全连接层的输入个数为 a a a,输出个数为 b b b,Xavier随机初始化将使该层中权重参数的每个元素都随机采样于均匀分布
U ( − 6 a + b , 6 a + b ) . U\left(-\sqrt{\frac{6}{a+b}}, \sqrt{\frac{6}{a+b}}\right). U(−a+b6,a+b6).
它的设计主要考虑到,模型参数初始化后,每层输出的方差不该受该层输入个数影响,且每层梯度的方差也不该受该层输出个数影响。
3、考虑环境因素
3.1 协变量偏移
这里我们假设,虽然输入的分布可能随时间而改变,但是标记函数,即条件分布P(y∣x)不会改变。虽然这个问题容易理解,但在实践中也容易忽视。
想想区分猫和狗的一个例子。我们的训练数据使用的是猫和狗的真实的照片,但是在测试时,我们被要求对猫和狗的卡通图片进行分类。
cat | cat | dog | dog |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
测试数据:
cat | cat | dog | dog |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
显然,这不太可能奏效。训练集由照片组成,而测试集只包含卡通。在一个看起来与测试集有着本质不同的数据集上进行训练,而不考虑如何适应新的情况,这是不是一个好主意。不幸的是,这是一个非常常见的陷阱。
统计学家称这种协变量变化是因为问题的根源在于特征分布的变化(即协变量的变化)。数学上,我们可以说P(x)改变了,但P(y∣x)保持不变。尽管它的有用性并不局限于此,当我们认为x导致y时,协变量移位通常是正确的假设。
3.2 标签偏移
当我们认为导致偏移的是标签P(y)上的边缘分布的变化,但类条件分布是不变的P(x∣y)时,就会出现相反的问题。当我们认为y导致x时,标签偏移是一个合理的假设。例如,通常我们希望根据其表现来预测诊断结果。在这种情况下,我们认为诊断引起的表现,即疾病引起的症状。有时标签偏移和协变量移位假设可以同时成立。例如,当真正的标签函数是确定的和不变的,那么协变量偏移将始终保持,包括如果标签偏移也保持。有趣的是,当我们期望标签偏移和协变量偏移保持时,使用来自标签偏移假设的方法通常是有利的。这是因为这些方法倾向于操作看起来像标签的对象,这(在深度学习中)与处理看起来像输入的对象(在深度学习中)相比相对容易一些。
病因(要预测的诊断结果)导致 症状(观察到的结果)。
训练数据集,数据很少只包含流感p(y)的样本。
而测试数据集有流感p(y)和流感q(y),其中不变的是流感症状p(x|y)。
3.3 概念偏移
另一个相关的问题出现在概念转换中,即标签本身的定义发生变化的情况。这听起来很奇怪,毕竟猫就是猫。的确,猫的定义可能不会改变,但我们能不能对软饮料也这么说呢?事实证明,如果我们周游美国,按地理位置转移数据来源,我们会发现,即使是如图所示的这个简单术语的定义也会发生相当大的概念转变。
美 国 软 饮 料 名 称 的 概 念 转 变 美国软饮料名称的概念转变 美国软饮料名称的概念转变
如果我们要建立一个机器翻译系统,分布P(y∣x)可能因我们的位置而异。这个问题很难发现。另一个可取之处是P(y∣x)通常只是逐渐变化。
4、K折交叉验证
我们在模型选择、欠拟合和过拟合中介绍了 K K K折交叉验证。它将被用来选择模型设计并调节超参数。下面实现了一个函数,它返回第i
折交叉验证时所需要的训练和验证数据。
在 K K K折交叉验证中我们训练 K K K次并返回训练和验证的平均误差
5、模型选择
我们使用一组未经调优的超参数并计算交叉验证误差。可以改动这些超参数来尽可能减小平均测试误差。
有时候你会发现一组参数的训练误差可以达到很低,但是在 K K K折交叉验证上的误差可能反而较高。这种现象很可能是由过拟合造成的。因此,当训练误差降低时,我们要观察 K K K折交叉验证上的误差是否也相应降低。
版权声明
本文为[什么时候才能像大佬一样厉害]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_36016038/article/details/104358727
边栏推荐
- Solution of self Networking Wireless Communication intercom system in Beifeng oil and gas field
- PyTorch 19. Differences and relations of similar operations in pytorch
- anaconda3安装
- PC端一次启动多个微信
- F. The wonderful use of pad
- 自定义classloader并实现热部署-使用loadClass
- golang实现正则匹配:密码包含至少一位数字,字母和特殊字符,且长度8-16
- 安装tui-editor失败,快速解决方案
- HuggingFace
- Typora语法详解(一)
猜你喜欢
Tensorflow安装后ImportError: DLL load failed: 找不到指定的模块,且国内安装缓慢
How to improve the service efficiency of the hotel without blind spots and long endurance | public and Private Integrated walkie talkie?
hql求一个范围内最大值
F. The wonderful use of pad
可视化常见问题解决方案(八)共享绘图区域问题解决方案
江宁医院DMR系统解决方案
van-uploader上传图片实现过程、使用原生input实现上传图片
可视化常见问题解决方案(七)画图刻度设置解决方案
关于短视频技术轮廓探讨
华为云MVP邮件
随机推荐
大型体育赛事无线通信系统
Urban emergency management - urban emergency communication command and dispatching system
SDC intelligent communication patrol management system of Nanfang investment building
Draw margin curve in arcface
商业版阿里MQ普通消息发送订阅Demo
LATEX使用
Flexible blind patch of ad hoc network | Beifeng oil and gas field survey solution
不需要破解markdown编辑工具Typora
美摄科技云剪辑,助力哔哩哔哩使用体验再升级
HuggingFace
电力行业巡检对讲通信系统
以智能生产引领行业风潮!美摄智能视频生产平台亮相2021世界超高清视频产业发展大会
Meishe helps Baidu "Duka editing" to make knowledge creation easier
hql求一个范围内最大值
关于短视频平台框架搭建与技术选型探讨
Emergency air space integrated communication system scheme of Guangxi Power Grid
字节数仓实习生面试sql题
城市应急管理|城市突发事故应急通信指挥调度系统
Discussion on the outline of short video technology
社区版阿里MQ普通消息发送订阅Demo