欠拟合与过拟合 龙沛洵 2018.9.6
训练误差与泛化误差 误差(error) 训练误差(training error) 泛化误差(generalization error) 学习器的预测输出与样本真实标记的差异 训练误差(training error) 学习器在训练样本集上的误差 泛化误差(generalization error) 学习器在新样本集上的误差 期望目标 得到泛化误差小的学习器 实际做法 使训练误差最小化 训练误差越小是否也意味着泛化误差也越小? 学习器在训练样本上表现好是否也意味着在新样本上表现也好?
欠拟合与过拟合 过拟合(overfitting) 欠拟合(underfitting) 两种情形下学习器的表现 ——周志华《机器学习》 当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身 的一些特点当作了所有潜在样本都会具有的一般性质,这就会导致泛化性 能下降。 欠拟合(underfitting) 学习器对训练样本的一般性质尚未学好。 ——周志华《机器学习》 两种情形下学习器的表现 过拟合:学习器在训练样本集上表现得非常好,在新样本集上表现很差 欠拟合:学习器在训练样本集和新样本集上都表现得较差
一个直观类比 ——周志华《机器学习》
另一个例子 训练数据 X Y 1.1 0.7 3.4 0.6 5.6 1.4 5.7 1.7 7.8 10.3 6.5 12.1 9.7 测试数据 X Y 2.3 0.5 6.6 9.1 5.0 11.4 8.5 12.5 10.5
二次多项式模型 训练数据 测试数据 学得的模型: 𝑦 =0.0974 𝑥 2 −0.471𝑥+1.0952 X Yact Ypred 1.1 0.7 0.695 3.4 0.6 0.618 5.6 1.4 1.512 5.7 1.7 1.575 7.8 3.347 10.3 6.5 6.577 12.1 9.7 9.656 在训练数据上的均方误差 Etraining = 0.005602 测试数据 X Yact Ypred 2.3 0.5 0.527 6.6 2.229 9.1 5.0 4.875 11.4 8.5 7.474 12.5 10.5 8.384 学得的模型: 在测试数据上的均方误差 Etest = 0.008059 𝑦 =0.0974 𝑥 2 −0.471𝑥+1.0952
线性模型 训练数据 测试数据 学得的模型: 𝑦 =0.8379𝑥−2.0779 X Yact Ypred 在训练数据上的均方误差 1.1 0.7 -1.156 3.4 0.6 0.771 5.6 1.4 2.614 5.7 1.7 2.698 7.8 4.458 10.3 6.5 6.552 12.1 9.7 8.061 在训练数据上的均方误差 Etraining = 1.3935 测试数据 X Yact Ypred 2.3 0.5 -0.151 6.6 3.452 9.1 5.0 5.547 11.4 8.5 7.474 12.5 10.5 8.396 学得的模型: 在测试数据上的均方误差 Etest = 1.5060 𝑦 =0.8379𝑥−2.0779
六次多项式模型 训练数据 测试数据 学得的模型: X Yact Ypred 在训练数据上的均方误差 Etraining = 0 X Yact 1.1 0.7 3.4 0.6 5.6 1.4 5.7 1.7 7.8 10.3 6.5 12.1 9.7 在训练数据上的均方误差 Etraining = 0 测试数据 X Yact Ypred 2.3 0.5 7.286 6.6 3.714 9.1 5.0 2.271 11.4 8.5 12.956 12.5 10.5 0.210 学得的模型: 在测试数据上的均方误差 Etest = 36.245 𝑦 = −0.0035 𝑥 6 +0.1429 𝑥 5 −2.2506 𝑥 4 +17.42 𝑥 3 −68.141 𝑥 2 +122.56𝑥−71.781
三个模型的比较 过拟合 正确的模型 欠拟合
三个模型的比较 奥卡姆剃刀(Occam’s razor)原则 在上面的例子中,如果使用三次多项式模型,也可以获得较低的训 练误差和泛化误差 Etraining Etest 类型 二次多项式 0.005602 0.008059 正确的模型 线性模型 1.3935 1.5060 欠拟合 六次多项式 36.245 过拟合 在上面的例子中,如果使用三次多项式模型,也可以获得较低的训 练误差和泛化误差 𝑦 =0.0003 𝑥 3 +0.0922 𝑥 2 −0.4438𝑥+1.0633 𝐸 training =0.006058, 𝐸 test =0.004609 奥卡姆剃刀(Occam’s razor)原则 如无必要,勿增实体。 若有多个假设与观察一致,则选择最简单的那个。
应对措施 欠拟合 过拟合 原因:通常是由学习能力不足造成的 解决方法:增加模型复杂度 决策树学习中增加扩展分支 神经网络中增加网络结构复杂度和训练轮数 过拟合 过拟合是机器学习面临的关键障碍,各种学习算法都要包含一些防止过 拟合的措施。 应对措施:增加训练数据数量、控制训练程度 使用更多的数据进行训练 决策树学习中限制决策树的层数 神经网络中限制训练轮数 集成学习中限制基学习器的个数 过拟合是永远无法避免的
为什么深度学习会在近几年火起来? 深度学习(Deep learning) 近年来深度学习成为热门的原因 有很多层的神经网络(“深度”的含义) 神经网络的基本原理与相关算法早在20世纪80年代就已经被提出来了 常见深度学习模型 深层神经网络(DNN), 卷积神经网络(CNN), 循环神经网络(RNN) 近年来深度学习成为热门的原因 计算能力增强使得求解复杂模型成为可能; 数据量大幅增加降低了过拟合的风险; 用户不必关心模型内部的具体工作方式,不必事先假设数据的分布,降 低了机器学习的应用门槛。