过拟合:模型在训练上表现越来越好,但是在未见过的数据上表现不好,缺少泛化能力。
机器学习的根本问题在于优化和泛化的问题。优化指在调整模型在训练集上得到最佳性能,泛化指的是模型在前所未见的数据上的性能好坏。
避免过拟合的方法:
1.最优方法是获取更多的训练数据-利用图像增强,将数据进行翻转旋转等操作。
2.正则化:次优解决方法是 调节模型允许存储的信息量,或对模型允许存储的信息加以约束。
1.减小网络大小:减少参数个数,但是也要避免欠拟合。(越多参数,和’记忆‘越容易过拟合。)
2.添加权重正则化:强制让模型权重只能取较小的值, 从而限制模型的复杂度,这使得权重值的分布更加规则(regular)。其实现方法是向网络损失函数中添加与较大权重值相关的成本(cost)。
L1 正则化(L1 regularization):添加的成本与权重系数的绝对值[权重的 L1 范数(norm)] 成正比。
L2 正则化(L2 regularization):添加的成本与权重系数的平方(权重的 L2 范数)成正比。 神经网络的 L2 正则化也叫权 重衰减(weight decay)。不要被不同的名称搞混,权重衰减 与 L2 正则化在数学上是完全相同的。
3.Dropout:随机舍弃某些输出特征。model.add(layers.Dropout(0.5))