【机器学习基础】正则化

本文探讨了机器学习中的正则化技术,旨在解决过拟合问题。通过介绍Ridge Regression和L1、L2 Regularizer,阐述了不同λ值对模型的影响,以及正则化如何与VC理论相结合。文章强调了正则化在降低模型复杂度、提高泛化能力方面的重要性,同时提供了λ选择的初步指导。

引言

上一小节中,我们介绍了过拟合的概念,在机器学习中最大的危险就是过拟合,为了解决过拟合问题,通常有两种办法,第一是减少样本的特征(即维度),第二就是我们这里要说的“正则化”(又称为“惩罚”,penalty)。

从多项式变换和线性回归说起

在非线性变换小节中,我们有讨论Q次多项式变换的定义和其包含关系,这里如果是10次多项式变换,那么系数的个数是11个,而2次多项式的系数个数是3。从中我们可以看出,所有的2次多项式其实是10次多项式加上一些限制,即w3=w4=...=w10=0。


基于上面的讨论,我们希望能将二次多项式表示成十次多项式再加上一些约束条件,这一步的目的是希望能拓宽一下视野,在推导后面的问题的时候能容易一些。
这个过程,我们首先要将二次多项式的系数w拓展到11维空间,加上w3=w4=...=w10=0这个条件得到假设集合H2;然后为了进一步化简,我们可以将这个条件设置的宽松一点,即任意的8个wi为0,只要其中有三个系数不为0就行,得到一组新的假设空间H2',但这个问题的求解是一个NP-hard的问题,还需要我们修正一下;最后,我们还需要将这个约束条件进一步修正一下得到假设集合H(C),给系数的平方的加和指定一个上限,这个假设集合H(C)和H2'是有重合部分的,但不相等。
最后,我们把H(C)所代表的假设集合称为正则化的假设集合。
下图表示了这个约束条件的变化:


正则化的回归问题的矩阵形式

### L1正则化的原理 L1正则化是一种通过在损失函数中引入权重系数的绝对值之和来约束模型复杂度的技术。其核心在于通过对权重施加惩罚,促使部分权重变为零,从而实现稀疏解的效果[^1]。 具体而言,在线性回归或其他监督学习任务中,L1正则化的优化目标可表示为: \[ \text{minimize } \text{MSE} + \lambda \sum_{j=1}^{p} |w_j| \] 这里的 \( w_j \) 表示第 \( j \) 个特征对应的权重,\( \lambda \) 是控制正则强度的超参数[^2]。 --- ### L1正则化的作用 #### 1. **特征选择** 由于L1正则化倾向于使一些权重精确等于0,这实际上起到了自动特征选择的功能。只有那些对预测结果贡献显著的特征会被保留下来,其余不重要的特征被赋予零权重。 #### 2. **防止过拟合** 通过减少有效参与建模的特征数量以及降低各权重的数值范围,L1正则化能够有效地缓解模型的过拟合现象[^3]。 #### 3. **提高解释性** 因为最终模型仅依赖少数几个重要特征,所以相比未经过正则化的模型更加易于理解和分析[^4]。 --- ### 几何视角下的稀疏性原因 从几何角度看,L1正则化之所以能产生稀疏解是因为它定义了一个具有尖角形状(如二维情况下的菱形)的可行域边界。相比于圆形边界的L2正则化,这种特殊的结构更有可能让最优解落在坐标轴上——此时对应维度上的权值恰好为零。 此外需要注意的是,并不是所有的初始条件都能导致完全意义上的稀疏解;当不同方向上的梯度变化幅度相近时,则可能只是单纯缩小了所有参数规模而不至于彻底消除某些特定项[^5]。 --- ### 实现方法 以下是基于Python语言的一个简单例子展示如何利用Scikit-Learn库实现带L1正则化的逻辑斯蒂回归分类器: ```python from sklearn.linear_model import LogisticRegression import numpy as np # 创建数据集 (假设二元分类问题) X = np.array([[0, 0], [1, 1]]) y = np.array([0, 1]) # 初始化带有L1正则化的Logistic Regression对象 clf = LogisticRegression(penalty='l1', solver='liblinear') # 训练模型 clf.fit(X, y) print("Coefficients:", clf.coef_) ``` 上述代码片段展示了设置`penalty='l1'`即可启用L1正则化机制,同时指定合适的求解算法比如`liblinear`支持该功能。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值