机器学习中的损失函数
基础:损失函数
在机器学习中,所有的机器学习算法都或多或少的依赖于对目标函数最大化或者最小化的过程,我们常常把最小化的函数称为损失函数,它主要用于衡量机器学习模型的预测能力。在寻找最小值的过程中,我们最常用的方法是梯度下降法。
由于机器学习的任务不同,损失函数一般分为分类和回归两类,回归会预测给出一个数值结果而分类则会给出一个标签。
1. 损失函数、代价函数与目标函数
损失函数(Loss Function):是定义在单个样本上的,是指一个样本的误差。
代价函数(Cost Function):是定义在整个训练集上的,是所有样本误差的平均,也就是所有损失函数值的平均。
目标函数(Object Function):是指最终需要优化的函数,一般来说是经验风险+结构风险,也就是(代价函数+正则化项)。
对于常见的损失函数:
损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数是指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。通常表示为:
θ*是我们通过损失函数最小化要求得的参数,一般都是通过梯度下降法来求得
常见的损失误差有五种:
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、0-1损失函数
0-1损失函数的表达式如下,常见于感知机模型中,预测正确则损失为0,预测错误则损失为1:
2、绝对值损失函数
3、log对数损失函数
对数损失函数最常见的应用就是在逻辑回归中,其表达式如下:
这个损失函数就比较难理解了。事实上,该损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了将其转化为加法,我们将其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。
4、平方损失函数
平方损失函数常见于回归问题中,如线性回归,其表达式如下:
5、指数损失函数
指数损失函数常见于Adaboost算法中,其表达式如下:
6、Hinge损失函数
Hinge损失函数常见与SVM中,有点类似于0-1损失函数,不同的是对于分类错误的点,其损失值不再是固定值1,而是和样本点离超平面的距离有关。其表达式如下;
其中l 是hinge函数,其标准形式如下:
3. 常用的代价函数
softmax可以看成对概率分布的一个刻画,所以既然有概率分布,就可以用cross-entropy来定义损失函数
softmax: