Q:机器学习中的损失函数、代价函数、目标函数有什么联系和区别?
A:在监督学习中,损失函数用来评估模型的预测值和真实值不一致的程度。简单理解损失函数、代价函数、目标函数有这样的区别:
- 损失函数 ,一般是针对单个样本,算的是一个样本的误差
- 代价函数 ,一般是针对整个训练集上,是所有样本误差的平均,也就是损失函数的平均,也被称作 经验风险最小化函数
- 目标函数 ,也被称作 结构风险最小化函数
常见的损失函数
-
0-1损失函数
一般在实际使用过程中,相等的条件过于严格,可适当放宽条件
-
绝对值损失函数
-
平方损失函数
可以从最小二乘法和欧氏距离理解。最小二乘法的原理是,最优拟合曲线应该使所有点到回归直线的距离和最小。
-
对数损失函数
表示模型或分类器预测输入实例属于的概率。常见的逻辑回归使用的就是对数损失函数。逻辑回归假设样本服从伯努利分布(0-1分布),求得满足该分布的似然函数,接着取对数求极值。逻辑回归推导出的经验风险最小化负的似然函数,从损失函数的角度看,就是对数损失函数,形式上等价于二分类的交叉熵损失函数。
-
Hinge损失函数
统一的形式:
在支撑向量机中的损失函数就是Hinge损失函数
-
指数损失函数
AdaBoost就是以指数损失函数为损失函数
常见代价函数
-
二次代价函数
使用梯度下降(Gradient descent)来调整权值参数的大小,权重和偏置的梯度:
权重和偏置的梯度跟激活函数的梯度成正比,激活函数的梯度越大,权重和偏置的大小调整得越快,训练收敛得就越快
-
交叉熵代价函数
权重和偏置的梯度:
当误差越大时,梯度就越大,权重和偏置调整得越快,训练速度也就越快
二次代价函数适合输出神经元是线性的情况,交叉熵代价函数适合输出神经元是S型函数的情况
对数似然代价函数