机器学习-范数正则化:L1正则,L2正则

简介: 机器学习-范数正则化:L1正则,L2正则

1 拟合


形象的说,拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。因为这条曲线有无数种可能,从而有各种拟合方法。拟合的曲线一般可以用函数表示,根据这个函数的不同有不同的拟合名字。


2 过拟合


上学考试的时候,有的人采取题海战术,把每个题目都背下来。但是题目稍微一变,他就不会做了。因为他非常复杂的记住了每道题的做法,而没有抽象出通用的规则。


所以过拟合有两种原因:

  1. 训练集和测试机特征分布不一致(白天鹅黑天鹅)
  2. 或者模型太过复杂(记住了每道题)而样本量不足
    解决过拟合也从这两方面下手,收集多样化的样本,简化模型,交叉检验。

    21.png

源自:用简单易懂的语言描述「过拟合 overfitting」?


3 L1范数正则化


L1范数正则化( L1 regularization 或 lasso )是机器学习(machine learning)中重要的手段,在支持向量机(support vector machine)学习过程中,实际是一种对于成本函数(cost function)求解最优的过程,因此,L1范数正则化通过向成本函数中添加L1范数,使得学习得到的结果满足稀疏化(sparsity),从而方便人们提取特征。

L1范数(L1 norm)是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。

比如 向量:

22.png

那么A的L1范数为:

23.png


3.1 成本函数的构建原理


例如我们有一个数学模型:

y=w0+w1x1+w2x22,其中x是输入,y是输出。


如果我们已知w0,w1,w2,那么我们可以根据任何输入x的值,知道输出y的值。这叫预测(prediction)。


因此,问题进化为,我们手里有很对很多组x对应的y,但是不知道w0,w1,w2!我们想通过测量很多组的x和y,来推断出 w0,w1,w2为多少。

我们将[x1,x2,x3]T记为x,[w0,w1,w2]记为w,那么原式可以写为y=w * [1,x]。

若φ=[1,x],那么y=φ*w,因此我们现在知道φ和y,我们希望通过计算得到w!

由于我们手中的很多组x和y都是通过实验的结果测试出来的。测量的结果就会有误差,因此w不可能计算的精准,那么我们很容易想到使用最小二乘法(least square) 来计算w。

我们构建一个方程,这个方程也是最小二乘法的核心

24.png


支持向量机的本质,就是找到一组w,能够让Jemp最小!Jemp因此,就是我们的成本函数。


3.2 用最小二乘法学习的问题


如果我们的问题是’灰箱‘(grey box)(即我们已经知道数学模型,而不知道参数),直接用最小二乘法找到w很简洁的。


如果我们的问题是‘黑箱’(black box) (即 我们既不知道数学模型,也不知道参数),在拟合时,我们就不知道我们需要用几阶的多项式模型来逼近(或者几个核函数来逼近(kernel function),为了简便,不在这里赘述)。那么我们甚至连w的个数都不知道。


我们只能通过尝试和专家经验来猜测阶数。如果我们的阶数猜测多了,就会多出很多冗余的项。我们希望这些冗余项对应的权值w为0,这样我们就知道哪些项是无关的,是冗余的项。


但是只用最小二乘法确定w时,可能所有的w绝对值都极其巨大,这是很正常的现象,但是它使得我们无法剔除无关项,得到的模型也毫无实际意义,模型处于ill-condition状态 (即输入很小的变化,就会引起输出病态的巨大的变化)。


最大复杂度模型+L1正规化(惩罚项)

我们在成本函数中加入L1范数(其实就是惩罚项),成本函数Jtot变为:


25.png



其中ρ是我们用来控制L1正规化影响的权重系数。

因此,我们的目标成为了 : 找到一组 w使得Jtot最小!继而使用最小二乘法,完成运算。


3.3 为什么要这样构建成本函数???

如上文所述,监督机器学习问题无非就是“minimize your error while regularizing your parameters”,也就是在规则化参数的同时最小化误差(最小二乘法的原理)。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。因为参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。但训练误差小并不是我们的最终目标,我们的目标是希望模型的测试误差小,也就是能准确的预测新的样本。所以,我们需要保证模型“简单”的基础上最小化训练误差,这样得到的参数才具有好的泛化性能(也就是测试误差也小),而模型“简单”就是通过规则函数来实现的。另外,规则项的使用还可以约束我们的模型的特性。这样就可以将人对这个模型的先验知识融入到模型的学习当中,强行地让学习到的模型具有人想要的特性,例如稀疏、低秩、平滑等等。


4 L2正则化


L2正则化,又叫Ridge Regression

如下图所示,L2是向量各元素的平方和


26.png


5 L1和L2的异同点


相同点:都用于避免过拟合

不同点:L1可以让一部分特征的系数缩小到0,从而间接实现特征选择。所以L1适用于特征之间有关联的情况。L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没有关联的情况


6 参考


相关文章
|
7月前
|
机器学习/深度学习
大模型开发:解释正则化及其在机器学习中的作用。
正则化是防止机器学习过拟合的技术,通过限制模型参数和控制复杂度避免过拟合。它包含L1和L2正则化,前者产生稀疏解,后者适度缩小参数。选择合适的正则化方法和强度对模型性能关键,常用交叉验证评估。
194 1
|
7月前
|
机器学习/深度学习 算法
【机器学习】正则化 Regularization 过拟合欠拟合
【1月更文挑战第27天】【机器学习】正则化 Regularization 过拟合欠拟合
|
机器学习/深度学习 算法
【机器学习基础】正则化
【机器学习基础】正则化
85 0
|
7月前
|
机器学习/深度学习 测试技术
机器学习第6天:线性回归模型正则化
机器学习第6天:线性回归模型正则化
|
6月前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
79 3
|
5月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的正则化技术
在机器学习领域,正则化技术是防止过拟合的关键手段之一。本文将深入探讨L1与L2正则化方法的理论基础、实际应用及其对模型性能的影响。通过对比分析与案例研究,本文旨在为读者提供一套系统的正则化应用框架,帮助构建更加健壮和可靠的机器学习模型。
|
7月前
|
机器学习/深度学习 算法 算法框架/工具
【Python机器学习专栏】深度学习中的正则化与优化技术
【4月更文挑战第30天】本文探讨了深度学习中的正则化和优化技术,以提升模型的泛化能力和训练效率。正则化包括L1和L2正则化以及Dropout,防止过拟合。优化技术涵盖梯度下降法、动量法和Adam优化器,加速模型收敛。Python示例展示了如何在Keras中应用这些技术,如L2正则化、Dropout及Adam优化器。
123 0
|
21天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
65 4
|
18天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
37 1
|
26天前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络