机器学习基础(四十二)—— 常用损失函数的设计(multiclass SVM loss & hinge loss)
2016-04-06 12:23
302 查看
损失函数,又叫代价函数(成本函数,cost function),是应用优化算法解决问题的关键。
P(Y≠f(X))=1−P(Y=f(X))
我们不妨记 m≜fθ(x)⋅y(其中 y∈{−1,1}。对于二分类问题,最理想的损失函数是 0/1 损失函数,
当 fθ(x) 与 y 有相同符号时,损失为 0;
当 fθ(x) 与 y 符号不同时,损失为 1;
0/1 损失函数既不是处处可微(乘积,也即 m=0处, ),又不是凸函数,所以直接最小化 0/1 损失函数很困难。这就需要用到 hinge 损失函数了
Li=∑j≠yimax(0,sj−syi+1)
yi 表示真实的类别,syi 在真实类别上的得分;
sj,j≠yi 在其他非真实类别上的得分,也即预测错误时的得分;
则在全体训练样本上的平均损失为:
L=1N∑i=1NLi
Jhinge=min{0,1−m}
二者的几何图形为:
Hinge 损失的名字是源自它跟打开 135° 的折叶(hinge)长得很像。
SVM等于Hinge损失 + L2正则化
1. 0-1 损失函数
误分类的概率为:P(Y≠f(X))=1−P(Y=f(X))
我们不妨记 m≜fθ(x)⋅y(其中 y∈{−1,1}。对于二分类问题,最理想的损失函数是 0/1 损失函数,
当 fθ(x) 与 y 有相同符号时,损失为 0;
当 fθ(x) 与 y 符号不同时,损失为 1;
0/1 损失函数既不是处处可微(乘积,也即 m=0处, ),又不是凸函数,所以直接最小化 0/1 损失函数很困难。这就需要用到 hinge 损失函数了
2. 多类 SVM 的损失函数(Multiclass SVM loss)
在给出类别预测前的输出结果是实数值, 也即根据 score function 得到的 score(s=f(xi,W)),Li=∑j≠yimax(0,sj−syi+1)
yi 表示真实的类别,syi 在真实类别上的得分;
sj,j≠yi 在其他非真实类别上的得分,也即预测错误时的得分;
则在全体训练样本上的平均损失为:
L=1N∑i=1NLi
scores = np.dot(W, X) correct_scores = scores[y, np.arange(num_samples)] loss = score - correct_scores + 1 loss[y, np.arange(num_samples)] = 0
3. hinge 函数(折页函数)
仍然作如下记号,m≜fθ(x)⋅y,hinge 函数的形式为:Jhinge=min{0,1−m}
二者的几何图形为:
Hinge 损失的名字是源自它跟打开 135° 的折叶(hinge)长得很像。
SVM等于Hinge损失 + L2正则化
相关文章推荐
- grant-uri-permission
- C#实现冒泡排序
- Fiddler用AutoResponder实现app升级异步更新
- hdu 3308-线段树基本区间合并
- data
- 百度坐标转换
- 机器学习基础(四十一)—— KNN
- 第五周项目1(3)
- 3、重新组织代码
- C#学习笔记(初级)
- 使用android:layout_weight属性消除视图中的空白
- 传感器--------屏幕方向检测
- compatible-screens
- 2、简化逻辑和循环
- 剑指offer 17 树的子结构
- Java中使用Jedis操作Redis
- python socket多线程通讯实例分析(聊天室)
- Mysql数据库环境搭建及Java访问简单demo
- 推荐系统学习05-libFM
- 1、简明、清晰的展示