欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

机器学习--正则化和范例

最编程 2024-04-24 15:07:17
...

在机器学习中,经常会遇到过拟合问题,那么怎么解决这个问题,其实有了很成熟的方案。但我们作为学习者,会用只是基本的,但我更想知道本质的原理是啥。所以在此开贴,记录一下学习过程。

一、先讲讲范数

我们将平面上,从一个点到另个一个点的长度称为模长。 如果下图模长为5。

Untitled.png

那么我们如何求一个点到另一个点的距离,也就是模长呢? 最简单的方式是采用 欧式距离 ,也就是利用勾股定理去求这个模长。 公式如下:

Untitled (1).png

那么范数是什么?

范数,是具有“距离”概念的函数。我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘 的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。

那么由此可推,范数是模长(距离)的一个推广或着说是衍生,或者说是采用数学的方法来表示距离。

什么是L1范数什么是L2范数

L1和L2是在机器学习里正则化常用的范数, 但在数学领域里面,不止L1和L2 。 那么他们有什么特点?

先看数学定义:

L1范数是指向量中各个元素的绝对值之和

L2范数是指向量各元素的平方和然后开方

下方是他们的公式和图像:

Untitled (2).png

上面提到的欧式距离也就是l2范数,L1是属于曼哈顿距离。 把知识拓展一下,我之前视频讲过游戏里面的 A 星巡路算法,也是用到这两个距离公式。 但在机器学习里面, L1 和 L2 范数主要是解决过拟合问题。

二、再讲正则化

最初在看到正则化的时候,我就在想这与我们编程所说的正则表达式有什么关系。翻查很多资料,其实发现这两者根本没有关系,完全是不相同。 虽然英语都是 regular 开头, 但一个是 Regularization 另一个是 Regular Expression 。 意思完全不同。

过拟合问题

前面提到正则化主要是解决机器学习中过拟合问题,那么什么是过拟合? 为什么会产生过拟合?在机器学习中,回归问题上,我们往往会提到w(权重) 和 b(偏置)。 w 权重 一般我们都会初始化一个随机值。当初始值越大,我们的梯度也越大,越小梯度的结果也越小。 所以每次训练模型的梯度都不一样,数据的噪声和数据集的大小规模也会影响模型的结果,不确定的因素会造成学习的结果不可控,那么常常也会发生过拟合的现象。 在深度学习中网络的宽度深度会影响参数的大小,参数过多,也会造成过拟合,如果让模型一味追求误差的极小值,但极小的误差真的好吗? 我们需要的是不仅是在测试数据集上效果好,在验证数据集上效果好,才是真的好。那么我们模型的泛化能力弱,也是过拟合的表现。如下图所示:

Untitled (3).png

我们总是希望在机器学习训练时,机器学习模型能在新样本上很好的表现。过拟合时,通常是因为模型过于复杂,学习器把训练样本学得“太好了”,很可能把一些训练样本自身的特性当成了所有潜在样本的共性了,这样一来模型的泛化性能就下降了。

正则化为什么能解决过拟合

这里我们还会提到一个高中学到的知识 拉格朗日乘法 ,拉格朗日乘法解决的是在约束条件下求一个函数的极值问题。

当模型过拟合时,我们需要将 w 权重值 给一个约束条件 ,保证 我们在算损失函数的梯度结果不会太小也不会太大。 这个约束条件就是 L1 和 L2 范数。 公式如下:

Untitled (4).png

这里k=1、2,表示L1或L2范数

C 是超参,我们认为是已知的, 那么很明显,当 C 越大,也就是 λ 越小的时候,约束条件几乎可以包含原来函数的最优值的时候,就意味着其实没有进行正则化惩罚。而当 C 越小,也就是 λ 越大的时候,约束条件就会过于严苛。

三、结语

引入拉格朗日乘法 和 范数, 才是我们所提到的正则化。为什么正则化可以防止过拟合呢?很多讲者并没有过多提及,而很多人的文章上也表示其原理不容易明白。简单地理解就是,通过加入一个正则项,在最小化新的代价函数的时候,正则项使得预测值与真实值之间的误差并不会达到最小,也就是说它是不会去完美拟合的,这样也就防止了过拟合,提高了机器学习模型的泛化能力。

通过加入的正则项对参数数值进行权重衰减,得到更小的权值。对于一些本身权重就很小的参数来说,其本身对结果的影响微乎其微,尤其是λ较大的时候,正则项的加入使得其几乎衰减到零,相当于去掉了这一项特征,类似于减少特征维度。当然了,式子中一项减少,正则化使得其他项的权值可能还会有所增加。而当 λ 较小时,我们会得到相对来说更小一些的代价函数值,而此时拟合的会更精细一些。

留一个坑,以后再填,那么 Dropout 是什么手段,它为什么也能抑制过拟合?