Loss Function 笔记

在机器学习中,我们使用 loss/cost 表示当前模型与理想模型的差距。训练的目的,就是不断缩小 loss/cost。
简单直接的classification error 很难精确描述模型与理想模型之间的距离。

cross entropy

交叉熵,部分参考:

博客 - 神经网络的分类模型 LOSS 函数为什么要用 CROSS ENTROPY
知乎 - 损失函数 - 交叉熵损失函数

如果用 MSE 计算 loss,输出的曲线是波动的,有很多局部的极值点。 即,非凸优化问题 (non-convex)。cross entropy 计算 loss,则依旧是一个凸优化问题,用梯度下降求解时,凸优化问题有很好的收敛特性。
cross-entropy 更清晰的描述了模型与理想模型的距离。
交叉熵的计算公式为:$ CE = - \sum\limits_{k - 1}^N {{p_k}\log {q_k}} $

分类问题,都用 one hot + cross entropy
training 过程中,分类问题用 cross entropy,回归问题用 mean squared error。
training 之后,validation/testing 时,使用 classification error,更直观,而且是我们最关注的指标。

使用逻辑函数得到概率,并结合交叉熵当损失函数时,在模型效果差的时候学习速度比较快,在模型效果好的时候学习速度变慢。
sigmoid(softmax)+cross-entropy loss 擅长于学习类间的信息,因为它采用了类间竞争机制,它只关心对于正确标签预测概率的准确性,忽略了其他非正确标签的差异,导致学习到的特征比较散。基于这个问题的优化有很多,比如对softmax进行改进,如L-Softmax、SM-Softmax、AM-Softmax等。(由于交叉熵涉及到计算每个类别的概率,所以交叉熵几乎每次都和sigmoid(或softmax)函数一起出现。)
使用交叉熵损失函数,不仅可以很好的衡量模型的效果,又可以很容易的的进行求导计算。

猜你喜欢

转载自www.cnblogs.com/ytxwzqin/p/12809072.html