本文主要抄录 TOMOCAT、ZingpLiu、Eureka、Sun & Ocean 四位博主的博文,结合Jacob Murel 博士和 Wikipedia 的相关描述而作。相应的参考链接位于文末,在此处声明并致谢。
在使用机器学习时,通常会发现,损失函数中含有正则化项(也称为惩罚项,即对损失函数的某些参数做出某些限制)。其目的一般是为了防止模型的过拟合。本文从对机器学习理论的概述出发,对机器学习中的几种正则化技术进行了描述。当然,鉴于领域的不同,这里仅是对正则化原理和作用的概述,谨作了解以便帮助初学者快速理解机器学习中正则化技术的应用。
概念
正则化是机器学习中对原始损失函数引入额外信息,通过牺牲一定的训练准确性以换取机器学习模型的泛化性(即避免过拟合)的方法。换言之,正则化方法通常会导致对训练数据的预测不太准确,但对测试数据的预测更为准确(即通过增加训练误差来减少测试误差),称此为偏差-方差权衡。
偏差 衡量预测值与真实值之间的平均差异,指训练中的误差,是对训练数据集预测精度的描述。
方差 衡量给定模型的不同实现中各预测之间的差异,指测试和验证期间的误差,是对未知数据集预测精度的描述。
因此,偏差和方差分别反向表示训练集和测试集上的模型准确性。两者同时减少并非始终可以实现,因此开发人员通过正则化降低模型方差,以增加偏差为代价。
当偏差下降而方差停止下降或开始增大时,一般称之为过拟合;而若是正则化导致偏差过大,模型方差也会停止下降或开始增大,此时称之为欠拟合。因此,在确定要实现的正则化类型和程度时,必须考虑模型的复杂性、数据集等因素。
注意,尽管称之为欠拟合,但并不意味着与过拟合的情况完全相反。欠拟合表示的是高偏差、高方差的模型,通常是由于训练数据或参数不足导致模型预测出现较大的错误。
线性模型的正则化类型
线性回归和逻辑回归均为用于支撑机器学习的预测模型。线性回归(即最小二乘法)旨在通过所提供的数据点(即训练数据)来找到最佳拟合线,从而测量并预测一个或多个预测变量对给定输出的影响,如图 1 所示。逻辑回归旨在通过给定的一系列预测变量的二进制输出来确定类概率,如图 2 所示。换言之,线性回归会做出连续的定量预测,而逻辑回归会生成离散的分类预测。
随着任一回归模型中预测变量数量的增加,输入-输出关系并不总是那么简单明了,而是需要对回归公式进行处理。其中,“系数收缩或特征缩减 (shrinkage)” 处理方法是指训练求解参数过程中考虑到系数的大小,通过设置惩罚系数,使得影响较小的特征的系数衰减到0,只保留重要特征的从而减少模型复杂度进而达到规避过拟合的目的。图 1 和图 2 展示了过拟合与欠拟合对于模型的影响。目前,常用的 shinkage 的方法有套索( $\mathcal{L}_1$ 正则化或 $\mathcal{L}_1$ 范数)回归、岭回归( $\mathcal{L}_2$ 正则化或 $\mathcal{L}_2$ 范数,实际上是 $\mathcal{L}_2$ 范数的平方)和弹性网络正则化:
$\mathcal{L}_1$ 正则化 (也称Lasso回归,套索回归)是一种可对高值相关系数进行惩罚的正则化技术。它可将正则化项引入模型的误差平方和损失函数中。该惩罚项为系数和的绝对值。它由超参数 lambda (λ) 进行控制,且会将选择特征权重减少为零,即得到的参数是一个系数矩阵。因此,套索回归会将多重共线特征从模型中彻底移除。
稀疏矩阵与稠密矩阵 矩阵中,0元素数目远多于非0元素数目,并且非0元素分布没有规律时,称为稀疏矩阵;与之相反,若非0元素数目占大多数,则称为稠密矩阵。非0元素数目与矩阵所有元素数目之比,称为矩阵的稠密度。
$\mathcal{L}_1$ 正则化损失函数:
$$
\min_{\mathbf{ω}} [ \sum_{i=1}^N (y_i – \mathbf{ω}^{\top } x_i)^2 + \mathbf{λ} \|\mathbf{ω}\|_1] \tag{1}
$$
$\mathcal{L}_2$ 正则化 (也称Ridge回归,岭回归)是一种正则化技术,它可通过在损失函数中引入惩罚项从而以类似的方式来惩罚高值系数。但是,它不同于套索回归。首先,岭回归中的惩罚项为系数的平方和,而非系数的绝对值。其次,岭回归不会进行特征选择。虽然套索回归的惩罚项可通过将系数值收缩为零以从模型中删除特征,但岭回归仅会将特征权重尽可能缩小为零,但绝不会变为零。
$\mathcal{L}_2$ 正则化损失函数:
$$
\min_{\mathbf{ω}} [ \sum_{i=1}^N (y_i – \mathbf{ω}^{\top } x_i)^2 + \mathbf{λ} \|\mathbf{ω}\|_2^2] \tag{2}
$$
弹性网络正则化 本质上结合了岭回归和套索回归,但会在损失函数中同时插入 $\mathcal{L}_1$ 与 $\mathcal{L}_2$ 惩罚项。$\mathcal{L}_2$ 和 $\mathcal{L}_1$ 会分别通过对特征权重之和求平方或取绝对值来推导出各自的惩罚项值。随后,弹性网络会将这两个惩罚值都插入到损失函数方程中。通过此方式,弹性网络可解决多重共线性问题,同时还可实现特征选择。
弹性网络正则化损失函数:
$$
\min_{\mathbf{ω}} [ \sum_{i=1}^N (y_i – \mathbf{ω}^{\top } x_i)^2 + \mathbf{λ} \|\mathbf{ω}\|_1 + \mathbf{μ} \|\mathbf{ω}\|_2^2] \tag{3}
$$
其中,λ, μ 被称为正则化系数,当 λ, μ 越大时,正则化约束越强。
综上,由于模型可能考虑到很多没必要的特征,这些特征对于模型来说就是噪声。采用正则化方法(这里特指 shrinkage )可以通过消除噪声从而减少模型的复杂度;此外,若模型特征存在多重共线性(变量之间相互关联),shrinkage 也可以消除关联的特征从而尽可能避免模型多解,以提高模型稳定性。
正则化是如何调整特征系数的
通过上一小节,我们知道正则化项是通过调整特征系数的大小从而对拟合起作用的。那么,它为什么能够调整特征系数的大小呢?或者说它是怎么来调整特征系数的大小呢?
Karush–Kuhn–Tucker (KKT) conditions (来自 Wikipedia)
要想回答上述问题,我们首先要了解 Karush–Kuhn–Tucker (KKT) conditions。在满足某些正则条件的前提下,KKT 条件是非线性规划最优解的一阶导数验证(也称为一阶必要条件)。
KKT 方法将 Lagrange 乘数法由等式约束优化问题推广到了不等式约束优化问题。类比于 Lagrange 乘数法,KKT 方法通过将不等式约束最大化(最小化)问题改写为 Lagrange 函数,其最优值是所选变量域的全局最大值(最小值)和乘数上的全局最小值(最大值)。也就是说,KKT 方法是将原本的约束优化问题转换成等价的无约束优化问题。其涉及的 Karush–Kuhn–Tucker (KKT) 定理,有时也被称为鞍点定理。
- 考虑标准的非线性优化问题
$\qquad$ minimize
$$
f(\mathbf{x}) \tag{4}
$$
$\qquad$ subject to
$$
\begin{cases}
g_i(\mathbf{x}) \leq 0, \\
h_j(\mathbf{x}) = 0
\end{cases} \tag{5}
$$
$\displaystyle \mathbf {x} \in \mathbf {X}$ 是从 $\displaystyle \mathbb {R}^{n}$ 的凸子集中选择的优化变量,f是目标函数或效用函数,$g_i(i = 1,…,m)$ 是不等式约束函数,$h_j(j = 1,…,\ell)$ 是等式约束函数。不等式和等式的数目分别用 m 和 $\ell$ 表示。类似于等式约束优化问题,写出 Lagrange 函数:
$$
\mathcal{L}(\mathbf{x}, \mathbf {\mu} , \mathbf {\lambda}) = f(\mathbf{x}) + \mathbf {\mu } ^{\top } \mathbf{g} (\mathbf{x}) + \mathbf {\lambda} ^{\top } \mathbf{h}(\mathbf{x}) = L (\mathbf{x}, \mathbf {\alpha }) = f(\mathbf{x}) + \mathbf {\alpha} ^{\top} {\begin{pmatrix} \mathbf{g} (\mathbf {x})\\ \mathbf{h}(\mathbf {x}) \end{pmatrix}} \tag{6}
$$
Karush-Kuhn-Tucker 定理陈述如下:
充分性 如果 $(\mathbf{x}^{\ast}, \mathbf{\alpha}^{\ast})$ 是 $L(\mathbf{x}, \mathbf {\alpha })$ 在 $\displaystyle \mathbf {x} \in \mathbf {X}$, $\mathbf{\mu } \geq 0$ 的一个鞍点,则 $\mathbf{x}^\ast$ 是上述优化问题的最优向量。
必要性 假设 $f(\mathbf{x})$ 和 $g_i(\mathbf{x}), (i = 1,…,m)$ 是在 $\mathbf {X}$ 的凸函数,并且存在 $\displaystyle \mathbf {x}_0 \in \textit{relint} (\mathbf {X})$ 使 $\mathbf{g} (\mathbf {x}_0) \leq 0$ (即 Slater 条件成立)。则对于上述优化问题的最优向量 $\mathbf{x}^\ast$ ,存在一个关联矢量 $\mathbf {\alpha}^{\ast} = {\begin{bmatrix} \mathbf{\mu}^{\ast} \\ \mathbf{\lambda}^{\ast} \end{bmatrix}}$ 满足 $\mathbf{\mu}^{\ast} \geq 0$ 使得 $(\mathbf{x}^{\ast}, \mathbf{\alpha}^{\ast})$ 是 $L(\mathbf{x}, \mathbf {\alpha })$ 的一个鞍点。
由于这种方法的思路是在可行域 $\displaystyle \mathbf {\Gamma} = \left\{ \mathbf{x} \in \mathbf {X} : g_{i}(\mathbf{x}) \leq 0, i = 1,\ldots,m \right\}$ 上寻找一个支撑超平面,所以 Karush-Kuhn-Tucker 定理的证明利用了超平面分离定理。
- Karush–Kuhn–Tucker (KKT) conditions 的描述
假如目标函数 $\displaystyle f\colon \mathbb {R}^{n} \rightarrow \mathbb{R}$ 和约束函数 $\displaystyle g_i\colon \mathbb {R}^{n} \rightarrow \mathbb{R}$ 与 $\displaystyle h_i\colon \mathbb {R}^{n} \rightarrow \mathbb{R}$ 在 $x^{\ast} \in \mathbb {R}^{n}$ 点有偏导数。简单考虑,设 m = 1,$\ell = 0$,且 $\mathbf{x}^{\ast}$ 是在可行域 $\displaystyle \mathbf {\Gamma} = \left\{ \mathbf{x} \in \mathbf {X} : g_{1}(\mathbf{x}) \leq 0 \right\}$ 上满足约束条件的最优解。通常将约束不等式 $g_{1}(\mathbf{x}) \leq 0$ 称为原始可行性 (Primal feasibility)。此时,$\mathbf{x}^{\ast}$ 必要条件有两种情况:
① $g_{1}(\mathbf{x}^{\ast}) < 0$,最优值位于 $\mathbf{\Gamma}$ 内部。此时约束条件是无效的,$g_{1}(\mathbf{x}^{\ast})$ 不起作用,约束优化问题退化为无约束优化问题。因此 $\mathbf{x}^{\ast}$ 满足 $\nabla f(\mathbf{x}) = 0$ 且 $\mathbf{\mu}^{\ast} = 0$
② $g_{1}(\mathbf{x}^{\ast}) = 0$,最优值位于 $\mathbf{\Gamma}$ 边界。此时约束条件是有效的,且约束不等式退化为 $g_{1}(\mathbf{x}) = 0$。点 $\mathbf{x}^{\ast}$ 出现在 $\nabla f(\mathbf{x}) \in \textit{span} \nabla g_{1}(\mathbf{x})$,即存在 $\mathbf{\mu}^{\ast}$ 使 $\nabla f(\mathbf{x}) = – \mu \nabla g_{1}(\mathbf{x})$。因为要最小化 $f(\mathbf{x})$,梯度 $\nabla f(\mathbf{x})$ (函数 $f(\mathbf{x})$ 在 $\mathbf{x}$ 的最陡上升方向)应该指向可行域 $\mathbf {\Gamma}$ 内部(因为最优解最小值是在边界上取得的),但 $\nabla g_{1}(\mathbf{x})$ 指向 $\mathbf {\Gamma}$ 的外部(即 $\nabla g_{1}(\mathbf{x}) > 0$ 区域,因为约束 $g_{1}(\mathbf{x})$ 是小于等于0的)。因此,这里 $\mu \geq 0$, $\mu$ 的正负是有具体意义的,并且将这一条件称为对偶可行性(Dual feasibility)。
无论是内部解还是边界解,始终有 $\mu g_{1}(\mathbf{x}) = 0$ 恒成立,并称之为互补松弛性(Complementary slackness)。综上,将 Lagrangian 函数、原始可行性、对偶可行性和互补松弛性所组成的条件组合称为 Karush-Kuhn-Tucker (KKT) 条件。
将上述分析推广到多个约束等式与约束不等式的情况:
如果 $\mathbf{x}^{\ast}$ 是局部最优值并且优化问题满足一些 Regularity conditions(如下图 4 所示表格),则存在常数 $\mu_i(i = 1,…,m)$ 和 $\lambda_j(j = 1,…,\ell)$(称为 KKT 乘子)使下面四组条件成立:
Stationarity
$\qquad$ For minimizing $f(\mathbf{x})$
$$
\partial f(x^{\ast}) + \sum_{j=1}^{\ell } \lambda_{j} \partial h_{j}(x^{\ast}) + \sum_{i=1}^{m} \mu_{i} \partial g_{i}(x^{\ast}) \ni \mathbf{0} \tag{7}
$$
$\qquad$ For maximizing $f(\mathbf{x})$
$$
-\partial f(x^{\ast}) + \sum_{j=1}^{\ell} \lambda_{j} \partial h_{j}(x^{\ast}) + \sum_{i=1}^{m} \mu_{i} \partial g_{i}(x^{\ast}) \ni \mathbf{0} \tag{8}
$$
Primal feasibility
$$
\begin{align}
g_{i}(x^{\ast}) \leq 0, {\text{ for }} i = 1, \ldots, m \\
h_{j}(x^{\ast}) = 0, {\text{ for }} j = 1, \ldots,\ell
\end{align} \tag{9}
$$
Dual feasibility
$$
\mu _{i} \geq 0, {\text{ for }} i = 1, \ldots , m \tag{10}
$$
Complementary slackness
$$
\displaystyle \sum_{i=1}^{m} \mu_{i} g_{i}(x^{\ast}) = 0 \tag{11}
$$
在 m = 0 的特殊情况下,由于没有了不等式约束,KKT 条件就退化为 Lagrange 条件,KKT 乘子变为 Lagrange 乘子。
根据Karush–Kuhn–Tucker (KKT) 条件,将 Karush-Kuhn-Tucker 定理重新描述如下:
充分性 如果 primal problem 存在解 $\mathbf{x}^{\ast}$,dual problem 存在解 $(\mathbf{\mu}^{\ast}, \mathbf{\lambda}^{\ast})$,使他们一起满足 KKT 条件,则这对问题具有强对偶性,并且 $\mathbf{x}^{\ast} , (\mathbf{\mu}^{\ast}, \mathbf{\lambda}^{\ast})$ 是 primal 和 dual problems 的 solution pair。
必要性 如果一对问题具有很强的对偶性,则对于 primal problem 的任意解 $\mathbf{x}^{\ast}$ 和 dual problem 的任意解 $(\mathbf{\mu}^{\ast}, \mathbf{\lambda}^{\ast})$ 组成的solution pair $\mathbf{x}^{\ast} , (\mathbf{\mu}^{\ast}, \mathbf{\lambda}^{\ast})$ 必须满足 KKT 条件。
Karush-Kuhn-Tucker 定理证明如下:
$\quad$ ① 首先,对于 $\mathbf{x}^{\ast} , (\mathbf{\mu}^{\ast}, \mathbf{\lambda}^{\ast})$ 满足 KKT 条件等价于它们是一个 Nash equilibrium。
$\quad \quad$ 固定 $(\mathbf{\mu}^{\ast}, \mathbf{\lambda}^{\ast})$,并且改变 $\mathbf{x}$:equilibrium 等价于 primal stationarity。
$\quad \quad$ 固定 $\mathbf{x}$,并且改变 $(\mathbf{\mu}^{\ast}, \mathbf{\lambda}^{\ast})$:equilibrium 等价于 Primal feasibility 和 Complementary slackness。
$\quad$ ② 充分性:因为 solution pair $\mathbf{x}^{\ast} , (\mathbf{\mu}^{\ast}, \mathbf{\lambda}^{\ast})$ 满足 KKT 条件,因此是一个 Nash equilibrium,并且缩小了 duality gap。
$\quad$ ③ 必要性:任意 solution pair 必须缩小 duality gap,则它们必须构成 Nash equilibrium (因为两个都不能做到更好),因此它们满足 KKT 条件。
扩展
KKT 条件在状态空间中平衡约束力:
primal problem 可以解释为在 $\mathbf{x}$ 空间移动一个粒子,并且使其受到三种力场的作用:
$\quad$ ① f 是粒子最小化的势场,f 产生的力是 $- \partial f$。
$\quad$ ② $g_{i}$ 是单侧约束曲面。允许粒子在 $g_{i} \leq 0$ 内部移动,当它到达 $g_{i} = 0$ 时,它就会被向内推。
$\quad$ ③ $h_{i}$ 是双侧约束曲面。只允许粒子在 $h_{i}$ 面上移动。
Primal stationarity 指出力 $\partial f(\mathbf{x}^{\ast})$ 是由 $\partial h_j(\mathbf{x}^{\ast})$ 和 $\partial g_i(\mathbf{x}^{\ast})$ 线性叠加的精确平衡。
Dual feasibility 指出所有的 $\partial g_i(\mathbf{x}^{\ast})$ 力必须是单侧的、指向可行域 $\mathbf{x}$ 内部。
Complementary slackness 还指出如果 $g_i(\mathbf{x}^{\ast}) < 0$,则来自于 $\partial g_i(\mathbf{x}^{\ast})$ 的力必须为0,也就是说 $\partial \mu_i(\mathbf{x}^{\ast}) = 0$。即由于粒子不在边界上,所以单侧约束力没被激活(不起作用)。
- Regularity conditions
人们会问,原始约束优化问题的最小化点 $\mathbf{x}^{\ast}$ (假设存在)是否必须满足上述 KKT 条件?这类似于询问在什么条件下,无约束问题中函数 $f(\mathbf{x})$ 的最小化点 $\mathbf{x}^{\ast}$ 必须满足 $\nabla f(\mathbf{x}) = 0$。 对于约束问题,情况更为复杂,可以陈述各种(越来越复杂)的“Regularity”条件,使约束最小化也满足 KKT 条件。下面图表 4 列出了保证这一点的条件的一些常见示例,其中 LICQ 是最常用的一个:
条件的严格程度如下:
$\quad$ LICQ ⇒ MFCQ ⇒ CPLD ⇒ QNCQ
$\quad$ LICQ ⇒ CRCQ ⇒ CPLD ⇒ QNCQ
在实际使用时,较弱的约束限定条件适用于更为宽泛的问题选择而通常作为首选条件。
$\mathcal{L}_1$ 正则项的特征选择
在前面我们说损失函数加上正则项是对损失函数的某些系数施加了某些限制。这该怎么理解呢?通过利用 KKT 条件,我们可以知道,将损失函数加上正则项,就可以轻松将问题转化为带约束条件的非线性规划(nonlinear programming)问题。也就是说,“带正则项”和“带约束条件”是等价的。
以 $\mathcal{L}_1$ 正则化为例:
最小化损失函数问题本质上是一个最优化问题。那么,为了防止过拟合,我们就需要对特征系数 ω 的可能取值空间施加一个约束。这里取 ω 的 $\mathcal{L}_1$ 范数不能大于 m :
$$
\begin{cases}
\min \sum_{i=1}^N \left( \mathbf{ω}^{\top } x_i – y_i \right)^2 \\
\textit{s.t. } \|\mathbf{ω}\|_1 \leq m
\end{cases} \tag{12}
$$
写出不等式约束优化问题 (12) 式的 Lagrangian 函数:
$$
\mathcal{L}(\mathbf{ω}, \mathbf{λ}) = \sum_{i=1}^N (y_i – \mathbf{ω}^{\top } x_i)^2 + \mathbf{λ} (\|\mathbf{ω}\|_1 – m) \tag{13}
$$
设 $\mathbf{ω}^\ast$ 和 $\mathbf{λ}^\ast$ 是原问题的最优解,则根据 KKT 条件有:
$$
\begin{cases}
\nabla_\mathbf{ω} [\sum_{i=1}^N \left( \mathbf{ω}^{\top } x_i – y_i \right)^2 + \mathbf{λ} (\|\mathbf{ω}\|_1 – m)] = 0 \\
\mathbf{λ}^* \geq 0
\end{cases} \tag{14}
$$
可以看到,(14) 和 (12) 式是等价的。
对于包括多元线性回归、逻辑回归和SVM在内的线性模型,机器学习的任务就是要通过一些方法(比如梯度下降法等)利用测试集来最小化损失函数,从而求得最优模型参数 $\mathbf{ω}^*$。
除了上述 $\mathcal{L}_1$ 正则化,还可以加入其它各种形式的正则化。加入一般形式的正则化:
$$
\mathcal{L} (\mathbf{ω}) = \frac{1}{2} \sum_{i=1}^N [y_i – \mathbf{ω}^{\top} φ(x_i)]^2 + \frac{λ}{2} \sum_{j=1}^M \left|ω_j \right|^q \tag{15}
$$
其中,M 是参数的个数,即模型特征的维数;q 是正则项的阶数,q 取2时为 $\mathcal{L}_2$ 正则化。考虑仅有两个特征的数据源,以探索正则项的几何意义:
$$
\mathbf{x} = [x_1, x_2], \mathbf{ω} = [ω_1, ω_2]
$$
q 不同取值时正则项的函数值图像:
不同函数值图像对应的等高线(即俯视图):
因此,加入正则项的意义是,在保证特征参数位于正则项所确定的范围内寻找损失函数的最小值,这个最小值往往位于正则项所确定范围的边界上。同时,根据 Karush–Kuhn–Tucker (KKT) 条件,这个最小值正好对应了目标函数的最小值。于是,最小化目标函数的几何意义:如图 7 所示,黑色曲线线段表示没有限制的损失函数随着迭代寻找着最小化的过程的函数等高线(同个线段上的损失函数值相同),曲线线段和橙色圈(或虚线圈)之和就是目标函数值。目标函数最小化的点往往出现在曲线线段和橙色圈(或虚线圈)初次相交的点。
可以看到,$\mathcal{L}_1$ 正则化的最优参数值恰好是 $ω_1$ = 0 的时候,这意味着我们剔除了模型中一个特征(即系数为0),从而达到了降低模型复杂度的目的。在这个意义上 $\mathcal{L}_1$ 正则化效果要优于 $\mathcal{L}_2$ 正则化,但 $\mathcal{L}_1$ 存在拐点不是处处可微,从而 $\mathcal{L}_2$ 正则化有更好的求解特性。可以直观想象,正则项对应的函数有很多突出的角(二维情况下四个,多维情况下更多),损失函数与这些角接触的机率会远大于与其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么 $\mathcal{L}_1$ 正则化可以产生稀疏模型,进而可以用于特征选择。
同时,可以理解前面所说的 “当 λ, μ 越大时,正则化约束越强”。因为系数越大时,正则项对应的图像(上图中的橙色圈或虚线圈)越小,可以小到只超出原点范围一点点,于是这时候 $\mathbf{ω}^*$ 可以取到很小的值。
$\mathcal{L}_2$ 正则化的抗扰动
从上面的分析可以知道 $\mathcal{L}_1$ 正则化是通过特征选择调整特征系数来防止过拟合的。那么,$\mathcal{L}_2$ 正则化的函数图形是个圆,在多数情况下几乎不能实现特征选择作用,那么其在防止过拟合的作用中又是扮演什么样的角色呢?
可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是抗扰动能力强。因此,我们构造模型的时候,要尽可能的使用较小的参数,以适应不同的数据集,从而在一定程度上避免过拟合现象。
以梯度下降法为例:
假设要求的参数为 $\mathbf{ω}$,$φ(x_i)$是我们的假设函数,那么损失函数如下:
$$
C_ω = \frac{1}{2n} \sum_{i=1}^N \left( \mathbf{ω}^{\top} φ(x_i) – y_i \right)^2 \tag{16}
$$
其迭代公式为:
$$
ω^j = ω^j – α \frac{1}{n} \sum_{i=1}^N \left( \mathbf{ω}^{\top} φ(x_i) – y_i \right)x_i^j \tag{17}
$$
其中,α 是 learning rate。若是损失函数含有 $\mathcal{L}_2$ 正则化项,则迭代公式为:
$$
ω^j = ω^j \left( 1 – \frac{αλ}{n} \right)- α \frac{1}{n} \sum_{i=1}^N \left( \mathbf{ω}^{\top} φ(x_i) – y_i \right)x_i^j \tag{18}
$$
对比(17)式和(18)式可以看到,与未添加 $\mathcal{L}_2$ 正则项的迭代公式相比,含有 $\mathcal{L}_2$ 正则项的每一次迭代,$ω^j$ 都要先乘以一个小于1的因子,从而使得 $ω^j$ 不断减小。因此总得来看,$\mathbf{ω}$ 是不断减小的。
机器学习的正则化类型(扩展阅读)
数据增强 是一种修改模型训练数据的正则化技术。通过创建从预先存在的训练数据中派生的人工数据样本来扩展训练集的规模。向训练集添加更多样本,尤其是真实世界数据中罕见的实例,会使模型接触到更多数量和种类的数据,以便从中学习,图 8 展示了数据增强技术示意图。机器学习研究最近探索了分类器的数据增强,特别是作为解决不平衡数据集的一种手段。然而,数据增强与合成数据不同。后者涉及创建新的人工数据,而前者生成预先存在数据的修改副本,以使数据集多样化并扩大数据集。
提前停止 可能是最容易实现的正则化技术。它限制了模型训练期间的迭代次数。在这种情况下,模型会不断地传递训练数据,一旦训练和验证的准确性没有提高(甚至可能下降),模型就会停止。目标是训练一个模型,直到它在验证误差达到或增加之前达到尽可能低的训练误差。
暂退法 (Dropout) 是在神经网络技术中使用的一种正则化技术(图 10)。会随机从网络中丢弃某些节点及其输入与输出连接。暂退法会训练采用固定大小的架构的多个变体,而每个变体均有不同的随机节点被排除在架构之外。缺少暂退法的单个神经网络会用于测试,以便采用从随机修改的训练架构中得出的近似平均方法。如此一来,暂退法便近似于训练具有多种架构的大量神经网络。
权重衰减 是用于深度神经网络的另一种正则化形式。可通过正则化参数来降低网络权重平方和,而这类似于线性模型中的 $\mathcal{L}_2$ 正则化。但是,在神经网络中采用这一减少方法时,会产生与 $\mathcal{L}_1$ 正则化类似的效果:特定神经元权重会减少为零。如此一来,便相当于从网络中移除节点,从而通过稀疏性来降低网络复杂性。
表面上,权重衰减可能与深度神经网络中的暂退法相似,但这两种技术实有不同。其中一大区别在于:在暂退法中,惩罚值会因特定情况而在网络深度中呈指数增长,而权重衰减的惩罚值则呈线性增长。某些人认为,较之权重衰减,此特性会使暂退法在惩罚网络复杂性方面更有意义。
参考
1. 什么是正则化?
2. 机器学习必知必会:正则化
3. 深入理解L1、L2正则化
4. Karush-Kuhn-Tucker (KKT)条件
5. Karush–Kuhn–Tucker conditions
6. 机器学习笔记 — 数学×向量范数和矩阵范数
7. Regularization