在机器学习算法中如果只使用经验风险最小化去优化损失函数则很可能造成过拟合的问题,通常我们要在损失函数中加入一些描述模型复杂程度的正则化项,使得模型在拥有较好的预测能力的同时不会因为模型过于复杂而产生过拟合现象,即结构风险最小化
正则化项一般是模型复杂程度的单调递增函数,因此可以使用模型参数向量的范数来计算
一部分内容在数学上的定义更为广泛,大家可以看看相关资料。这里只涉及了一些和机器学习有关的定义,可能不是很严谨
L-p范数
L-p范数定义如下
L p = ( ∑ i ∣ x i ∣ p ) 1 p L^{p} = (\sum_{i}{|x_{i}|^{p}})^{\frac{1}{p}} Lp=(i∑∣xi∣p)p1
在机器学习中常见的有L0、L1和L2范数
L0范数
L0范数为参数向量中非零值的个数
∣ ∣ x ∣ ∣ 0 = ∑ i I ( x i ≠ 0 ) ||x||_{0} = \sum_{i}{I(x_{i} \neq 0)} ∣∣x∣∣0=i∑I(xi̸=0)
其中 I ( b o o l ) I(bool) I(bool) 在 bool
的值为 True
时值为1,为 False
时值为0
因为L0范数没有很好的数学表达形式,所以很少直接优化L0范数
L1范数
L1范数为参数向量中元素绝对值之和
∣ ∣ x ∣ ∣ 1 = ∑ i ∣ x i ∣ ||x||_{1} = \sum_{i}{|x_{i}|} ∣∣x∣∣1=i∑∣xi∣
L2范数
L2范数为参数向量的欧氏距离
∣ ∣ x ∣ ∣ 2 = ∑ i x i 2 ||x||_{2} = \sqrt{\sum_{i}{x_{i}^{2}}} ∣∣x∣∣2=i∑<