泛统计理论初探——模型泛化能力增强技巧

数据挖掘-机器学习模型泛化增强技巧

机器学习模型泛化能力增强技巧简介
   在之前的文章中,我们已经介绍了三种提高模型泛化能力的方法,即前一篇文章介绍的L1正则化、L2正则化、DropOut方法。在本文中,我们将会从数据角度、模型训练角度、策略角度进行提高模型泛化能力的方法介绍,尝试在处理问题的不同阶段使用技巧提升模型的泛化能力。本文主要介绍数据增强、参数共享、早停处理、多任务学习这几种技巧,下面分别进行介绍。
   首先介绍数据增强方法,该方法其实在图像分析领域使用的较多,因为图像领域可以对原始的数据进行一些调整,在不改变图像含义的情况下最大程度的利用原始数据。比如对一幅图片可以进行翻转操作、旋转操作、缩放操作、移位操作、裁剪操作、黑白操作、模糊操作等,因为这些操作可以让原始的数据的信息充分使用,也防止神经网络等模型过拟合,加强了模型的泛化能力。当然这些方法都是比较低级和简单的方法,在学习的后期,如果觉得数据量还不够,可以尝试使用对抗神经网络GAN来进行训练数据的生成,GAN的原理在以后的文章会进行介绍,此处不展开。通过GAN的数据生成,可以将图片里的目标含义不变的情况下,改变图片内的环境等其他特征,使得原有模型进行更好地学习,得到一个泛化能力更强的机器学习模型。理论上来说数据增强方法是一种比较好的技巧,因为它不仅使得模型的泛化能力更强,也使得模型的稳健性更好,但其缺点在其他结构性数据或者自然语言处理领域很难在原有的数据集进行数据增强,除非增加新的数据。
   下面介绍早停技巧,该技巧其实是在梯度下降方法中涉及到的一种方法,其实顾名思义,早停就是在训练到中途的时候提早停止训练,是神经网络里面处理过拟合的一种方法。由于早停法会比较数据在训练集和验证集的效果,本质上是在寻找一个点,这个点是模型在验证集上的拐点,在这个点之后虽然训练集的误差还在减小,但是验证集的误差却开始增加,因为这个时候模型可能在训练集上已经过拟合了,实践中有些使用者反映早停方法比L1正则化、L2正则化方法的效果要更好。但是早停技巧对于复杂的模型来说是很难使用的,因为早停很有可能使得模型停在一个局部最优点而无法进行继续优化,特别是当前的神经网络结构如此复杂,而且通常是多个神经网络模型进行组合嵌套,早停技巧可能不一定很好,对于那些简单的模型,使用早停的技巧是比较简洁并且效果不错的。下面的图片就很好的说明了这个早停技巧的原理,最好的模型参数是迭代到240步的时候,训练集的误差不是最低点,但是验证集的误差达到了最低的区域,这就是早停的技巧原理。
在这里插入图片描述
   下面进行参数共享方法的介绍,之前的文章介绍过L1正则化方法和L2正则化方法,那些正则化方法的思路是一种惩罚,对参数偏离0均值误差的惩罚,而有些场景需要减少参数的数量。比如在图像领域,最开始使用的是BP神经网络进行训练,但由于多层神经网络的参数实在是太多,所以引入了CNN卷积神经网络,该网络的一大特点就是参数共享,将每一层的参数进行共享,也就是保持一致,使得参数的数量大大下降。其实参数共享方法一般在神经网络中使用的较多,其目的是避免多层神经网络进行过拟合,所以将一部分神经元的参数强行一致,从而避免了过拟合,也就达到了泛化能力变强的目标。
   最后我们来介绍多任务学习,该方法的思路是通过进行多个不同种类问题的学习来防止神经网络为了学习某一类特殊的问题而造成的过拟合,比如在经过基本的映射和归一化处理后的两份数据,一份数据是学习识别猫和狗的图像数据,另一份数据是学习去预测下个月的房屋价格是涨或者跌的数据,通过同样的神经网络隐藏层来进行学习,这个隐藏层的参数是两个问题所共享的,所以最后得到的神经网络可以有效地避免过拟合情况。
   总的来说,模型的泛化能力增强还需要看实际问题的数据和使用场景,因为在条件允许的情况当然是增加新的数据,在图像分析领域可以进行原始数据的增强,在某些神经网络模型可以使用多任务学习、参数共享或者早停技巧,而在机器学习还可以使用集成学习的思路,将模型进行组合,通过bagging或者boosting的策略进行整体模型的准确率提升。对于初学者来说,不能盲目地追求训练集准确率,要注意模型的稳健性和泛化能力,从而得到较好的模型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章