向量范数与机器学习中的正则项
1.向量范数
范数, norm, 是数学中是一种类似“长度”的概念, 其实也就是一类函数.
在机器学习中的正则化(Regularization)以及稀疏编码(Sparse Coding)有非常有趣的应用.
对于向量
常用的有:
- L0范数
向量中非0的元素的个数. - L1范数
向量中各个元素绝对值之和. - L2范数
向量各元素的平方和然后求平方根.
2. 对比
向量表示的是点与点之间的大小与方向, 那么不同的范数就对应着不同的距离.
常用的有曼哈顿距离与欧氏距离. 当向量为2维时, 可以方便地图形化表达:
- Manhattan distance
曼哈顿距离, 对应L1范数.
曼哈顿是一座城市, 可以想象为围棋棋盘, 从点A到点B的路程, 只能沿着棋盘上的路线左右走或上下走.
以L1距离做度量, 距离原点路程为1的点的集合见图2-1 的上图
. - Euclidean distance
欧氏距离, 也叫欧几里得距离, 对应L2范数.
以L2距离做度量, 距离原点路程为1的点的集合见图2-1 的中图
.
图2-1 拥有不同范数的单位圆
3.正则化
正则化, regularization, 就是正则表达式中那个正则. 注意它不同于 正规化 .
正则化用来防止过拟合,提升模型的泛化能力.
回归问题中, 损失函数为 差平方
目标函数就是求它的最小值.
根据向量
图3-1 欠拟合, 理想情况 与 过拟合
参数越复杂, 表达能力越强, 但容易出现上图中的过拟合现象, 特别是训练集中有噪音的时候, 我们不期望自己的模型去把一些噪声离群点也拟合掉, 这样会加大测试集中的误差.
所以我们会把目标函数中添加
其中
这样, 参数约复杂, 它的L2范数就越大, 所以(3-2) 的表达式可以约束参数的复杂度.