【机器学习300问】18、正则化是如何解决过拟合问题的?

        当我初次看见“正则化”三个字的时候,我简直头疼。在我的理解里“正则”还是Python中用在字符串处理的re正则库呢!怎么加一个“化”字就看不懂了!听我给你慢慢道来。

一、正则化中的“正则”是个啥玩意儿?

        正则化(Regularization)中的“正则”这个词来源于英文术语“regularization”,直译成中文即“规范化”或“正规化”。这里的“正则”并不是指严格意义上的“规则”或“规律”,而是指通过一定的数学手段规范或约束模型的学习过程,使其更加稳健、简洁并且避免过拟合。

        所以正则化就是规范和约束模型参数的意思。

二、怎么去理解正则化能够解决过拟合(感性上)?

        还是用我一贯的做法,先看看例子和图片从直觉上感受一下正则化解决过拟合的直观体验。接下来文章中以房价预测任务+线性回归模型+均方误差损失函数+L2正则化(又叫权值缩减)为例。

(1)未使用正则化手段出现过拟合时

        可以从图中明显的看到出现了过拟合现象,虽然模型(也就这条线)很好的穿过了所有点(也就是模型在训练集上表现很好)但显然如果用一个没见过的数据来进行预测的话结果会很差(也就是模型在测试集上表现很差),因为房价随着房子面积肯定是增长的而图中模型最后都下降了。

(2)使用了“轻微的”正则化后

        使用正则化后可以发现这条线明显比之前要平滑,没有那么的抖动了

(3)使用了“合适的”正则化后

 

        假设正确的拟合模型是对数函数曲线,但上图这个模型曲线虽然还有些扭曲但比一开始已经平滑很多了。

三、怎么去理解正则化能够解决过拟合(理性上)?

        在L2正则化中,模型的目标函数被修改为原始损失函数与模型参数的L2范数(即参数平方和)的和,加上一个正则化系数λ的权重。目标函数可以表示为:

J(\theta )=L(\theta )+\lambda \sum_{j}^{n}\theta_{j}^{2}

        其中,L(θ) 是原来的损失函数,如均方误差,θ 是模型的参数向量(之前我都是写的w和b这里用θ统称他们),λ 是正则化强度(正则化系数),它控制着正则化项的影响力。        

        在梯度下降的过程中,模型参数θ的更新规则会受到正则化项的影响。当计算损失函数关于参数θ的梯度时,正则化项会产生额外的梯度贡献,这部分梯度指向使参数θ减小的方向。对于每一个参数\theta_{j},其梯度不仅受到原始损失函数的影响,还受到正则化项的影响,即:

\frac{\partial J(\theta )}{\partial \theta_{j}}=\frac{\partial L(\theta )}{\partial \theta_{j}}+2\lambda \theta_{j}

        在更新参数时,如果某个参数\theta_{j}的绝对值已经比较大,那么正则化项会使该参数的梯度增加,进一步推动参数朝着减小方向更新。特别是对于较大的参数,正则化项的效应更加明显,会强制这些参数变得更小。

        这样一来,通过正则化,模型学会了“谦虚”,即不赋予任何单个特征过大的权重,从而减少了模型对个别特征的过度依赖,增强了模型对未知数据的泛化能力,有效地缓解了过拟合现象。同时,由于参数受到了限制,模型的整体复杂度也会相应降低,这也是正则化能够抑制特征权重过大的机制。

四、正则化强度参数非常重要

        正则化确实会导致模型的所有参数(特征权重)在某种程度上变小,但不同的特征权重缩小的程度可能并不相同。这是因为正则化是通过对损失函数添加了一个对参数的惩罚项,使得在训练过程中不仅关注原始损失的最小化,同时也关注参数的大小。

        在L2正则化中,参数的梯度更新时会受到正则化项的影响,这会促使所有的参数向更小的值收缩,但是收缩的程度取决于:

  • 参数原有的大小:原本较大的参数受到正则化的影响更为显著,它们会被更多地减小。
  • 正则化强度(λ):λ值越大,正则化对参数的影响越强,所有参数都会更大幅度地减小。

        正则化强度(通常表示为 λ)是一个至关重要的超参数,它决定了正则化项在优化过程中对模型参数的约束力度。选择合适的正则化强度直接影响到模型的泛化能力,即模型在未见过的新数据上的表现。

最近更新

  1. TCP协议是安全的吗?

    2024-01-26 08:34:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-26 08:34:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-26 08:34:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-26 08:34:03       20 阅读

热门阅读

  1. mysql备份

    2024-01-26 08:34:03       28 阅读
  2. Acwing---786. 第k个数

    2024-01-26 08:34:03       33 阅读
  3. Flask 之旅 (一)

    2024-01-26 08:34:03       32 阅读
  4. python的Flask生产环境部署说明照做成功

    2024-01-26 08:34:03       25 阅读
  5. 开源计算机视觉库OpenCV详解

    2024-01-26 08:34:03       30 阅读
  6. 如何保证消息队列不丢失消息(以kafka为例)

    2024-01-26 08:34:03       26 阅读
  7. 计算机网络第三章习题(谢希仁)

    2024-01-26 08:34:03       31 阅读