##原博客地址 https://zhuanlan.zhihu.com/p/58883095
常见的损失函数以及其优缺点如下:
0-1损失函数(zero-one loss)
0-1损失是指预测值和目标值不相等为1, 否则为0:
[公式]
特点:
(1)0-1损失函数直接对应分类判断错误的个数,但是它是一个非凸函数,不太适用.
(2)感知机就是用的这种损失函数。但是相等这个条件太过严格,因此可以放宽条件,即满足 [公式] 时认为相等,
2. 绝对值损失函数
绝对值损失函数是计算预测值与目标值的差的绝对值:
3. log对数损失函数
log对数损失函数的标准形式如下:
这个损失根据概率算的
特点:
(1) log对数损失函数能非常好的表征概率分布,在很多场景尤其是多分类,如果需要知道结果属于每个类别的置信度,那它非常适合。
(2)健壮性不强,相比于hinge loss对噪声更敏感。
(3)逻辑回归的损失函数就是log对数损失函数
- 平方损失函数
平方损失函数标准形式如下:
[公式]
计算差的平方 求和
特点:
(1)经常应用与回归问题
- 指数损失函数(exponential loss)
指数损失函数的标准形式如下:
特点:
(1)对离群点、噪声非常敏感。经常用在AdaBoost算法中。
- Hinge 损失函数
Hinge损失函数标准形式如下:
特点:
(1)hinge损失函数表示如果被分类正确,损失为0,否则损失就为 [公式] 。SVM就是使用这个损失函数。
(2)一般的 [公式] 是预测值,在-1到1之间 y 是目标值(-1或1)。其含义是,f(x)的值在-1和+1之间就可以了,并不鼓励 |f(x)|>1 即并不鼓励分类器过度自信,让某个正确分类的样本距离分割线超过1并不会有任何奖励,从而使分类器可以更专注于整体的误差。
(3) 健壮性相对较高,对异常点、噪声不敏感,但它没太好的概率解释。
- 感知损失(perceptron loss)函数
感知损失函数的标准形式如下:
特点:
(1)是Hinge损失函数的一个变种,Hinge loss对判定边界附近的点(正确端)惩罚力度很高。而perceptron loss只要样本的判定类别正确的话,它就满意,不管其判定边界的距离。它比Hinge loss简单,因为不是max-margin boundary,所以模型的泛化能力没 hinge loss强。
- 交叉熵损失函数 (Cross-entropy loss function)
交叉熵损失函数的标准形式如下:
特点:
(1)是Hinge损失函数的一个变种,Hinge loss对判定边界附近的点(正确端)惩罚力度很高。而perceptron loss只要样本的判定类别正确的话,它就满意,不管其判定边界的距离。它比Hinge loss简单,因为不是max-margin boundary,所以模型的泛化能力没 hinge loss强。
- 交叉熵损失函数 (Cross-entropy loss function)
交叉熵损失函数的标准形式如下:
注意公式中 x 表示样本, y 表示预测的输出, a表示实际的输出,n 表示样本总数量。
特点:
(1)本质上也是一种对数似然函数,可用于二分类和多分类任务中。
二分类问题中的loss函数(输入数据是softmax或者sigmoid函数的输出):
多分类问题中的loss函数(输入数据是softmax或者sigmoid函数的输出):
(2)当使用sigmoid作为激活函数的时候,常用交叉熵损失函数而不用均方误差损失函数,因为它可以完美解决平方损失函数权重更新过慢的问题,具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的良好性质。