文章目录

  • 问题1:梯度消失
  • 问题2:梯度爆炸
  • 问题3:过拟合
  • 问题4:欠拟合
  • 问题5:退化现象


问题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高)。

解决方案:

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

resnet解决梯度消失问题 relu可以解决梯度消失吗_计算机视觉

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

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

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

问题5:退化现象

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

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

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