范数与正则化以及过拟合问题

正则化和过拟合问题是机器学习过程中不可避免会遇到的知识点,其数学基础是范数这个概念。现将此问题的学习与理解记录下来。

一、范数(Norm)与正则化(Regularization)

先从字面意思理解,“范数”首先是一个数,然后是“规范的数”。那么什么是规范呢?Norm,就是标准与规范的意思,其英文释义是a standard or model or pattern regarded as typical。这里展开说一下,Norm的含义还可以引申为常态、定量、定额。

其中师范类学校的英文也翻译成Normal University,所以有的时候北师大也可以戏称为北京正常大学,其它类的学校则是Abnormal University(手动滑稽)。北师大的校训也是“学为人师,行为世【范】”。

那么Norm究竟是什么?规范的标准怎么理解?举几个例子可以加深定量的、具象的认识——多重为1克,多长为1米,多快为1秒?这些都是现在人类科学上通行的“规范”。社会学上的行为规范则更为抽象,不好理解,但本质上还是一种通行的“标准与规则”。

接下来我们抛开这些文字上的理解,看看数学上范数是如何定义的,公式一列,就全部拿捏。

  • L 0 L0 L0 Norm:
    ∥ x ∥ 0 = ∑ i = 1 k ∣ x i ∣ 0 \| x \| _0 = \sum_{i=1}^k \lvert x_i \rvert ^0 x0=i=1kxi0
  • L 1 L1 L1 Norm:
    ∥ x ∥ 1 = ∑ i = 1 k ∣ x i ∣ \| x \| _1 = \sum_{i=1}^k \lvert x_i \rvert x1=i=1kxi
  • L 2 L2 L2 Norm:
    ∥ x ∥ 2 = ∑ i = 1 k ∣ x i ∣ 2 \| x \| _2 = \sqrt{ \sum_{i=1}^k \lvert x_i \rvert ^2} x2=i=1kxi2
  • ∞ \infty Norm:
    ∥ x ∥ ∞ = m a x ( ∣ x 1 ∣ , ⋯   , ∣ x k ∣ ) \| x \|_\infty = max( \lvert x_1 \rvert, \cdots, \lvert x_k \rvert) x=max(x1,,xk)

L 1 L1 L1 L 2 L2 L2 ∞ \infty Norm 比较容易理解,分别是向量 x x x 中各个元素的绝对值之和,绝对值的平方和的开方,以及绝对值中的最大值。 L 0 L0 L0 Norm 则等于向量 x x x 中非零元素的个数。其中 ∣ x i ∣ 0 \lvert x_i \rvert ^0 xi0 为示性函数,
∣ x i ∣ 0 = { 1 , x i ≠ 0 0 , x i = 0 \lvert x_i \rvert ^0 = \begin{cases} 1, & x_i \neq 0 \\ 0, & x_i = 0 \end{cases} xi0={1,0,xi=0xi=0

一般机器学习的损失函数中,有一项由上述范数构成的正则项,起到约束参数的作用,筛选能为预测输出Y提供信息的稀疏特征项。从稀疏性而言, L 0 > L 1 > L 2 > ∞ L0>L1>L2>\infty L0>L1>L2> 。而由于 L 0 L0 L0 范数最小化问是NP问题(选择合适的特征系数是否为 0 0 0, 是特征规模的指数函数,是个组合优化问题),所以虽然其致稀疏的能力最强,但是一般会用 L 1 L1 L1范数来做 L 0 L0 L0的优凸近似,提高求解速度。

为什么要稀疏呢?稀疏的本质其实是去多重共线性与求主成分,把冗余的特征筛掉,留下信息量高的特征。

L 2 L2 L2 正则化( L 2 L2 L2 范数的平方)则通过降低参数的取值,减少模型的过拟合倾向,提升模型的泛化能力。

L 1 L1 L1 使参数在迭代过程中倾向取值为 0 0 0,从而稀疏化特征规模; L 2 L2 L2 约束参数取值过高,缓和模型的过拟合倾向。具体数学直觉请参考
https://zhuanlan.zhihu.com/p/85630046

除了向量以外,矩阵也有对应的范数定义,诸如列和范数、行和范数、谱范数等等。

不论是向量还是矩阵,范数是其一种度量方式。那么我们是否可以随意定义一种范数,如向量元素绝对值第二大的值为L1.5 范数? 范数需要满足三类条件,正定、 齐次和三角不等式。

  • 正定:
    ∥ x ∥ ≥ 0 , a n d   ∥ x ∥ = 0    ⟺    x = 0   f o r   x ∈ x \| x \| \geq 0, and \ \| x \| = 0 \iff x = 0 \ for\ x \in \bf{x} x0,and x=0x=0 for xx
  • 齐次:
    ∥ c x ∥ = ∣ c ∣ ∥ x ∥   f o r   c ∈ R , x ∈ x \| cx \| = \lvert c \rvert\| x \| \ for \ c\in R, x \in \bf x cx=cx for cR,xx
  • 三角不等式:
    ∥ x + y ∥ ≤ ∥ x ∥ + ∥ y ∥   f o r   x , y ∈ x \| x +y \| \leq \| x \| + \| y \| \ for \ x,y \in \bf x x+yx+y for x,yx

二、过拟合

先直观感受一下什么是过拟合。
在这里插入图片描述
稍微正经点的:
欠拟合,过拟合
关于过拟合有很多文字性的不同场景下的描述:

  • 在我的BGM里,我就是我的王,没人能打败我。 ——换个BGM你就怂了。
  • 我考前复习得闭眼都能选对答案,错题集我都能背了。——考的我全不会,没见过。
  • 驾校里侧边停车、定点坡起、单边桥,一把过。——考场上,你起步分就扣完了。
  • 你为了追女孩,吉他篮球你都学会了,甚至你还偷偷去美了白洗了牙。——姑娘说她喜欢有味道的。

诸如此类的表述,严谨与否无所谓,我们能找到的规律是,在准备过程中你做到100%了,但是实战时却傻了眼。

过拟合就是在训练过程中,模型把训练样本的所有特征包括噪音都学了进去,这样真有有信息价值的特征的作用就被削弱了,从而在面临测试数据的时候,模型表现一般般。

之前自己用Matlab做过拟合,先撒几个满足正态分布的几个点,然后用多项式拟合,当多项式项数逐渐增多(相当于参数增加,模型变复杂了),所有的样本点都被串到一个扭曲的曲线上,而且多项式前面的系数通常都比较大。

所以避免过拟合通常有几种方法:
1、加入正则项,约束参数的值;
2、简化模型;
3、增加样本多样性,丰富数据;
4、交叉验证。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林重言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值