首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习数学补脑汁(一)-范数

经常看到范数,L1,L2,知道用来解决过拟合的问题,那么从数学上它是什么意思?为什么能对解决过拟合有帮助呢?

什么是范数?

范数是一种强化了的距离概念。在数学上,范数包括向量范数和矩阵范数,向量范数表示向量空间中向量的大小,好比米和尺度量远近;矩阵范数表示矩阵引起变化的大小。

Lp 范数如下:

变化图如下:

所以:

L1范:为x向量各个元素绝对值之和;

L2范:为x向量各个元素平方和的开方。

这里先说明一下,在机器学习中,L1范数和L2范数很常见,主要用在损失函数中起到一个限制模型参数复杂度的作用

特别的,L0范数:指向量中非零元素的个数。无穷范数:指向量中所有元素的最大绝对值。

过拟合

过分拟合了训练数据,缺乏泛化性。就如死记硬背了几个题目,但是考试变了几个数值都不会求解了一样。

产生过拟合的原因一般为:

a、模型太复杂

b、特征太多了(比如决策树剪枝)

解决过拟合的方法-正则化:

其一、正则化就是通过对我们的参数进行约束,而使我们的模型更加的简单,使我们对训练集合的拟合更加的平滑。

其二、有监督学习的要义其实可以这么描述“minimize your error while regularizing your parameters” 在规则化参数的同时最小化误差。 最小化误差是为了拟合我们的训练数据,而规则化参数是防止过分的拟合我们的训练数据。

为了简化模型,提高在预测数据上的表现,我们引入规则化,规则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或惩罚项。引入一些先验的内容。

有监督一般都可以理解为最小化下面的函数

前面部分表示最小化误差,后面是规则化,使得模型尽量简单。(对于第一项Loss函数,如果是Square loss,那就是最小二乘了;如果是Hinge Loss,那就是著名的SVM了;如果是exp-Loss,那就是牛逼的 Boosting了;如果是log-Loss,那就是Logistic Regression了;还有等等。)

一般提到的规则化项有:零范数、一范数、二范数、迹范数、Frobenius范数和核范数,最常见的莫过于L1和L2范数。

范数为什么可以防止过拟合:

1、L0、L1 主要是特征选择,将含信息量少的特征权重变成0;L1比L0更容易求解,所以虽然都可以实现系数,但是更多选择L1。L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization),所以添加L1的回归,也称作 Lasso 回归。

2、L2 则偏向于将特征的权重都调整的比较小,分布比较均匀,从而简化模型。 L2不仅可以简化模型防止过拟合,还可以让优化求解变得稳定。Ridge

从图可知,L1最优解通常在角处,w会等于0,所以造成稀疏。L1-regularization 能产生稀疏性,而L2-regularization 不行的原因。

总结来看:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180731G0TBE700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券