购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 范数与正则化

既然机器学习模型训练的核心要义在于与过拟合做长期坚持不懈的斗争,那么你肯定要问了:怎么斗争呢?除加大训练数据量和做更加精细化的特征工程之外,最常用的斗争技术便是正则化了。这也是前文所提到的有监督机器学习公式——式(2.1)的第二项正则化项。第二项中的λ为正则化系数,通常是大于0的,是一种调整经验误差项和正则化项之间关系的系数。当λ=0时,相当于式(2.1)没有正则化项,模型全力“讨好”第一项,将经验误差进行最小化,往往这也是最容易发生过拟合的时候。随着λ逐渐增大,正则化项在模型选择中的话语权越来越高,对模型的复杂性的惩罚也越来越厉害。所以,在实际的训练过程中,λ作为一种超参数,它在很大程度上决定了模型的生死。

除正则化系数λ之外,正则化项到底长什么样呢?这就需要引入向量和矩阵的L范数的概念了。范数在数学上指的是泛函分析中向量长度的度量,延伸到机器学习中,也可以将其理解为向量和矩阵的长度。在机器学习的正则化中,最常用的范数形式莫过于L1范数和L2范数。

在介绍常见的L1和L2之前,有必要先介绍一下L0。L0也就是L0范数,即矩阵中所有非0元素的个数。如果在正则化过程中选择了L0范数,那么该如何理解这个L0呢?其实非常简单,L0范数就是希望正则化的参数矩阵W大多数元素都为0,即让参数矩阵W大多数元素为0来实现稀疏而已。介绍到这里,想必经验丰富的你也许会问,稀疏性通常不都是用L1来实现的吗?这里涉及的理论不必去深究,简单说结论:在机器学习领域,L0和L1都可以实现矩阵的稀疏性,但在实践中,L1要比L0具备更好的泛化求解特性而广受青睐。

然后再介绍L1范数。L1范数就是矩阵中各元素绝对值之和,正如前文所述,L1范数通常用于实现参数矩阵的稀疏性。至于为什么要稀疏,稀疏有什么用,通常是为了特征选择和易于解释。基于L1范数的机器学习损失函数如下。

最后介绍L2范数。相较于L0和L1,其实L2才是正则化中的“天选之子”。在各种防止过拟合方法和正则化处理过程中,L2正则化是首选方式。L2范数是指矩阵中各元素的平方求和。采用L2范数进行正则化的原理在于最小化参数矩阵的每个元素,使其无限接近于0但又不像L0那样等于0,也许你会问,为什么参数矩阵中每个元素变得很小就能防止过拟合?这里以深度神经网络为例进行说明。在L2正则化中,如果正则化系数变得比较大,那么参数矩阵W中的每个元素都会变小,线性计算的和Z也会变小,激活函数在此时相对呈线性状态,这样就大大简化了深度神经网络的复杂性,因而可以防止过拟合。

另外,L1和L2在“江湖上”还有一些别名,L1就是著名的Lasso, L2则是岭回归(Ridge)。二者都是对回归损失函数加一个约束条件,Lasso加的是L1范数,Ridge加的是L2范数。这可以从几何直观上看出二者的区别,如图2.2所示。

图2.2 Lasso和Ridge的函数图像 Dh8j5Pp/sTj/AaL8Aq4h1oPhkTm36j2sm7Kt+jrJ9ZxaULBqoIZ482Z5eIHJPrBC

点击中间区域
呼出菜单
上一章
目录
下一章
×