• 深度学习(九)过拟合和欠拟合


    过拟合和欠拟合是在网络训练中常常碰到的问题

    • 过拟合(overfit):训练误差小,但是对于测试集上的误差很大。可能模型过于复杂,训练中只”记住”了训练样本,然而其泛化误差却很高。
    • 欠拟合(underfit):训练误差很大,无法找到合适的函数描述数据集

    下面介绍这两种情况下常用的一些trick方法

    1. 如何防止过拟合

      过拟合的原因基本是特征维度太多,模型过复杂,参数太多,训练数据太少,噪声过多等,导致拟合的函数在训练集上效果好而测试集效果差。从它出现的原因出发,我们可以考虑的方法有以下几种:

      • 数据增强Data Augmentation & 增加噪声数据,将源数据数量变多
      • 使用合适的网络模型,减少网络的层数、神经元个数等均可以限制网络的拟合能力
      • Dropout(把网络某层的输出节点随机丢弃掉一部分,从而创造新的样本)

      • weight正则化 (就是在损失函数中增加范L1范数/L2范数,而weight decay是正则化的系数)

          i. L1范数 所有参数的绝对值之合

            L1范数可以使得某些参数为0,也就实现特征稀疏,也可认为是特征选择

          ii. L2范数 所有参数的平方和再求平方根

            L2范数使得参数较小且接近于0,参数越小,模型就越小,就越不容易出现过拟合

          L1趋向于产生少量特征,而其他特征都为0,而L2趋向于选择更多特征,这些特征趋向于0

      • 提前终止(early stopping)过拟合出现之前停止模型的学习过程

      2. 如何防止欠拟合

      模型没有很好捕捉到数据特征,不能很好的拟合数据

      • 添加更多特征
      • 减少正则化参数
  • 相关阅读:
    perl 升级到5.20版本
    perl 升级到5.20版本
    Group Commit of Binary Log
    Group Commit of Binary Log
    docker exec 运行命令
    docker exec 运行命令
    mysql timestamp 值不合法问题
    mysql timestamp 值不合法问题
    ulimit 说明
    /etc/security/limits.conf 配置
  • 原文地址:https://www.cnblogs.com/lightsun/p/9489446.html
Copyright © 2020-2023  润新知