深度学习 - 模型调优经历(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37352167/article/details/85017633

模型调优经历(1)

  • 背景

    1. 样本规模及划分

      \bullet 二分类问题,正负样本 1:1,特征数:20

      \bullet 训练集:3475;测试集:896;验证集:1087

    2. 使用模型

      \bullet 深度学习模型
      \bullet 损失函数使用对数损失函数:binary_crossentropy
      \bullet 优化方法:Adam,lr = 0.0035

  • 遇到问题

    训练中的损失函数正常下降,测试集中的损失函数正常下降;

    训练中的预测准确率达到 99%

    但关键问题是:在测试集的损失函数正常下降的情况下,测试集精度非常不稳定!就我以前的认知来讲,过拟合,是在训练集上准确好而测试集上不好,即二者有较大差距,但之前没有见过测试集上震荡如此大的情况,一时有些不解。

    如图:
    训练中指标正常平稳
    测试集准确度非常不稳定
    在测试集上的准确度震荡非常厉害!

  • 思路

    对于损失函数,虽然在下降,但却是在10左右(后来几次是 3 左右),距离最优损失值 0 仍有差距。所以我认为,此时情况相当于预测值在 类别 0,与类别 1 周围的分布较为离散,而距离常用的阈值 0.5 来说比较接近,当预测值稍微改变,可能就跨过阈值0.5,成为另一个类别。相当于预测值都在黑色框里,虽然可以被分类正确,但很容易受影响。
    在这里插入图片描述
    对于测试精度不稳定忽高忽低,可以说明泛化能力不稳定,有可能学到噪声或信号中的干扰,易受噪声影响。

    综上,说明此时的模型预测结果方差大,易受波动,表明是过拟合的。

  • 解决办法

    因为使用的数据量不是很大,特征数并不多,所以不需要使用 dropout 或更严格的正则化,只需降低复杂的网络结构,减少层数,降低神经元结点即可。

    在降低模型复杂度后损失函数值与测试准确度完全负相关,在验证集上正确率为98.6%,损失值为:0.097, 且最终 AUC 达到 0.995.

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    问题解决。

猜你喜欢

转载自blog.csdn.net/weixin_37352167/article/details/85017633