机器学习之L1、L2的区别与相关数学基础知识

数学概念

本文将总结在机器学习与深度学习中所涉及到的一些基础数学知识与概念。并阐述该数学知识在机器学习中的一些意义。(本文不定期持续更新)

映射与函数

映射表达的就是一个集合通过某种关系转为另外一个集合。而函数是一种特殊的映射。为了更好地在数学上表达这种映射关系(尤其是线性关系),引入了矩阵。

线性与非线性

线性linear,指量与量之间按比例、成直线的关系,在数学上可以理解为一阶导数为常数的函数;在函数中,可以简单地理解为由数字相乘和相加组合而成,并不包含任何次方的概念
非线性non-linear则指不按比例、不成直线的关系,一阶导数不为常数。在函数中任何二次或多次方的多项式,都是非线性的。

空间

现代数学以集合为研究对象,有了研究对象,还需要有研究对象需要遵循的规则。定义一个规则后就得到了一个赋有某种规则的集合,即一个空间。
因此,数学中的空间的组成包括两个部分:研究的对象和内在的规则,或者叫做元素和结构。

线性空间(向量空间)

线性空间就是定义了加法和数乘的空间。在机器学习过程中,本人认为,可以狭义的认为向量空间等同于线性空间

向量

既然空间是一个集合,那么组成线性空间这个集合的元素被称作向量。
向量(也称为欧几里得向量、几何向量、矢量),指具有大小(magnitude)和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。

基,是线性代数的概念。在线性代数中,基(也称为基底)是描述、刻画向量空间的基本工具。这里可以想象一下,如果我们要在一个三维空间去描述一个向量,首先我们需要去做一个坐标系。那么这个坐标系,就可以看作是我们的基。(可以扩展至多维空间也是同样的道理)
向量空间的基是它的一个特殊的子集,基的元素称为基向量。
向量空间中任意一个元素,都可以唯一地表示成基向量的线性组合。如果基中元素个数有限,就称向量空间为有限维向量空间,将元素的个数称作向量空间的维数。
(个人理解就是任何在线性空间中,不能再被拆分的所有向量都可以称之为这个空间的基向量)
同理,推导出任何一些线性不相关的

矩阵

矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合。
这里推荐一下这篇文章:https://blog.csdn.net/qq_34993631/article/details/80671693
如果没兴趣看的话,简而言之矩阵的本质是用来形容运动的。而“运动”可以理解为伸缩和旋转。
机器学习为什么要用矩阵?试着想一想机器学习的过程用来提取特征性向量,在训练过程中也是将数据变成一个个的特征向量。n个样本每个样本具有m个特征,将组成一个n*m的矩阵。
同时,矩阵可以用来表达一种映射关系。一个向量通过矩阵所表达的映射关系得到另一个向量。(可以简单的理解为原始向量在训练中不断通过这种映射关系的计算提取最终的特征向量的过程。)

关于机器学习所涉及的所有其他的关于矩阵相关的知识,参考另一篇文章:

范数

范数,是具有“长度”概念的函数。是矢量空间内的所有矢量赋予非零的正长度或大小。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。

向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样;对于矩阵范数,学过线性代数,我们知道,通过运算AX=B,可以将向量X变化为B,矩阵范数就是来度量这个变化大小的。
∥ x ∥ \left \| \boldsymbol{x} \right \| x ∥ X ∥ \left \| \boldsymbol{X} \right \| X
其中, x \boldsymbol{x} x X \boldsymbol{X} X 分别表示向量和矩阵

参考链接:范数定义和数学意义.

L-p范数

L-P范数不是一个范数,而是一组范数:

l-p范数的变化过程

L-0范数

当P=0时,也就是L0范数,由上面可知,L0范数并不是一个真正的范数,它主要被用来度量向量中非零元素的个数。
L0
我们知道非零元素的零次方为1,但零的零次方为0,非零数开零次方都是什么鬼,很不好说明L0的意义,所以在通常情况下,大家都用的是:
L0
表示向量x中非零元素的个数。

对于L0范数,其优化问题为:
l0
使得其非常适合机器学习中稀疏编码(一种无监督学习),特征选择的应用。

(由于L0是一个NP-hard问题,所以一般用L1来对模型进行约束)

L-1范数

定义:
∥ X ∥ 1 = ∑ i = 1 n ∣ x i ∣ {\left\| X \right\|_1} = \sum\limits_{i = 1}^n {\left| {{x_i}} \right|} X1=i=1nxi
即 各个元素的绝对值之和。
L1范数有很多的名字,例如我们熟悉的曼哈顿距离、最小绝对误差等。使用L1范数可以度量两个向量间的差异,如绝对误差和(Sum of Absolute Difference):
l1
优化问题如下:
在这里插入图片描述
对L1优化的解是一个稀疏解,因此L1范数也被叫做稀疏规则算子。通过L1可以实现特征的稀疏,去掉一些没有信息的特征。

L-2范数

L2范数是我们最常见最常用的范数了,我们用的最多的度量距离欧氏距离就是一种L2范数,它的定义如下:
l2
像L1范数一样,L2也可以度量两个向量间的差异,如平方差和:
在这里插入图片描述
优化问题:
在这里插入图片描述
L2范数通常会被用来做优化目标函数的正则化项,防止模型为了迎合训练集而过于复杂造成过拟合的情况,从而提高模型的泛化能力。

L-∞范数

它主要被用来度量向量元素的最大值,与L0一样,通常情况下表示为 :
在这里插入图片描述

机器学习中的正则化

正则化让模型根据训练数据中常见的模式来学习相对简单的模型,无正则化的模型用大参数学习大噪声。

L1正则化

损失函数为:
在这里插入图片描述
其中L0表示没有正则化时的损失函数。对它求w的偏导:
∂ ℓ ∂ w = ∂ ℓ 0 ∂ w + λ ⋅ s g n ( w ) \frac{\partial{\ell}}{\partial{w}} = \frac{\partial{\ell_0}}{\partial{w}} + {\lambda}\cdot sgn(w) w=w0+λsgn(w)

L1正则能让模型变得稀疏。L1对于小权重减小地很快,对大权重减小较慢,因此最终模型的权重主要集中在那些高重要度的特征上,对于不重要的特征,权重会很快趋近于0。

L2正则化

损失函数:
在这里插入图片描述
最小化损失函数:
在这里插入图片描述
L2正则化通过权重衰减,保证了模型的简单,提高了泛化能力。
原因解释:参考链接

L1与L2的区别

L1减少的是一个常量,L2减少的是权重的固定比例
L1使权重稀疏,L2使权重平滑
L1优点是能够获得sparse模型,对于large-scale的问题来说这一点很重要,因为可以减少存储空间
L2优点是实现简单,能够起到正则化的作用。缺点就是L1的优点:无法获得sparse模型

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值