模型的过拟合问题及解决方案

模型的过拟合问题

  • 无论是机器学习或是深度学习,都是通过人为或机器的方式寻找观察变量的特征,用变量的特征表示观察值;那么在选取特征的时候,特征是否是这类变量的显著特征就是我们训练的目的和优化的方向;机器学习中我们采取人为寻找特征的方式进行特征工程训练模型,为了避免人为的主观认知,更加有效的提取观察类中的特征,我们采用了深度学习的方法,通过神经网结构让机器自动的学习训练数据的特征,推广到测试数据,以期望获得较高的泛化能力;最后达到用特征预测数据的功能;
  • 因此在训练数据集中能否提取出表征全体对象的特征就是我们学习的目的,在学习过程中,可能提取的特征不是显著特征,即模型的精确度不好,我们认为模型欠拟合,但是如果提取的特征太细,只是能特异性的表示训练数据,但是不能泛化推广到其他对象,那么我们认为模型过拟合于训练数据,也是我们不希望看到的。模型欠拟合可以通过增加迭代次数,学习轮次去优化,那么过拟合问题如何解决,这里引入了两个方法:损失函数的正则化,训练时神经元的随机Dropout;
    模型的过拟合问题及解决方案_第1张图片

损失函数正则化,减弱高阶参数的影响

  • 减少高阶参数的影响使得参数模型简单,模型泛化能力增强;参数模型越复杂,越是拟合所有的训练数据,包括了一些异常样本,容易使得模型过拟合,在其他数据对象的表征差;较大的参数会产生较大的导数,调整高阶参数的范围越小,越复杂的模型参数值越大;对损失函数正则化之后,会使得损失函数更加快的收敛,对高阶参数的影响较大;
  • 正则化的目标:保证最小的损失值的同时正则化参数模型简单;
    • 最小化损失函数:避免欠拟合问题
    • 正则化参数:避免过拟合问题,正则化参数λ控制了正则化程度;
正则化方法:

在这里插入图片描述
λ是一个超参数,规定了正则化程度
L1正则化:让原目标函数加上所有特征系数绝对值的和来实现正则化
在这里插入图片描述
L2正则化:让原目标函数加上所有特征系数的平方和
在这里插入图片描述
L1正则化适合用于特征选择,而L2正则化更加适合防止模型过拟合;
L_1会趋向于产生少量的特征,而其他的特征都为0,而L_2会选择更多的特征,如果需要保留大量特征,同事降低模型复杂度,可以使用L2范数;

Dropout:
  • doupout:每次迭代中,随机删除部分节点,只训练剩下的节点。每次迭代都会随机删除,每次迭代删除的节点都不一样,相当于每次迭代训练的都是不一样的网络,降低节点之间的关联和复杂度,简单的避免了过拟合问题。
  • doupout需要设置一个保留神经元比例的超参数,保留每层节点随机个神经元节点
  • 缺陷:需要将训练数据集分成不同子集输入每一次迭代,需要较大的训练集;增大数据集的情况下,使用dropout需要使用的计算代价可能比正则化效果高;
  • 类似多个不同神经网络的损失函数平均值计算出来的参数;
    类似集成学习:多个模型单独学习,推理时再取多个模型的输出的平均值;将Dropout是在学习过程中随机删除神经元,从而每次都让不同的模型进行学习,得到整体参数。并且在推理的时候(测试数据的时候),通过神经元的输出乘以删除比例,可以得到模型的平均值。也就是说,可以理解成,Dropout将集成学习的效果通过一个网络实现。
    模型的过拟合问题及解决方案_第2张图片

你可能感兴趣的:(模型参数,机器学习,深度学习)