机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)
来源:互联网 发布:怎么用ps做淘宝店招 编辑:程序博客网 时间:2024/06/05 09:39
1. 损失函数
损失函数(Loss function)是用来估量你模型的预测值
其中,前面的均值函数表示的是经验风险函数,
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 的叫法来源于其损失函数的图形,为一个折线,通用的函数表达式为:
表示如果被正确分类,损失是0,否则损失就是
在机器学习中,Hing 可以用来解 间距最大化 的问题,最有代表性的就是SVM 问题,最初的SVM 优化函数如下:
将约束项进行变形,则为:
则损失函数可以进一步写为:
因此, SVM 的损失函数可以看作是 L2-norm 和 Hinge loss 之和。
2.2 Softmax Loss
有些人可能觉得逻辑回归的损失函数就是平方损失,其实并不是。平方损失函数可以通过线性回归在假设样本是高斯分布的条件下推导得到,而逻辑回归得到的并不是平方损失。在逻辑回归的推导中,它假设样本服从伯努利分布(0-1分布),然后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为:最小化负的似然函数(即
log损失函数的标准形式:
刚刚说到,取对数是为了方便计算极大似然估计,因为在MLE中,直接求导比较困难,所以通常都是先取对数再求导找极值点。损失函数
逻辑回归的
其中
2.3 Squared Loss
最小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。在线性回归中,它假设样本和噪声都服从高斯分布(中心极限定理),最后通过极大似然估计(MLE)可以推导出最小二乘式子。最小二乘的基本原则是:最优拟合直线应该是使各点到回归直线的距离和最小的直线,即平方和最小。
平方损失(Square loss)的标准形式如下:
当样本个数为
在实际应用中,我们使用均方差(MSE)作为一项衡量指标,公式如下:
2.4 Exponentially Loss
损失函数的标准形式是:
exp-loss,主要应用于 Boosting 算法中,在Adaboost 算法中,经过
Adaboost 每次迭代时的目的都是找到最小化下列式子的参数
易知,Adabooost 的目标式子就是指数损失,在给定
关于Adaboost的详细推导介绍,可以参考Wikipedia:AdaBoost或者李航《统计学习方法》P145。
2.5 其他损失
0-1 损失函数
绝对值损失函数
上述几种损失函数比较的可视化图像如下:
3. Hinge loss 与 Softmax loss
SVM和Softmax分类器是最常用的两个分类器。
- SVM将输出
f(xi,W) 作为每个分类的评分(没有规定的标准,难以直接解释); - 与SVM 不同,Softmax 分类器可以理解为逻辑回归分类器面对多个分类的一般话归纳,其输出(归一化的分类概率)更加直观,且可以从概率上解释。
在Softmax分类器中, 函数映射
或等价的
概率论解释:
解释为给定数据
实际操作注意事项——数值稳定: 编程实现softmax函数计算的时候,中间项
C的值可自由选择,不会影响计算结果,通过这个技巧可以提高计算中的数值稳定性.通常将C设为:
该技巧就是将向量f中的数值进行平移,使得最大值为0。
准确地说,SVM分类器使用的是铰链损失(hinge loss),有时候又被称为最大边界损失(max-margin loss)。Softmax分类器使用的是交叉熵损失(corss-entropy loss)。Softmax分类器的命名是从softmax函数那里得来的,softmax函数将原始分类评分变成正的归一化数值,所有数值和为1,这样处理后交叉熵损失才能应用。
Example:图像识别
针对给出的图像,SVM分类器可能给你的是一个
这里Hinge Loss计算公式为:
这里
设
下图是对
而Softmax 损失则是对向量
4.总结
机器学习作为一种优化方法,学习目标就是找到优化的目标函数——损失函数和正则项的组合;有了目标函数的“正确的打开方式”,才能通过合适的机器学习算法求解优化。
不同机器学习方法的损失函数有差异,合理理解各种损失优化函数的的特点更有利于我们对相关算法的理解。
参考文献
1. CS231n 课程
2. 聊聊机器学习中的损失函数
3. 知乎专栏-智能单元
4. 机器学习-损失函数
- 机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)
- 损失函数:Hinge Loss(max margin)
- 损失函数:Hinge Loss(max margin)
- 损失函数:Hinge Loss(max margin)
- SVM hinge loss / SoftMax cross entropy loss
- 损失函数(Loss Function)
- 损失函数(Loss Function)
- 损失函数(loss function)
- 损失函数(loss function)
- 损失函数(loss function)
- 损失函数(Loss Function)
- hinge loss/支持向量损失的理解
- Hinge loss
- Hinge loss
- Hinge loss
- Hinge Loss
- Hinge loss
- hinge loss
- 对对机如何设置饿了么外卖平台自动接单打印(图文教程)
- 随笔
- 模拟交通信号灯(Java)
- linux 64w位平台下Oracle 安装文档
- nginx + rtmp 推流
- 机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)
- 关于 .Net 逆向的那些工具:反编译篇
- 11-4c 语言 作业 指针
- 算法练习(23):Is Subsequence
- 机器学习 特征标准化
- Fastjson介绍;示例。取消循环引用,时间格式设置
- 简析在React Native中如何适配iPhoneX
- Java 8 之 lambda 表达式简单使用入门实例代码
- 1. jQuery ajax开发基于xml(了解) 1.1. XStream介绍