机器学习:正则化

简介: 机器学习:正则化

当将我们的算法应用到某些特定的机器学习应用时,会遇到过拟合(over-fitting)的问题,可能会导致它们效果很差。这样就可以正则化的知识来解答,正则化就是改善或者减少过度拟合问题的方法。

38be4f255ee3473f9f130202e6084dcc.png


几乎拟合每个训练样本,在训练样本中虽然准确率很高,但模型泛化能力差,往往在测试集上预测准确率较低。那么怎么解决这种问题?通过正则化(regularization)提高模型的泛化能力,减少过拟合现象。


总结

2e839bc0f2a542bc935142bba6e0477c.png

定义:能够提高模型在test上的准确率,能够提高模型的泛化能力所做的任何改动,我们都可以称之为正则化


基于数据的正则化方法


深度模型的表现很大程度上依赖于训练数据,我们可以对训练数据D进行一些转换处理得到一个有助于提高模型泛化能力的新的数据集DR。其中转换操作一方面可以通过改变更有利于模型学习的数据的分布;另一方面通过生成更大的训练样本集,加强模型的泛化能力。这两种处理方法都是独立的,也可以两者都结合。总体来说,这两种方式都是通过对输入进行一个变量转换得到,这种转换,我们定义如下:

9f8d648f7dc0454b8a4d0872647ea6ea.png

通过转换参数变量θ来产生新的数据,例如常见的data augmentation,对输入或者隐层特征进行变化。若参数变量θ是确定的,则经过转换后的数据保持不变,若是一个随机的参数,则可以产生一个更大的数据集。而常见的对数据进行转换的方法如下:

data augmentation通过对输入或者隐层特征进行转换,从而获得一个更大的数据集,提高模型在训练样本较少情况下的效果。对原始数据集中(xi,ti)∈D每个样本,通过转换函数,进行样本扩增操作 (Tθ(xi),ti)∼Q,可以获得一个更大的新的数据集Q来模型训练。

dropout目的是防止模型过拟合,若模型复杂,在训练数据不足的情况下,模型会过拟合训练样本,泛化能力差。dropout通过随机丢弃一部分神经元节点(特征检测器),让模型变简单,防止模型过拟合。


基于optimization进行正则化


通过对模型参数的初始化,让模型一开始有个好的状态。目前最常见的对参数的初始化方法是从一个已知的数据分布中采样(例如正态分布等)初始化模型参数,有利于减缓深层网络导致的梯度消失或者梯度爆炸问题。另外一种方法是通过在相同领域上的数据集做=pre-training得到的模型参数初始化fine-tuning中的模型。用pre-training的模型参数初始化模型,通常可以加快模型收敛,而且可以学习到一些基础特征。另外一种方法课程学习 (curriculum learning)也称作warm-start methods,核心思想是模仿人类学习的特点,先学简单,再学较难的,会更有利于学习。所以在机器学习中,先学习简单的样本,再学习较困难的样本,能够提高模型的表现。比如在神经网络中的warmup策略,在最开始的steps中,先以小的学习率学习,再逐渐上升,如下表示:

602f386f050a40b6870cb35bbc5beb1e.png

其中i 是当前的step,n 代表warmup阶段的所有steps,比如在bert中设置为占整个训练steps的10分之一。在warmup阶段,学习率是慢慢上升的,但还是比我们的初始化学习率低。避免模型在一开始由于学习率过大,模型对mini-batch过拟合,导致后期很难再纠正过来,等稍微平稳了,就可以用大的学习率进行加快学习,这样能够保持深层模型学习的稳定性。


基于正则化项


通过在损失函数中增加正则化项,实现正则化目的。损失函数主要是保证模型的输出和目标label一致性,而加入的正则化项是独立于label标签,可以对数据的先验知识进行建模,如果数据是稀疏的或者服从某种分布,我们可以在损失函数中加入这种先验知识限制,提高模型的效果。


从贝叶斯角度理解,L2正则化其实是加入了数据的先验知识,认为权重参数服从高斯先验分布,所以在损失函数中加入这样的先验知识,让模型表现更好。在损失函数中加入这样一个惩罚项,让模型的权重参数服从拉普拉斯分布,若权重参数离分布的中心值较远,则对应的概率越小,产生的损失loss就会大,起到惩罚的作用。L1正则化可以让模型更加稀疏,简化模型的效果,进而防止模型过拟合。


165a441745db4f3caae64ef209d6224f.png


b6707cb8c85142fe96959c1410208fdc.png

f5eba710d3ff4bb5b7c83f121e0247d7.png


417eb7216720418496f0d54ce68d14d4.png

ced57106235344eca23535d0eb7886ce.png

L1和L2的异同


8bae1ce93e7144b9b218fdd7d1be07f9.png

a5e003554a6d4add92b56e9a03ccf79a.png

3324b07cd7ad48a686d7ee0c7b96f589.png

0d78e08f992f4bd5810c8e90de36c2c3.png


从上面可以看出L1正则化的函数图为左上图,对应的导数图为右上图,可以看出不管L1的大小是多少(只要不为0),梯度都是1或者-1,所以每次更新梯度的时候,参数w会稳步向0前进。而L2函数的导数图如右下图,w越靠近0的时候,梯度也越来越小,所以优化一定步骤后只能让w接近0,很难等于0,但是L1有稳定的梯度,经过一定的迭代步数后很可能变为0,这就是为什么L1正则化比L2正则化可以得到更稀疏的解。


[1] Kukačka J, Golkov V, Cremers D. Regularization for deep learning: A taxonomy[J]. arXiv preprint arXiv:1710.10686, 2017.


目录
相关文章
|
1月前
|
机器学习/深度学习
大模型开发:解释正则化及其在机器学习中的作用。
正则化是防止机器学习过拟合的技术,通过限制模型参数和控制复杂度避免过拟合。它包含L1和L2正则化,前者产生稀疏解,后者适度缩小参数。选择合适的正则化方法和强度对模型性能关键,常用交叉验证评估。
|
1月前
|
机器学习/深度学习 算法
【机器学习】正则化 Regularization 过拟合欠拟合
【1月更文挑战第27天】【机器学习】正则化 Regularization 过拟合欠拟合
|
7月前
|
机器学习/深度学习 算法
【机器学习基础】正则化
【机器学习基础】正则化
59 0
|
1月前
|
机器学习/深度学习 测试技术
机器学习第6天:线性回归模型正则化
机器学习第6天:线性回归模型正则化
|
8天前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
17 3
|
1月前
|
机器学习/深度学习 算法 算法框架/工具
【Python机器学习专栏】深度学习中的正则化与优化技术
【4月更文挑战第30天】本文探讨了深度学习中的正则化和优化技术,以提升模型的泛化能力和训练效率。正则化包括L1和L2正则化以及Dropout,防止过拟合。优化技术涵盖梯度下降法、动量法和Adam优化器,加速模型收敛。Python示例展示了如何在Keras中应用这些技术,如L2正则化、Dropout及Adam优化器。
|
9月前
|
机器学习/深度学习 API
机器学习正则化线性模型和模型保存
机器学习正则化线性模型和模型保存
152 4
|
1月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
129 14
|
1月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
1月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
49 1

热门文章

最新文章