网络中出现的问题、原因以及解决措施总结

问题1:梯度消失

定义:网络反向传播权值越算越小到最后权值可以忽略不计了。

判断方法:随着隐藏层数目的增加,分类准确率下降。

原因:网络太深,网络权重更新不稳定造成的,本质上是因为梯度方向传播的连乘效应。

解决方案:

①使用Relu、LeakRelu、Elu等激活函数;

ReLU的作用:①解决了梯度消失、爆炸的问题②计算方便,计算速度快③加速了网络的训练

②加BN层;

BN的作用:①加速网络收敛速度 ②可以改善梯度消失问题

③使用残差网络结构;

④使用长短期记忆网络(LSTM);

⑤预训练微调。

问题2:梯度爆炸

定义:网络反向传播权值越来越大,以指数形式增长。

判断方法:随着隐藏层数目的增加,分类准确率下降。

原因:网络太深,网络权重更新不稳定造成的,本质上是因为梯度方向传播的连乘效应。

解决方案:

①梯度剪切:思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内。这可以防止梯度爆炸

②权重正则化:比较常见的是l1正则,和l2正则;

③使用Relu、LeakRelu、Elu等激活函数;

④加BN层;

⑤使用残差网络结构;

⑥预训练微调,权重初始化调小。

问题3:过拟合

定义:训练集准确率高(loss小)而验证集准确率低(loss大)。

判断方法:对比训练集和验证集准确率和损失,如果相差过大就有可能过拟合了。

解决方案:

①权重衰减,即L1、L2正则化;

②提前停止;

③扩大训练集样本、数据增强;

④重新选用合适的模型,减小网络容量;

⑤添加Dropout;

⑥参数共享与参数绑定;

⑦bagging:可以组合多个模型起到减少泛化误差的作用;

⑧辅助分类器:在Google Inception V1中,采用了辅助分类节点的策略,即将中间某一层的输出用作分类,并按一个较小的权重加到最终的分类结果中,这样相当于做了模型的融合,同时给网络增加了反向传播的梯度信号,提供了额外的正则化的思想;

⑨加入BN层:在Google Inception V2中所采用,是一种非常有用的正则化方法,可以让大型的卷积网络训练速度加快很多倍,同时使得收敛后分类的准确率也可以大幅度的提高;

⑩使用交叉验证方法。

问题4:欠拟合

定义:网络学习不到东西,在训练集时准确率就很差(loss高)。

解决方案:

①寻找最优的权重初始化方案;

image-20220304104901137

②使用适当的激活函数,如ReLU;

③选择合适的优化器和学习率。SGD,Momentum、Adagrad、Adadelta。可以选择开始用Adadelta,快收敛时用SGD,即优化器的组合效果会更好;

④选择更深、更复杂的模型,以此来学习到更多特征。

问题5:退化现象

定义:随着网络深度的增加,准确率开始达到饱和并且在之后会迅速下降。

原因:网络过于复杂,训练不加约束。

解决方案:使用残差网络结构。

引用

[1] 如何理解和解决神经网络训练中的梯度消失和梯度爆炸_猫敷雪-CSDN博客

[2] 神经网络防止过拟合的方法 - bonelee - 博客园 (cnblogs.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋天的风儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值