1、损失函数、代价函数、目标函数
损失函数:Loss Function 是定义在单个样本上的,算的是一个样本的误差。
代价函数:Cost Function 定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
目标函数:Object Function 最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。
2、常见损失函数
(1)0-1损失函数
(2)平均绝对误差-L1损失函数
(3)均方误差-L2损失函数
(4)交叉熵损失函数
推导见LR
(5)指数损失函数
adaboost用到
(5)合页损失
SVM用到加正则化项就是它的损失函数
当样本被正确分类且函数间隔大于1时,合页损失才是0,否则损失是1-y(wx+b)。
3、交叉熵函数与最大似然函数的联系与区别
区别:交叉熵函数用来描述模型预测值和真实值差距的大小,越大代表越不相近,似然函数的本质就是衡量在某个参数下,整体的估计和真实情况一样的概率,越大代表越相近
联系:交叉熵函数可以由最大似然函数在0-1分布的条件下推导出来,或者说最小化交叉熵损失函数的本质就是对数似然函数的最大化
4、在用sigmoid作为激活函数的时候,为什么要用交叉熵损失函数,而不用均方差
均方差定义为
,使用梯度下降更新w,b,两参数的更新公式中含有sigmoid的公式,因为sigmoid的性质,使得 w和 b在更新的过程中大部分时候梯度很小,更新很慢。
而对于交叉熵来说,其更新受误差的影响,误差大更新就快
5、关于交叉熵函数和平方损失的区别
交叉熵函数是评估当前训练得到的概率分布与其真实分布的差异情况,它刻画实际输出(概率)与期望输出(概率)的距离
均方差是n个样本与期望输出的差的平方的平均值
区别:交叉熵权重更新的更快
对于分类,交叉熵是凸优化问题,MSE不是
6、 L1、L2损失的区别
L1 | L2 | |
鲁棒性 | 好 | 不好(有平方项放大了异常损失) |
稳定解 | 是 | 不是 |
多解 | 一个解 | 多解 |
因此提出了smooth-L1损失结合了L1,L2的长处,在0点附近使用平方函数
,
, 其它
7、分类问题用交叉熵不用MSE
用MSE,误差增大梯度也增大,但当误差过大的时候,参数梯度又减小了。
使用交叉熵,误差越大,参数的梯度越大,能够快速收敛。
交叉熵关于输入权重的梯度表达式与预测值与真实值的误差成正比且不含激活函数的梯度,而MSE则含有,由于常用的sigmoid、tanh等激活函数存在梯度饱和区,使得MSE对权重梯度会很小,参数调整变慢,训练也会变慢
8、解决正负样本不平衡使用什么损失函数
Focal loss,是在交叉熵损失函数基础上进行的修改,降低大量简单负样本在训练时所占的权重