零、前言

在机器学习建模过程中,正则化是控制模型复杂度,对抗过拟合,追求更优预测效果的重要手段。本文从多个角度对 L2 正则化进行讲解,内容涵盖线性回归、岭回归、贝叶斯、主成分分析、奇异值分解、模型自由度、偏置-方差平衡等。

本文提纲为:

  1. 介绍线性回归(Linear Regression)和岭回归(Ridge Regression),从岭回归引入 L2 正则化(L2 Regularization);
  2. 在贝叶斯视角下,从最大化似然概率(Likelihood Probability)和后验概率(Posterior Probability)的角度理解最小二乘和 L2 正则化;
  3. 从主成分分析(principle component analysis)的角度理解 L2 正则化,阐述 L2 正则化如何对方差小的主成分方向进行惩罚;
  4. 从偏置(bias)-方差(variance)平衡和模型自由度的角度理解 L2 正则化如何对抗过拟合。

本文先导知识包括:线性代数(矩阵乘法、向量内积、转置、线性独立、向量正交、线性空间及其基、逆矩阵、矩阵的秩和迹、矩阵特征值和特征向量),概率(期望、方差、协方差、多元正态分布、贝叶斯公式)。


一、线性回归、岭回归与 L2 正则化

维向量
为标量。令
之间满足:
是服从
正态分布的随机误差,且对于每一个
是独立同分布的。如果把
增加一维成为
,其中
,再令向量
,则 [1.1] 可以写成向量形式:

下文默认向量

包含
且共有
维。训练集由
个向量
和标量
构成:
。线性回归的任务就是从训练集中学习最优的参数
。何谓最优?一种方法是定义损失函数
如下:

对每一个样本计算模型预测的平方误差(squared error),在

个样本上取平均就得到均方误差 mse(

mean squared error)。mse 衡量了

个预测值
与对应真实值
之间的总差异。

把每一个训练样本的转置

作为一行构造一个
矩阵
。模型对
个样本的预测是
维向量

个真实输出也列成
维向量
。 mse 损失函数可以写成:

能够使

达到最小的
就是线性回归问题的最小二乘解(

least square)。

是一个二次函数,具有唯一的最小值。
满足必要条件:

解此方程得到:

于是模型对训练集的预测就是:

为变换矩阵。它的迹(

trace,对角线元素之和)是:

其中

单位矩阵。上式利用了
的迹等于
的迹这个事实。可以看到
的迹就是模型参数的数量
。将变换矩阵的迹定义为模型的自由度,则最小二乘线性回归模型的自由度就是模型参数的数量。

最小化

就是寻找
使
达到最小。由
的列线性组合而成的向量集合是一个线性空间——
的列空间。最小化
就是在
的列空间中寻找一个与
距离最小的向量,即
列空间上的投影。
就是这个投影。

式 [1.7] 存在一个问题。假如

的列线性相关,即训练样本的各特征线性相关,则
的秩小于
。那么
矩阵
不满秩,为奇异矩阵不可逆。于是 [1.7] 不再成立。为了避免这个问题,可人为将
的对角线元素增大一个量
,变成
。其中
为单位矩阵。在矩阵
的对角线上加上一个值增高了它的“山岭”。山岭增高后的矩阵变成可逆的。把它代入 [1.7] 得到:

这就是岭回归(Ridge Regression)的解公式。岭回归的预测值是:

按照上面对自由度的定义,岭回归的自由度应该是变换矩阵

的迹。它比最小二乘的自由度是大是小呢?这里先卖个关子,留待后文揭晓。

最小二乘解是使均方误差 mse 最小的解。那么岭回归的解是否最小化了什么东西呢?请看下面的损失函数:

满足极小值必要条件:

解该式得到:

可看到

最优化
是 mse 加上
倍。
就是

L2 正则化项。它其实是

的模(

长度)的平方。它度量的是各个系数的绝对值大小。将它作为惩罚项加入损失函数,迫使最优解的各系数接近 0 。

是一个超参数,它控制着
的重要程度。若
则没有正则化;若
则各参数只能是 0 。
相对于样本个数
越大则正则化越强。下节将从贝叶斯观点出发,为理解 L2 正则提供另一视角。

二、贝叶斯观点下的最小二乘和 L2 正则

所谓训练,是指观察到一组训练样本和目标值

),找到使后验概率
达到最大的
。根据贝叶斯公式:

等号右侧分子的第一项是似然概率,第二项是先验概率。第一节提到线性回归问题预设:

其中

服从
。且每一个
独立。那么向量
就服从多元正态分布
。似然概率的密度函数是:

施加
,并将一些与
无关的常数项整理到一起,得到:

注意右边的第二项。撇开与

无关的系数它就是负的均方误差 mse 。也就是说最小化 mse 等价于最大化似然概率。

但是我们的终极目标是最大化后验概率。最小二乘解最大化的是似然概率,相当于预设

的先验概率与
取值无关。如果预设
服从多元正态分布
,则后验概率可以写为:

施加
并将无关的常数项整理到一起,得到:

忽略与

无关的常数项和系数项,最大化后验概率等价于最小化带 L2 正则项的 mse 损失函数。正则系数
反比于
的先验方差
越大相当于先验方差
越小,
的取值越集中。这就是控制了模型的自由度。第一节说过将模型自由度定义为变换矩阵的迹。那么变换矩阵的迹与此处的自由度有关么?下一节将从主成分角度出发为理解 L2 正则提供又一个洞见。同时 L2 正则化对模型自由度的影响也将清晰起来。

三、主成分与 L2 正则

本节假设训练集

中的样本
经过中心化,也就是
每一个分量的平均值都为 0 。那么训练样本的协方差矩阵就是:
是对称矩阵,它的特征值都是非负实数(

可以多重)。这些特征值对应的特征向量线性独立且两两正交(此事实本文不证明,可参考 [1])。令

为对角矩阵,其对角线上的元素为从大到小排列的
特征值
。令
为以这些特征值对应的标准特征向量
做列组成的
矩阵。这些标准特征向量两两正交且模都为 1 。于是有
。由特征值和特征向量的定义,有:

也就是:

一个对称矩阵(这里是

)可分解成一个正交矩阵
和一个对角矩阵
的乘积形式 [3.3] 。这称为对称矩阵的谱分解。
个列向量构成
维空间的一组标准正交基,也就是一个标准正交坐标系。令:
的第一列为
个样本在坐标系
第一个坐标轴上的投影, 第二列是在第二个坐标轴上的投影,依此类推 。
个行向量构成一组新的
维特征向量。它们的协方差矩阵为:

其非对角线元素为 0 ,即

个特征两两不相关。
的第一个分量的方差
最大,
的第一大特征值。
的第二个分量的方差
次大,
的第二大特征值,依此类推。
的列分别为
的第一主成分、第二主成分,依此类推。若
只有
个非零特征值,则
只有
个方差不为 0 的特征。由于
只是原数据在新坐标系
的投影,这说明原数据的真实维度只有
维。也可以把
排在后面的小特征值忽略,因为在这些小特征值对应的特征方向上原数据方差很小,可以认为是噪声。主成分分析是一种降维手段,将原始数据降到真实维度或更低的维度。降维后的数据保留了原始数据的绝大部分信息。新数据各维之间摆脱了共线性,有利于减少模型的方差。

要谈主成分与 L2 正则的关系,就需要先介绍奇异值分解。若

个非 0 特征值
,则它们的平方根
就是矩阵
的奇异值。用这
个奇异值做对角线元素组成一个
的对角矩阵
。用
对应的标准特征向量
做列组成一个
的矩阵
。再用
维向量做列组成一个
的矩阵
。则有:

因为

的列为对称矩阵
的标准特征向量,它们模为 1 且两两正交。于是
。如此:

这就是矩阵

的奇异值分解。另外,
的列可以张成
的列空间,因为对于任意一个
列空间中的向量:

上式第四个等号成立是因为

只有前
个特征值非 0 ,对于 0 特征值对应的特征向量
有:

所以有

。 另外
的列两两正交:

最后,

的列向量是标准的(

模为 1):

个非 0 特征值,说明
的秩为
。它的列空间为
维空间。则
的列构成
列空间的一组标准正交基。且
个列是经过标准化的
的前
个主成分。看一下线性回归最小二乘解的公式(

推导过程中记住

,

以及

):

的列作为
列空间的基,上式最后一个等号告诉我们
列空间上的投影(

与之前的结论一致)。

的主成分的线性组合,系数为
在各个主成分方向上的投影
长度。

L2 正则化终于要登场了:

在带 L2 正则化的岭回归问题中,

仍是
的列
的线性组合,但组合系数是
的各个主成分方向上的投影
长度再各自乘上一个系数
。该系数大于 0 而小于 1。
越大则系数越接近 0 ,越小则越接近 1 。同时大特征值对应的系数比小特征值对应的系数更接近 1 。若
为 0 则所有系数都为 1,
退化成为

于是可以看到,相比于最小二乘, 岭回归在预测

的时候对每个主成分方向都施加了一个惩罚(

乘上小于 1 的系数)。正则系数

越大则惩罚越强。
为 0 则无惩罚。相对于方差较大的主成分方向惩罚较轻;相对于方差较小的主成分方向,惩罚较重。如果认为方差较小的方向来自噪声,则 L2 正则压缩了噪声的影响,降低了
的方差。主成分分析原样保留大方差方向,去掉小方差方向,相当于一个硬选择。而 L2 正则根据方差的大小施加不同程度的惩罚,相当于软选择。接下来再看自由度。式 [3.13] 表明岭回归的变换矩阵为:

它的迹为:

可见,加入 L2 正则化之后模型的自由度小于参数个数


四、偏置-方差权衡与 L2 正则化的作用

对于一个新样本点

,其真实输出为
,模型预测值为
。将平方误差
取期望得到期望误差。这里取期望的随机因素包括真实值
的随机性以及训练集的随机性(

这导致了

的随机性

):

第一步根据平方的期望等于期望的平方加上方差。第二步利用事实:训练集外再观察一次得到的

和预测值
之间的是独立的。该式表明模型的期望误差等于数据本身的方差,模型预测值的方差,模型预测偏置的平方三部分加和。偏置与方差是一对矛盾。模型复杂度高则偏差小方差大,产生过拟合。模型复杂度低则偏差大方差小,产生欠拟合。模型调参就是通过超参数控制模型复杂度,在偏置与方差权衡中找到一个平衡点使得期望误差最小。

上节说过 L2 正则压抑小方差主成分方向的影响从而降低预测的方差。这是有代价的。它使模型的预测变得有偏。考察一下最小二乘解和岭回归解在训练样本集

上预测值

式 [1.8] 和 式 [1.11])的均值和方差:

由此看出,最小二乘解的预测是无偏的。

的协方差矩阵为:

预测值第

个分量
的方差为
是变换矩阵
的第
个对角线元素。全体
个预测值的方差之和为:

而岭回归的预测值

的期望为:

估计不再无偏。但是

的协方差矩阵是:

预测值第

个分量
的方差为
是矩阵
的第
个对角线元素。全体
个预测值的方差之和为:

可见 L2 正则化牺牲了偏置,但减小了预测值的方差。

模型自由度即模型复杂性。根据线性模型自由度的定义

,岭回归的自由度低于最小二乘的自由度。L2 正则化降低模型复杂度,使方差更低而偏差更高。在上图中就是向着左侧靠拢。通过调节正则化系数
可以控制模型自由度,在 bias-variance trade-off 中寻找最佳平衡点,追求最优的泛化效果。

五、参考数目

线性代数及其应用 (豆瓣)​book.douban.com

统计学习基础(第2版)(英文) (豆瓣)​book.douban.com

pytorch l2正则化_理解机器学习中的 L2 正则化相关推荐

  1. [机器学习必知必会]如何理解机器学习中的正则化

    正则化综述 机器学习中经常会在损失函数 中加入正则项,称之为正则化(Regularize). 目的:防止模型过拟合 原理:在损失函数上加上某些规则(限制),缩小解空间,从而减少求出过拟合解的可能性 例 ...

  2. 机器学习 处理不平衡数据_在机器学习中处理不平衡数据

    机器学习 处理不平衡数据 As an ML engineer or data scientist, sometimes you inevitably find yourself in a situat ...

  3. 深入理解机器学习中的:目标函数,损失函数和代价函数

    参考知乎回答整理:https://www.zhihu.com/question/52398145 主要参考:https://www.zhihu.com/question/52398145/answer ...

  4. drools规则中调用其它规则_简化机器学习中的关联规则

    你可能遇到在超市结账时,POS机自动为你打印优惠券.或者曾经观看过您的流媒体服务为您生成的视频播放列表.或者去网上购物时看到标有"你可能会感兴趣......"的产品清单中确实包含了 ...

  5. 机器学习中激活函数和模型_探索机器学习中的激活和丢失功能

    机器学习中激活函数和模型 In this post, we're going to discuss the most widely-used activation and loss functions ...

  6. 你真的理解机器学习中偏差 - 方差之间的权衡吗?

    作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 简书地址:http://www.jianshu.com/p/f143... 我认为对偏差 - 方差之间的 ...

  7. 透彻理解机器学习中极大似然估计MLE的原理(附3D可视化代码)

    文章目录 相关资料 一.什么是概率,什么是似然 二.极大似然估计 Maximum Likelihood Estimation (MLE) 的含义 2.1 机器学习中的极大化似然函数 2.2 极大似然估 ...

  8. (Latent Space)理解机器学习中的潜在空间

    原文链接:https://zhuanlan.zhihu.com/p/369946876 搬运自 https://towardsdatascience.com/understanding-latent- ...

  9. 高斯过程是什么?从视觉上理解机器学习中的高斯过程——Gaussian Process

    --如何将一组小型构建块转变为解决回归问题的灵活的工具. 目录 Introduction 简介 Multivariate Gaussian distributions 多元高斯分布 Marginali ...

  10. python中元组_理解python中的元组

    理解 python 中的元组 引言 在 Python 中元组是这样的: 元组是是这样一种数据结构:不变的或者不可改变的(简单来说不能重新赋值) .元素的有序序列.因为元组是 不变的,所以他的数值是不能 ...

最新文章

  1. 《编译与反编译技术实战》——第2章编译器实践概述
  2. CTFshow php特性 web98
  3. PHP5魔术函数与魔术常量
  4. 机器人的自述作文_机器人的自述作文600字
  5. SQL Server 导入bak备份出错
  6. python 字典列表指定key排序
  7. 迅捷cad_迅捷泛型
  8. Error fetching https://gems.ruby-china.org/: bad response Not Found 404 (https://gems.ruby-china.or
  9. C. mathematican 的二进制
  10. MATLAB人脸识别系统
  11. 数据可视化_科学统计图表5——ggplot绘制南丁格尔玫瑰图
  12. 基于DFSMN-CTC及CTC-CE联合训练的声学模型
  13. 《数据库原理与应用》马春梅 禹继国 黄宝贵 祝永志 编著 P30 六个表的实现
  14. 知乎上的100条简短深刻的回答
  15. ARM开发板使用GDB调试程序
  16. c++语言打开文件对话框,C++采用openfilename打开文件对话框用法实例
  17. 彻底解决DNS劫持污染,如何彻底解决DNS劫持污染,方法介绍
  18. hugo使用katex
  19. [转帖] 中国手机设计公司IDH 大史记
  20. 人工智能时代,有哪些新的职业机会?

热门文章

  1. BW Delta (增量)更新方法 .
  2. 9.软件架构设计:大型网站技术架构与业务架构融合之道 --- 高可用与稳定性
  3. 14. model(2)
  4. 1.Chrome开发者工具不完全指南(一、基础功能篇)
  5. 27. Location reload() 方法
  6. 1.3 Zend_Acl (3)
  7. maven学习七之用户密码修改和添加用户
  8. 5 helloword 开发运行步骤
  9. Java动态代理的实现机制
  10. bzoj1831 逆序对 (dp+树状数组)