损失函数(Loss function)是用来估量你模型的预测值 f(x)f(x)值。
2. 常用损失函数
常见的损失误差有五种:
1. 铰链损失(Hinge Loss):主要用于支持向量机(SVM) 中;
2. 互熵损失 (Cross Entropy Loss,Softmax Loss ):用于Logistic 回归与Softmax 分类中;
3. 平方损失(Square Loss):主要是最小二乘法(OLS)中;
4. 指数损失(Exponential Loss) :主要用于Adaboost 集成学习算法中;
5. 其他损失(如0-1损失,绝对值损失)
2.1 Hinge loss
Hinge loss 的叫法来源于其损失函数的图形,为一个折线,通用的函数表达式为:
在机器学习中,Hing 可以用来解 间距最大化 的问题,最有代表性的就是SVM 问题,最初的SVM 优化函数如下:
因此, SVM 的损失函数可以看作是 L2-norm 和 Hinge loss 之和。
2.2 Softmax Loss
有些人可能觉得逻辑回归的损失函数就是平方损失,其实并不是。平方损失函数可以通过线性回归在假设样本是高斯分布的条件下推导得到,而逻辑回归得到的并不是平方损失。在逻辑回归的推导中,它假设样本服从伯努利分布(0-1分布),然后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为:最小化负的似然函数(即maxF(y,f(x))→min−F(y,f(x)))maxF(y,f(x))→min−F(y,f(x)))。从损失函数的视角来看,它就成了Softmax 损失函数了。
log损失函数的标准形式:
逻辑回归的P(Y=y|x)P(Y=y|x) ):
其中
2.3 Squared Loss
最小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。在线性回归中,它假设样本和噪声都服从高斯分布(中心极限定理),最后通过极大似然估计(MLE)可以推导出最小二乘式子。最小二乘的基本原则是:最优拟合直线应该是使各点到回归直线的距离和最小的直线,即平方和最小。
平方损失(Square loss)的标准形式如下:
当样本个数为nn 表示残差,整个式子表示的是残差平方和 ,我们的目标就是最小化这个目标函数值,即最小化残差的平方和。
在实际应用中,我们使用均方差(MSE)作为一项衡量指标,公式如下:
2.4 Exponentially Loss
损失函数的标准形式是:
关于Adaboost的详细推导介绍,可以参考Wikipedia: AdaBoost或者李航《统计学习方法》P145。
2.5 其他损失
0-1 损失函数
上述几种损失函数比较的可视化图像如下:
3. Hinge loss 与 Softmax loss
SVM和Softmax分类器是最常用的两个分类器。
- SVM将输出 f(xi,W)f(xi,W) 作为每个分类的评分(没有规定的标准,难以直接解释);
- 与SVM 不同,Softmax 分类器可以理解为逻辑回归分类器面对多个分类的一般话归纳,其输出(归一化的分类概率)更加直观,且可以从概率上解释。
在Softmax分类器中, 函数映射f(xi,W)f(xi,W) 保持不变,但将这些评分值看做每个分类未归一化的对数概率,且将折叶损失替换为交叉熵损失(cross-entropy loss),公式如下:
fjfj 个元素,和SVM一样,整个数据集的损失值是数据集中所有样本数据的损失值Li的均值和正则化损失之和。
概率论解释:
解释为给定数据xixi 的归一化概率。
实际操作注意事项——数值稳定: 编程实现softmax函数计算的时候,中间项efyiefyi ,并把它变换到求和之中,就能得到一个等价公式: