1. 定义
转载来自 几种常见的损失函数
损失函数(Loss Function)是用来评估模型好坏程度,即预测值f(x)与真实值的不一致程度,通常表示为L(Y, f(x))的一个非负的浮点数。比如你要做一个线性回归,你拟合出来的曲线不会和原始的数据分布是完全吻合(完全吻合的话,很可能会出现过拟合的情况),这个差距就是用损失函数来衡量。
那么损失函数的值越小,模型的鲁棒性也就越好,对新数据的预测能力也就越强
- 损失函数(Loss Function) :直接作用于单个样本,用来表达样本的误差
- 风险函数(Risk function):风险函数是损失函数的期望
- 代价函数(Cost Function)或者经验风险(Empirical Risk):作用于整个训练集,是整个样本集的平均误差,对所有损失函数值的平均
- 目标函数(Object Function)或者结构风险函数 :是我们最终要优化的函数,也就是代价函数+正则化函数(经验风险+结构风险)
2. 损失函数分类
转载来自
几种常见的损失函数
几种损失函数比较–代价函数,损失函数,目标函数区别
详细见
机器学习-损失函数
*分类错误率(Classification Error)按照字面意思定义的,不用
见 与交叉熵对比试验 :神经网络的损失函数为什么用交叉熵
classification error 很难精确描述模型与理想模型之间的距离。
0-1 损失函数(0-1 Loss Function)
主要用于感知机
优点:稳定的分类面,不连续,所以不可导,但是次梯度可导
缺点:二阶不可导,有时候不存在唯一解
平方损失函数(Quadratic Loss Function)
主要用于最小二乘法(OLS)
优点:容易优化(一阶导数连续)
缺点:对outlier点敏感,得不到最优的分类面
绝对值损失函数(Absolute Loss Function)*
用到了极大似然估计的思想
优点:平方损失函数相比,与不会被放大。
对数损失函数(交叉熵、softmax)(Logarithmic Loss Function,Cross Entropy Loss Function, Softmax Loss Loss Function)*
主要用于Logistic回归与Softmax分类
优点:稳定的分类面,严格凸,且二阶导数连续。
指数损失函数(Exponential Loss Function)
主要用于Adaboost集成学习算法
优点:利于加和模型的损失计算
铰链损失函数(Hinge Loss Function)
主要用于支持向量机(SVM)
优点:稳定的分类面,凸函数。可以极大化分类间隔。
3. 代价函数分类
(1)回归问题
均方误差(Mean Square Error)
MSE用来评估模型的好坏程度,MSE越小说明预测模型精确度越高。
均方根误差(Root Mean Square Error)
平均绝对误差(Mean Absolute Error)
(2)分类问题
交叉熵代价函数(Cross Entry)
通常用做分类问题的代价函数。其中p(x)是真实分布的概率,q(x)是模型通过数据计算出来的概率估计。
二分类模型的交叉熵代价函数:
4. 正则化
L1正则化
L1正则化假设模型的先验概率分布服从拉普拉斯分布;
稀疏性:等值线L更容易在w2上取0值,L1中两个权值倾向于一个较大另一个为0
缺点:求解略复杂
优点:能够得到稀疏解
L2正则化
L2正则化假设模型的先验概率分布服从高斯分布;
平滑:L2中两个权值倾向于均为非零的较小数
优点:简单有效、便于求解、最常用,平滑