[CNN-grad]1. 梯度爆炸实操|梯度消失|模型坍塌初识
1. 神经网络梯度爆炸实操
在深度学习中,网络常见的问题有两种,一个是梯度消失(也称梯度弥散),另一个是梯度爆炸,其实还有一个就是模型坍塌(这个模型坍塌在网络设计的较为合理的前提下,会在生成模型GAN系列中出现)。
一、梯度消失
在损失下降的时候,我们希望损失下降到0,但是,神经网络实际上损失下降到0是有问题的,
- 其一:就是损失到0是一种过拟合的现象;
- 其二:在训练时,如果损失到0,然后突然出现NAN,那么就意味着,梯度不能更新了,有一种很大的可能就是梯度消失。
- 解决梯度消失,我们通常会加入BN,加入残差,会在很大的一定程度上解决这个问题,通过跳跃连接(残差),还有就是在对数据进行归一化。
二、梯度爆炸
- 下面是梯度爆炸的实操,下面会导致梯度爆炸,在训练时,梯度爆炸的现象是,第一轮损失是比较低的,例如下面这种情况:第一轮损失比较小,第二轮就猛增,这种在训练开始的时候出现的现象,就会导致梯度爆炸,因为在验证的时候也加了梯度更新,梯度就不停的累加,导致梯度很大,损失也会变大,因此在写代码的时候要注意验证集不能使用梯度更新的三步。
[opoch=1] tain_avg_loss : 6.223523
[opoch=2] tain_avg_loss : 40.223523
[opoch=2] tain_avg_loss : 45.223523
[opoch=2] tain_avg_loss : 50.223523
for epoch in range(EPOCH):net.train()for x, y in train_loader:out = net(x)loss = loss_func(out, y)# 训练时使用梯度更新的三步optimizer.zero_grad()loss.backward()optimizer.step()print(loss.item())net.eval()for x, y in val_loader:out = net(x)loss = loss_func(out, y)# 测试时不能加梯度更新的三步optimizer.zero_grad()loss.backward()optimizer.step()
三、模型坍塌
- 在生成模型中,例如GAN中,需要通过调参,才能将网络的训练的比较好,GAN中,出现模型坍塌的情况,损失会突然变成NAN,这样有可能是模型坍塌的,这个模型坍塌,在自己设计的生成模型中,可能会出现,因此,要注意。
[CNN-grad]1. 梯度爆炸实操|梯度消失|模型坍塌初识相关推荐
- 解决 “梯度爆炸” 的方法 - 梯度裁剪
梯度裁剪 一.什么是梯度爆炸 二.梯度裁剪 三.如何选择超参数c 四.框架中的实现 梯度裁剪是解决梯度爆炸的一种简单高效的方法,并且梯度裁剪可以应用于所有神经网络的训练中(任何可能发生梯度爆炸的训练过 ...
- 梯度消失和梯度爆炸_出现梯度消失与梯度爆炸的原因以及解决方案
在学习李宏毅老师机器学习的相关视频时,课下做了一个有关神经网络的小Demo,但是运行效果总是不尽人意,上网查询资料,才发现是梯度爆炸和梯度消失惹的祸.今天就让我们一起来学习一下梯度消失与梯度爆炸的概念 ...
- 鲍鱼数据集案例分析-预测鲍鱼年龄(线性回归/梯度下降法实操)
数据集来源UCI Machine Learning Repository: Abalone Data Set 目录 一.数据集探索性分析 二.鲍鱼数据预处理 1.对sex特征进行OneHot编码,便于 ...
- 实操将TensorFlow模型部署成Docker服务化
背景 深度学习模型如何服务化是一个机器学习领域工程方面的热点,现在业内一个比较主流的做法是将模型和模型的服务环境做成docker image.这样做的一个好处是屏蔽了模型对环境的依赖,因为深度学习模型 ...
- 深度学习实战 Tricks —— 梯度消失与梯度爆炸(gradient exploding)
梯度爆炸:梯度过大会使得损失函数很难收敛,甚至导致梯度为 NaN,异常退出: 解决方案:gradient cliping 梯度消失:较前的层次很难对较后的层次产生影响,梯度更新失效: 解决方案:对于 ...
- 梯度爆炸与梯度消失是什么?有什么影响?如何解决?
文章目录 一.梯度爆炸 1.什么是梯度爆炸? 2.有何影响? 二.梯度消失 1.定义 2.有何影响? 三.共同点 1.产生原因 2.解决办法 a. 方案1-预训练加微调 b. 方案2-梯度剪切.正则化 ...
- 深度学习--TensorFlow(4)BP神经网络(损失函数、梯度下降、常用激活函数、梯度消失梯度爆炸)
目录 一.概念与定义 二.损失函数/代价函数(loss) 三.梯度下降法 二维w与loss: 三维w与loss: 四.常用激活函数 1.softmax激活函数 2.sigmoid激活函数 3.tanh ...
- 「机器学习速成」训练神经网络:反向传播、梯度爆炸消失Dropout
https://www.toutiao.com/a6706075530187244045/ 2019-06-24 20:38:02 大家好,今天我们学习[机器学习速成]之 训练神经网络. 我们 马上学 ...
- 【算法】梯度消失与梯度爆炸
概念 梯度不稳定 在层数比较多的神经网络模型的训练过程中会出现梯度不稳定的问题. 损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化.因为神经网络的反向传播算法是从输出层到输入层的逐 ...
最新文章
- C#编写一个抓网页的应用程序
- 怎么在android中定义泛型,android – 如何在GSON TypeToken类中使用自定义泛型?
- SkinSharp For Visual C++
- 全球服务器系统市场份额,IDC发布2017年第一季度全球融合系统报告 超融合市场最火爆...
- U-Boot如何向内核传递Flash的分区信息
- 股东接连减持 寒武纪2021年净亏损8.47亿元
- 换手机的再等等!iPhone SE2还有戏:苹果官网悄然更新AppleCare+服务计划
- ajax 刷新output,JSF生命周期及AJAX局部刷新
- 结构型设计模式 (1)—— 适配器模式(Adapter Pattern)
- VMWARE下安装Linux系统 CentOS-7-x86
- java流程图表示输入 输出,用流程图描述算法
- 开发工具篇 程序员计算器
- hualinux0.6 网络篇:你懂得路由器的种类吗?
- ssdp java_SSDP协议 - 实施
- 【电子电路】电子基础基本知识和面试要点
- 控制面板音频设置里显示“没有音频设备”,没有声音的解决办法
- AI时代,陪孩子玩什么游戏?| 前Google资深工程师实战心法
- 量化分析(6)——K线图、交易量图、动量图、rsi强度图
- ORAN专题系列-21:主要的玩家(设备商)以及他们各自的态度、擅长领域
- ubuntu下街机模拟器 mame 安装和玩拳王97