深度学习 --- 过拟合和欠拟合

开发平台:jupyter lab

运行环境:python3、TensorFlow2.x

过拟合和欠拟合

  • 1. 过拟合和欠拟合的原因
  • 2. 过拟合和欠拟合的解决办法
  • 3. 图示举例
    • 3.1 线性函数拟合(正常情况)
    • 3.2 线性函数拟合(过拟合情况)
    • 3.2 线性函数拟合(欠拟合情况)

1. 过拟合和欠拟合的原因

  • 欠拟合:指模型在训练集、验证集和测试集上均表现不佳的情况;
  • 过拟合:指模型在训练集上表现很好,到了验证和测试阶段就很差,即模型的泛化能力很差。

(1)欠拟合的常见原因:

  • 模型复杂度过低;
  • 特征量过少;

(2)过拟合的常见原因:

  • 建模样本选取有误,如样本数量太少,选样方法错误,样本标签错误等,导致选取的样本数据不足以代表预定的分类规则;
  • 样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则;
  • 假设的模型无法合理存在,或者说是假设成立的条件实际并不成立;
    参数太多,模型复杂度过高;
  • 对于决策树模型,如果我们对于其生长没有合理的限制,其自由生长有可能使节点只包含单纯的事件数据(event)或非事件数据(no event),使其虽然可以完美匹配(拟合)训练数据,但是无法适应其他数据集;
  • 对于神经网络模型:a)对样本数据可能存在分类决策面不唯一,随着学习的进行,,BP算法使权值可能收敛过于复杂的决策面;b)权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征;

2. 过拟合和欠拟合的解决办法

(1)解决欠拟合(高偏差)的方法:

  • 模型复杂化;
  • 增加更多的特征,使输入数据具有更强的表达能力
  • 调整参数和超参数
  • 增加训练数据往往没有用
  • 降低正则化约束

(2) 解决过拟合(高方差)的方法:

  • 增加训练数据数
  • 使用正则化约束
  • 减少特征数
  • 调整参数和超参数
  • 降低模型的复杂度
  • 使用Dropout
  • 提前结束训练

3. 图示举例

3.1 线性函数拟合(正常情况)

深度学习 --- 过拟合和欠拟合_第1张图片

3.2 线性函数拟合(过拟合情况)

深度学习 --- 过拟合和欠拟合_第2张图片

3.2 线性函数拟合(欠拟合情况)

深度学习 --- 过拟合和欠拟合_第3张图片

————————————————
版权声明:本文为CSDN博主「奔跑的小仙女」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43211132/article/details/106937846

你可能感兴趣的:(深度学习_TensorFlow,深度学习,机器学习)