正则化、归一化含义解析

转自http://sobuhu.com/ml/2012/12/29/normalization-regularization.html

2012-12-29

正则化(Regularization)、归一化(也有称为正规化/标准化,Normalization)是对数据尽心预处理的方式,他们的目的都是为了让数据更便于我们的计算或获得更加泛化的结果,但并不改变问题的本质,下面对他们的作用分别做一下科普,如有不正确之处,求指正!

前言


需要注意的是,这些名词在不同的领域含义也有点区别,这里仅仅指的是在进行机器学习研究的时候所使用的意义。

一、正则化(Regularization)


李航博士在《统计学习方法》中提到,统计学习的三要素是模型、策略和算法,在机器学习领域,这个“模型”就是我们要求解的概率分布或决策函数。

假设我们现在要求一个逻辑回归问题,首先我们要做的是假设一个函数,可以覆盖所有的可能: y=wx y=wx,其中w为参数向量, x x为已知样本的向量,如果用 yi yi表示第 i i个样本的真实值,用 f(xi) f(xi)表示样本的预测值,那么我们的损失函数可以定义为:

L(yi,f(xi))=yisigmoid(xi) L(yi,f(xi))=yi−sigmoid(xi)

这里可以不用关心这个函数是什么意思,就知道代表误差就行了。对于该模型 y=wx y=wx的所有样本的损失平均值成为“经验风险”(empirical risk)或”经验损失”(empirical loss)。很显然,经验风险最小化(empirical risk minimization,ERM)就是求解最优模型的原则。为了达到这个目的,模型的设定会越来越复杂,最后造成该模型只适用于当前的样本集(即over-fitting,过拟合)。

为了解决过拟合问题,通常有两种办法,第一是减少样本的特征(即维度),第二就是我们这里要说的”正则化“(又称为”惩罚“,penalty)。

正则化的一般形式是在整个平均损失函数后增加一个正则项(L2范数正则化,也有其他形式的正则化,他们的作用也不同):

Rerm=1N(iNL(yi,f(xi))+inλw2i) Rerm=1N(∑iNL(yi,f(xi))+∑inλwi2)

后面的 niλw2i ∑inλwi2就是正则化项,其中 λ λ越大表明惩罚粒度越大,等于0表示不做惩罚,N表示所有样本的数量,n表示参数的个数。

从下面的图中,可以很明显的看出正则化函数的作用:

λ=0 λ=0的情况,即没有正则化

λ=1 λ=1的情况,即合适的惩罚

λ=100 λ=100,过度惩罚,出现欠拟合问题

上面提到,我们还有其他形式的正则化,如L1范式正则化,可以用来筛选参数,这个日后再通过额外的文章来介绍。

二、归一化(Normalization)


我们在对数据进行分析的时候,往往会遇到单个数据的各个维度量纲不同的情况,比如对房子进行价格预测的线性回归问题中,我们假设房子面积(平方米)、年代(年)和几居室(个)三个因素影响房价,其中一个房子的信息如下:

  • 面积(S):150 平方米
  • 年代(Y):5 年

假设我们把该问题作为一个逻辑回归问题 y=wx y=wx来求解,使用梯度下降来求解 w w的最优值。

效率比较高的梯度下降方法中,每次下降应该尽可能的往最优点靠近,假设下降距离函数为:

distance=λ|Δ\*| distance=λ|Δ\*|
其中$ \Delta^* 表示梯度的模,\lambda$表示步长,如果两个向量的取值范围差别特别大,那么这两个向量的图像会显得很“细长”:

我们的梯度在寻找最优值的时候,由于图像“细长”,所以要来回找垂直线,两个维度范围相差的越大,梯度下降的越慢,还可能永远无法收敛。

为了解决这个问题,假如我们把所有的数据范围都是用归一化处理在0到1的区间内(也可以是0到10等其他范围,但一般是0到1),如使用以下归一化公式:

x\*i=xix¯xmaxxmin xi\*=xi−x¯xmax−xmin

我们的图像就会变得更加“正圆”一些:

我们可以很清楚的看到 ,梯度会更加快速的找到最优点。

后记


其实这篇文章写之前,我还纠结了很久“标准化(Standardization)”这个概念,最后请教了很多人,发现大家最常用的还是归一化和正则化两个概念。不同的场合大家的称谓也不同,总结起来还是按照英文来说比较没有歧义:Normalization和Regularization两个概念。

评论:

归一化(Normalization)是把不同量纲的变量都让它取值到0,1范围之间,标准化(standardization)是把一个分布转化为概率分布,应该是这么理解吧


问个比较弱智的问题:归一化时,是分别对每个变量内部归一化,还是把所有的变量都放在一起看,然后集体归一化?

    • 头像

      归一化,是对每个变量进行归一化的。参看公式:

      x∗i=xi−x¯xmax−xmin


    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值