机器学习中的范数与稀疏性
监督机器学习问题无非就是“minimize your error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。因为参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。但训练误差小并不是我们的最终目标,我们的目标是希望模型的测试误差小,也就是能准确的预测新的样本。所以,我们需要保证模型“简单”的基础上最小化训练误差,这样得到的参数才具有好的泛化性能(也就是测试误差也小),而模型“简单”就是通过规则函数来实现的。另外,规则项的使用还可以约束我们的模型的特性。这样就可以将人对这个模型的先验知识融入到模型的学习当中,强行地让学习到的模型具有人想要的特性,例如稀疏、低秩、平滑等等。
规则化符合奥卡姆剃刀(Occam's razor)原理。不过它的思想很平易近人:在所有可能选择的模型中,我们应该选择能够很好地解释已知数据并且十分简单的模型。
从贝叶斯估计的角度来看,规则化项对应于模型的先验概率。
统计学习角度
统计学习理论的核心为泛化方程,也就是
\mathcal{R}_{ept} \le \mathcal{R}_{emp} + \mathcal{G}_m[\mathcal{F}]
,其中左边表示期望风险,就是你在测试集上的错误率,右边第一项表示经验风险,就是你在训练集上的错误率,右边第二项称之为泛化复杂度,它取决于训练样本数m和模型
\mathcal{F}
我们知道一般情况下,
\mathcal{R}_{emp} \le \mathcal{R}_{ept}
训练集上的损失一定小于测试集上的损失。所以,结合起来有:
\mathcal{R}_{emp} \le \mathcal{R}_{ept} \le \mathcal{R}_{emp} + \mathcal{G}_m[\mathcal{F}]
如果此时泛化复杂度为0,那么测试集上的效果就和训练集上的效果一致,这时,学习机就具有了绝对的泛化能力。然而实际上,我们很难找到一个模型,其在训练集上损失小并且同时泛化复杂度也小。
言归正传,我们对于线性模型或者说更为广泛意义下的线性模型(比如前馈神经网络可以看做一种层叠的线性模型),有如下泛化方程:
\mathcal{R}_{ept} \le \mathcal{R}_{emp} + (RL)^{K-1}ln^{\frac{3}{2}(K-1)}(m)\sqrt{\frac{R^2N^2}{m}} + \sqrt{\frac{ln(\delta^{-1})}{m}}
其中:
R=||\vec w||_l
,
L为神经为神经网络激活函数的李普希兹系数,N为样本的最大范数,m 为训练集样本数,K为神经网络层数,其中,一般的感知器可看做 1 层神经网络(K=1)。依据我们上述对统计泛化的描述,我们知道右边的第二项应该越小越好,越小的话,学习机泛化能力越强,测试集上的效果就越有保证!所以我们必须最小化 R,也就是最小化
||\vec w||_l
,这就是从统计泛化角度解释了权系数范数的作用。
最小化权系数范数
\min ||\vec w||_l
的统计学习本质是提高泛化能力。
求解可逆性角度,条件数,解的稳定性
线性回归有 closed-form 解法,例如 如下是 最小二乘法(严谨点是 ORDINARY least square,简写OLS) 求解线性回归时用到的 mse loss
L = \frac{1}{N}|Y - XW|^2
由于 L 是凸的,所以直接求导可以得出W的最优解,
W = (X^TX)^{-1}X^TY
这里需要求个 逆, 然而若干年前的统计学家在实际操作中经常发现由于ill-conditioned problem**这个逆求不了, 也就是说下面这个行列式是等于0的,
|X^TX| = 0
那不妨稍稍修整一下,得到了下面这个L
L = \frac{1}{N}|Y-XW|^2 + \lambda|W|^2
就是加了个 L2 norm,然后 L还是凸的,继续求导得到W如下