训练效果不好的解决办法

2022-10-13 13:25:20

在这里插入图片描述

一.训练误差来源:bias、variance

李宏毅机器学习tips for deep learning
在这里插入图片描述
通过NN模型得到的f的均值和真实值之间的差值为bias
f
和均值之间的差值为variance
在这里插入图片描述
(1)underfitting:bias大,variance小;modle无法拟合trainning data
解决方法:redesign model:增加更多的属性或用更复杂的model
(2)overfitting:bias小,variance大;model可以拟合training data,但是在testing data上误差较大
解决方法:增加训练数据或regularization

regularization(正则化)
在loss函数后加一个正则项,防止过拟合
L1正则化:在这里插入图片描述
L2正则化:
在这里插入图片描述
目的是使参数也足够小,这样得到的函数就是一个比较平滑的函数,而不是像上图三中波动很大的函数,较平滑的函数往往认为是比较正确的

二.分别在training data和testing data上效果不好的解决办法

在这里插入图片描述

1.在training data上效果不好:new active functions,adaptive learning rate

(1)new active functions:sigmoid、ReLU、MaxOut
https://blog.csdn.net/qq_38517015/article/details/102526564
(2)adaptive learning rate:
learning rate:在梯度下降法中更新参数值时
在这里插入图片描述
中的yita就是learning rate,表示更新参数快慢
方法一:Adagrad
在这里插入图片描述
方法二:RMSProp
在这里插入图片描述
方法三:Momentum
在这里插入图片描述

2.在testing data上效果不好(overfitting):early stopping,regularization,dropout

(1)early stopping
在这里插入图片描述
如图所示,随着训练进度,对training data的损失越来越小,但是对testing data的误差先是变小,然后变大,后面就出现过拟合的情况,所以如果能停在如图指示地方最好。训练时,把training data分为training set和validation set ,在训练时,既计算training set的误差,也计算validation set的误差,保证在training data误差足够小的情况下,validation set误差最小
(2)regularization:第一类中已介绍
(3)dropout:
链接:https://www.jianshu.com/p/32c3a1ab0f9d
上图为Dropout的可视化表示,左边是应用Dropout之前的网络,右边是应用了Dropout的同一个网络。

Dropout的思想是训练整体DNN,并平均整个集合的结果,而不是训练单个DNN。DNNs是以概率P舍弃部分神经元,其它神经元以概率q=1-p被保留,舍去的神经元的输出都被设置为零

在这里插入图片描述
在这里插入图片描述
dropout中使用了ensemble的思想,相当于训练了很多个网络,然后取均值,所以效果比较好

  • 作者:Evavava啊
  • 原文链接:https://blog.csdn.net/qq_38517015/article/details/102526519
    更新时间:2022-10-13 13:25:20