从范数到正则化
范数是一个在数学领域中常用的工具,同时也是学习机器学习原理中经常碰到的概念。本文将从范数的定义出发,逐步带你理解其在机器学习中的应用。
首先需要明确的是,范数是一个函数,在机器学习中我们通常用它来衡量向量的大小。范数定义为:
1.常见的范数
下面简要介绍一些常见的范数,到这一步暂且只需要记住它们的形式。
1.1 范数
当时,范数也被称为欧几里得范数,表示从远点出发到向量确定的点的欧几里得距离。这个范数在机器学习中应用的非常频繁,我们先记住它的简化表示:。
1.2 平方范数
顾名思义就是范数的平方,好处就是它显然比范数容易计算,可以简单的通过点积计算。
1.3 范数
有些情况下平方范数不是很受欢迎,因为它在原点附近增长得十分缓慢。有时候区分恰好是零和非零但值很小的元素是很重要的,这时候就可以使用各位置斜率相同的范数:
1.4 范数
范数也被称为最大范数,表示向量中具有最大幅值的元素的绝对值:
2.深度学习中的正则化
2.1偏差(bias)和方差(variance)
在介绍深度学习中的正则化之前,我们先要从机器学习的场景出发思考,是什么问题促使我们需要用正则化这个工具呢?
偏差和方差通常可以用来判断模型拟合数据的情况,看下面这张图,和代表两种不同的样本点。
第一个坐标系中由于分类器接近于线性,拟合数据的能力比较差,表现出欠拟合,对应高偏差high bias;第三个坐标系对于训练数据过拟合,对应高方差high variance;而中间的坐标系则是恰到好处的,我们比较希望得到的泛化能力较强的模型。
因此:
- if high bias:{更大的网络/更长的训练时长/(更合适的算法)}
- if high variance:{更多的数据/正则化/(更合适的算法)}
我们可以将正则化理解为“对学习算法的修改——目的是为了减少泛化误差,以偏差的增加换取方差的减少,从而抑制过拟合。”
2.2正则化如何抑制过拟合
我们将目标函数定义为,正则化后的目标函数为,。通常只对权重做正则化惩罚而不针对偏置项,为了简单起见,我们假设没有偏置项:
是权衡正则化强度的超参。
2.2.1 正则化
范数正则化也被称为权重衰减,这时
带入正则化后的目标函数
从上文1.2 平方范数的介绍中得到,因此
与之对应的梯度为:
使用梯度下降更新权重,为学习率:
即:
可以看出加入权重衰减后会引起学习规则的修改,在每步梯度更新之前都会先收缩权重向量——将权重向量前边乘上一个小于1的权重因子,也就是说,正则化惩罚系数升高会将权重拉向0。可以从两个角度进一步理解一下这个操作:
b.假设神经网络每层的激活函数为,正则化惩罚系数,从而使得从①③的非线性状态区域进入②接近于线性状态的区域,导致每层几乎是线性的(线性函数叠加仍然为线性),起到抑制过拟合的效果。