在机器学习中,损失函数衡量解决方案的质量,同时惩罚函数对您的解决方案施加了一些限制。
具体来说,让X是你的数据,并且y是你的数据的标签。然后损失函数 V(f(X),y)衡量你的模型有多好f将您的数据映射到标签。这里,f(X) 是预测标签的向量。
L1 和 L2 范数是常用且直观理解的损失函数(参见*). L1 norm: V(f(X),y) = |f(x1) - y1| + ... + |f(xn) - yn|
,其中 f(xi) - 第 i 个对象的预测标签,yi 是实际标签。L2 norm: V(f(X),y) = sqrt(|f(x1) - y1|^2 + ... + |f(xn) - yn|^2)
,其中 sqrt 是平方根。
As for 惩罚函数,它用于施加一些约束R(f)关于你的解决方案f。 L1范数可以是R(f)=|f1| + ... + |fm|
,类似地你可以定义 L2 范数。这里,f1、...、调频是模型的系数。您最初并不知道它们,这些是机器学习算法从您的数据中学习的值。
最终,总成本函数为V(f(X),y) + lambda*R(f)
。目标是找到能够最小化成本函数的 f。然后这个 f 将被用来对新的看不见的物体进行预测。为什么我们需要惩罚函数?事实证明,惩罚函数可能会为您的解决方案添加一些不错的属性。例如,当特征太多时,L1 范数可以通过生成稀疏解决方案来帮助防止过度拟合。
*这并不完全是支持向量机的工作原理,但可能会让您了解这些术语的含义。例如,在SVM中,使用L1-铰链损失函数和L2-铰链损失函数。L1-hinge:
V(f(X),y) = max(0,1 - y1*f(x1)) + ... + max(0,1 - yn*f(xn))
,L2 类似,但具有平方项。您可能会在以下位置找到关于 ML 的很好的介绍:Andrew Ng 在 Coursera 上的机器学习课程